1. 程式人生 > >Android常用第三方庫混淆規則集合

Android常用第三方庫混淆規則集合

# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in D:\android-sdk-windows/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 *; #} # copyright jeff #-------------------------------------------基本不用動區域-------------------------------------------- #---------------------------------基本指令區---------------------------------- -optimizationpasses 5 -dontskipnonpubliclibraryclassmembers -printmapping proguardMapping.txt -
optimizations !code/simplification/cast,!field/*,!class/merging/* -keepattributes *Annotation*,InnerClasses -keepattributes Signature -keepattributes SourceFile,LineNumberTable #---------------------------------------------------------------------------- #---------------------------------預設保留區--------------------------------- #繼承activity,application,service,broadcastReceiver,contentprovider....不進行混淆 -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.support.multidex.MultiDexApplication -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.** {*;} -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); } #這個主要是在layout 中寫的onclick方法android:onclick="onClick",不進行混淆 -keepclassmembers class * extends android.app.Activity { public void *(android.view.View); } -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 *(*Event); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } #// natvie 方法不混淆 -keepclasseswithmembernames class * { native <methods>; } #保持 Parcelable 不被混淆 -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } #---------------------------------------------------------------------------- #---------------------------------webview------------------------------------ -keepclassmembers class fqcn.of.javascript.interface.for.Webview { public *; } -keepclassmembers class * extends android.webkit.WebViewClient { public void *(android.webkit.WebView, java.lang.String, android.graphics.Bitmap); public boolean *(android.webkit.WebView, java.lang.String); } -keepclassmembers class * extends android.webkit.WebViewClient { public void *(android.webkit.WebView, jav.lang.String); } #---------------------------------------------------------------------------- #--------------------------------------------------------------------------------------------------- #---------------------------------實體類--------------------------------- 修改成你對應的包名 -keep class [your_pkg].** { *; } #---------------------------------第三方包------------------------------- #支付寶支付 -keep class com.alipay.android.app.IAlixPay{*;} -keep class com.alipay.android.app.IAlixPay$Stub{*;} -keep class com.alipay.android.app.IRemoteServiceCallback{*;} -keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;} -keep class com.alipay.sdk.app.PayTask{ public *;} -keep class com.alipay.sdk.app.AuthTask{ public *;} -keep public class * extends android.os.IInterface #微信支付 -keep class com.tencent.mm.sdk.openapi.WXMediaMessage {*;} -keep class com.tencent.mm.sdk.openapi.** implements com.tencent.mm.sdk.openapi.WXMediaMessage$IMediaObject {*;} -keep class com.tencent.wxop.** { *; } -dontwarn com.tencent.mm.** -keep class com.tencent.mm.**{*;} -keepclasseswithmembernames class ** { } -keepattributes Signature -keep class sun.misc.Unsafe { *; } -keep class com.taobao.** {*;} -keep class com.alibaba.** {*;} -keep class com.alipay.** {*;} -dontwarn com.taobao.** -dontwarn com.alibaba.** -dontwarn com.alipay.** -keep class com.ut.** {*;} -dontwarn com.ut.** -keep class com.ta.** {*;} -dontwarn com.ta.** -keep class anet.**{*;} -keep class org.android.spdy.**{*;} -keep class org.android.agoo.**{*;} -dontwarn anet.** -dontwarn org.android.spdy.** -dontwarn org.android.agoo.** -keepclasseswithmembernames class com.xiaomi.**{*;} -keep public class * extends com.xiaomi.mipush.sdk.PushMessageReceiver -dontwarn com.xiaomi.push.service.b -keep class org.apache.http.** -keep interface org.apache.http.** -dontwarn org.apache.** #okhttp3.x -dontwarn com.squareup.okhttp3.** -keep class com.squareup.okhttp3.** { *;} -dontwarn okio.** #sharesdk -keep class cn.sharesdk.**{*;} -keep class com.sina.**{*;} -keep class **.R$* {*;} -keep class **.R{*;} -keep class com.mob.**{*;} -dontwarn com.mob.** -dontwarn cn.sharesdk.** -dontwarn **.R$* ## nineoldandroids-2.4.0.jar -keep public class com.nineoldandroids.** {*;} ####################zxing##################### -keep class com.google.zxing.** {*;} -dontwarn com.google.zxing.** ##百度定位 -keep class com.baidu.** {*;} -keep class vi.com.** {*;} -dontwarn com.baidu.** ## okhttp -dontwarn com.squareup.okhttp.** -keep class com.squareup.okhttp.{*;} #retrofit -dontwarn retrofit.** -keep class retrofit.** { *; } -keepattributes Signature -keepattributes Exceptions -dontwarn okio.** #recyclerview-animators -keep class jp.wasabeef.** {*;} -dontwarn jp.wasabeef.* #multistateview -keep class com.kennyc.view.** { *; } -dontwarn com.kennyc.view.* # universal-image-loader 混淆 -dontwarn com.nostra13.universalimageloader.** -keep class com.nostra13.universalimageloader.** { *; } #ormlite -keep class com.j256.** -keepclassmembers class com.j256.** { *; } -keep enum com.j256.** -keepclassmembers enum com.j256.** { *; } -keep interface com.j256.** -keepclassmembers interface com.j256.** { *; } #umeng # ========= 友盟 ================= -dontshrink -dontoptimize -dontwarn com.google.android.maps.** -dontwarn android.webkit.WebView -dontwarn com.umeng.** -dontwarn com.tencent.weibo.sdk.** -dontwarn com.facebook.** -keep enum com.facebook.** -keepattributes Exceptions,InnerClasses,Signature -keepattributes *Annotation* -keepattributes SourceFile,LineNumberTable -keep public interface com.facebook.** -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 public class com.umeng.socialize.* {*;} -keep public class javax.** -keep public class android.webkit.** -keep class com.facebook.** -keep class com.umeng.scrshot.** -keep public class com.tencent.** {*;} -keep class com.umeng.socialize.sensor.** -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 im.yixin.sdk.api.YXMessage {*;} -keep class im.yixin.sdk.api.** implements im.yixin.sdk.api.YXMessage$YXMessageData{*;} 下面中括號的地方需要要填你的包名 -keep public class [your_pkg].R$*{ public static final int *; } -keepclassmembers class * { public <init> (org.json.JSONObject); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } #友盟自動更新 -keep public class com.umeng.fb.ui.ThreadView { } -keep public class * extends com.umeng.** # 以下包不進行過濾 -keep class com.umeng.** { *; } #-ButterKnife 7.0 -keep class butterknife.** { *; } -dontwarn butterknife.internal.** -keep class **$$ViewBinder { *; } -keepclasseswithmembernames class * { @butterknife.* <fields>; } -keepclasseswithmembernames class * { @butterknife.* <methods>; } #AndFix -keep class * extends java.lang.annotation.Annotation -keepclasseswithmembernames class * { native <methods>; } #eventbus 3.0 -keepattributes *Annotation* -keepclassmembers class ** { @org.greenrobot.eventbus.Subscribe <methods>; } -keep enum org.greenrobot.eventbus.ThreadMode { *; } -keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent { <init>(java.lang.Throwable); } #EventBus -keepclassmembers class ** { public void onEvent*(**); } -keepclassmembers class ** { public void xxxxxx(**); } ################gson################## -keep class com.google.gson.** {*;} -keep class com.google.**{*;} -keep class sun.misc.Unsafe { *; } -keep class com.google.gson.stream.** { *; } -keep class com.google.gson.examples.android.model.** { *; } -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 public class * implements java.io.Serializable {*;} # support-v4 #https://stackoverflow.com/questions/18978706/obfuscate-android-support-v7-widget-gridlayout-issue -dontwarn android.support.v4.** -keep class android.support.v4.app.** { *; } -keep interface android.support.v4.app.** { *; } -keep class android.support.v4.** { *; } # support-v7 -dontwarn android.support.v7.** -keep class android.support.v7.internal.** { *; } -keep interface android.support.v7.internal.** { *;