1. 程式人生 > >Android填坑之旅(第十三篇)教你一招搞定專案混淆配置

Android填坑之旅(第十三篇)教你一招搞定專案混淆配置

來張美女圖片養養眼,換你一天好心情

# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in D:\AndroidStudio\sdk/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# Add any project specific keep options here:

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}
#-------------------------------------------基本不用動區域--------------------------------------------
#---------------------------------基本指令區----------------------------------
-optimizationpasses 5
-dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontskipnonpubliclibraryclassmembers -dontpreverify -verbose -printmapping proguardMapping.txt -optimizations !code/simplification/cast,!field/*,!class/merging/* -keepattributes *Annotation*,InnerClasses -keepattributes Signature -keepattributes SourceFile
,LineNumberTable
#---------------------------------------------------------------------------- #---------------------------------預設保留區--------------------------------- -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends
android.app.Service
-keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider -keep public class * extends android.app.backup.BackupAgentHelper -keep public class * extends android.preference.Preference -keep public class * extends android.view.View -keep public class com.android.vending.licensing.ILicensingService -keep class android.support.** {*;} -keepclassmembers class com.haisiweisi.haisiyun.webview$MyDownloadStart { public *; } -keepattributes *MyDownloadStart* -keepattributes *JavascriptInterface* -keepclasseswithmembernames class * { native <methods>; } -keepclassmembers class * extends android.app.Activity{ public void *(android.view.View); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep public class * extends android.view.View{ *** get*(); void set*(***); public <init>(android.content.Context); public <init>(android.content.Context, android.util.AttributeSet); public <init>(android.content.Context, android.util.AttributeSet, int); } -keepclasseswithmembers class * { public <init>(android.content.Context, android.util.AttributeSet); public <init>(android.content.Context, android.util.AttributeSet, int); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } -keepclassmembers class * implements java.io.Serializable { static final long serialVersionUID; private static final java.io.ObjectStreamField[] serialPersistentFields; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); } -keep class **.R$* { *; } -keepclassmembers class * { void *(**On*Event); } #不混淆Parcelable和它的子類,還有Creator成員變數 -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } #---------------------------------------------------------------------------- #---------------------------------1.實體類--------------------------------- -keep class com.haisiweisi.haisiyun.entity.** { *; } #------------------------------------------------------------------------- #---------------------------------工具類--------------------------------- -assumenosideeffects class com.haisiweisi.haisiyun.utils.LogUtils { public static *** d(...); public static *** v(...); public static *** i(...); public static *** a(...); public static *** e(...); public static *** w(...); public static *** wtf(...); } -assumenosideeffects class android.util.Log { public static boolean isLoggable(java.lang.String, int); public static int v(...); public static int i(...); public static int w(...); public static int d(...); public static int e(...); } #------------------------------------------------------------------------- #---------------------------------2.第三方包------------------------------- -dontwarn org.apache.** -keep class org.apache.**{*;} -keep class org.apache.commons.mail.**{*;} -dontwarn javax.mail.** -dontwarn javax.activation.** -keep class javax.mail.**{*;} -keep class javax.activation.**{*;} -dontwarn com.sun.** -keep class com.sun.activation.registries.**{*;} -keep class com.sun.mail.** {*;} -keep class myjava.awt.datatransfer.**{*;} -dontwarn org.joda.time.** -keepattributes Signature -keep class sun.misc.Unsafe { *; } -keep class com.google.**{*;} -keepclassmembers class * implements java.io.Serializable { static final long serialVersionUID; private static final java.io.ObjectStreamField[] serialPersistentFields; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); } #glide -keep public class * implements com.bumptech.glide.module.GlideModule -keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** { **[] $VALUES; public *; } #3D 地圖 V5.0.0之前: -dontwarn com.amap.apis.utils.core.crash.d$b -keep class com.amap.api.maps.**{*;} -keep class com.autonavi.amap.mapcore.*{*;} -keep class com.amap.api.trace.**{*;} #2D地圖 -keep class com.amap.api.maps2d.**{*;} -keep class com.amap.api.mapcore2d.**{*;} #定位 -keep class com.amap.api.location.**{*;} -keep class com.amap.api.fence.**{*;} -keep class com.autonavi.aps.amapapi.model.**{*;} #okhttputils -dontwarn com.zhy.http.** -keep class com.zhy.http.**{*;} #okhttp -dontwarn okhttp3.** -keep class okhttp3.**{*;} #okio -dontwarn okio.** -keep class okio.**{*;} # RxJava RxAndroid -dontwarn sun.misc.** -keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* { long producerIndex; long consumerIndex; } -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef { rx.internal.util.atomic.LinkedQueueNode producerNode; } -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef { rx.internal.util.atomic.LinkedQueueNode consumerNode; } #OSS -keep class com.alibaba.sdk.android.oss.** { *; } -dontwarn okio.** -dontwarn org.apache.commons.codec.binary.** #極光推送 -dontoptimize -dontpreverify -dontwarn cn.jpush.** -keep class cn.jpush.** { *; } -dontwarn cn.jiguang.** -keep class cn.jiguang.** { *; } #------------------------------------------------------------------------- #==================gson && protobuf========================== -dontwarn com.google.** -keep class com.google.gson.** {*;} -keep class com.google.protobuf.** {*;} #---------------------------------4.反射相關的類和方法----------------------- -keep class com.haisiweisi.haisiyun.ui.dynamicForm.** { *; } -keep class com.haisiweisi.haisiyun.ui.statements** { *; } -keep class net.xuilib.XUIAndorid.util.** { *; } -keep class net.xuilib.XUIAndroid.** { *; } #---------------------------------------------------------------------------- #--------------------------------友盟-------------------------- -dontusemixedcaseclassnames -dontshrink -dontoptimize -dontwarn com.google.android.maps.** -dontwarn android.webkit.WebView -dontwarn com.umeng.** -dontwarn com.tencent.weibo.sdk.** -keep public class javax.** -keep public class android.webkit.** -dontwarn android.support.v4.** -keepattributes Exceptions,InnerClasses,Signature -keepattributes *Annotation* -keepattributes SourceFile,LineNumberTable -keep public interface com.tencent.** -keep public interface com.umeng.socialize.** -keep public interface com.umeng.socialize.sensor.** -keep public interface com.umeng.scrshot.** -keep class com.android.dingtalk.share.ddsharemodule.** { *; } -keep public class com.umeng.socialize.* {*;} -keep class com.umeng.scrshot.** -keep public class com.tencent.** {*;} -keep class com.umeng.socialize.sensor.** -keep class com.umeng.socialize.handler.** -keep class com.umeng.socialize.handler.* -keep class com.umeng.weixin.handler.** -keep class com.umeng.weixin.handler.* -keep class com.umeng.qq.handler.** -keep class com.umeng.qq.handler.* -keep class UMMoreHandler{*;} -keep class com.tencent.mm.sdk.modelmsg.WXMediaMessage {*;} -keep class com.tencent.mm.sdk.modelmsg.** implements com.tencent.mm.sdk.modelmsg.WXMediaMessage$IMediaObject {*;} -keep class com.tencent.mm.sdk.** { *; } -keep class com.tencent.mm.opensdk.** { *; } -keep class com.tencent.** {*;} -dontwarn com.tencent.** -keep public class com.umeng.com.umeng.soexample.R$*{ public static final int *; } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class com.tencent.open.TDialog$* -keep class com.tencent.open.TDialog$* {*;} -keep class com.tencent.open.PKDialog -keep class com.tencent.open.PKDialog {*;} -keep class com.tencent.open.PKDialog$* -keep class com.tencent.open.PKDialog$* {*;} -keep class com.alipay.share.sdk.** { *; } -keepnames class * implements android.os.Parcelable { public static final ** CREATOR; } -keepattributes Signature #---------------------------------------------------------------------------- #--------------------------------PictureSelect------------------------------- -keep class com.luck.picture.lib.** { *; } #rxjava -dontwarn sun.misc.** -keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* { long producerIndex; long consumerIndex; } -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef { rx.internal.util.atomic.LinkedQueueNode producerNode; } -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef { rx.internal.util.atomic.LinkedQueueNode consumerNode; } #rxandroid -dontwarn sun.misc.** -keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* { long producerIndex; long consumerIndex; } -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef { rx.internal.util.atomic.LinkedQueueNode producerNode; } -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef { rx.internal.util.atomic.LinkedQueueNode consumerNode; } #glide -keep public class * implements com.bumptech.glide.module.GlideModule -keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** { **[] $VALUES; public *; } #---------------------------------------------------------------------------- #---------------------------------融雲------------------------------------- -keepattributes Exceptions,InnerClasses -keepattributes Signature # RongCloud SDK -keep class io.rong.** {*;} -keep class * implements io.rong.imlib.model.MessageContent {*;} -dontwarn io.rong.push.** -dontnote com.xiaomi.** -dontnote com.google.android.gms.gcm.** -dontnote io.rong.** # VoIP -keep class io.agora.rtc.** {*;} # Location -keep class com.amap.api.**{*;} -keep class com.amap.api.services.**{*;} # 紅包 -keep class com.google.gson.** { *; } -keep class com.uuhelper.Application.** {*;} -keep class net.sourceforge.zbar.** { *; } -keep class com.google.android.gms.** { *; } -keep class com.alipay.** {*;} -keep class com.jrmf360.rylib.** {*;} -keep class com.kskApp.haisiyun.base.SealNotificationReceiver {*;} -ignorewarnings #----------------------------------------------------------------------------