Android常用三方庫混淆規(guī)則整理(小結(jié))
本篇文章主要介紹了Android 三方庫混淆規(guī)則,分享給大家,具體如下:
基本指令
-optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -ignorewarnings -dontpreverify -verbose -printmapping proguardMapping.txt -optimizations !code/simplification/cast,!field/*,!class/merging/* -keepattributes *Annotation*,InnerClasses -keepattributes Signature -renamesourcefileattribute SourceFile -keepattributes SourceFile,LineNumberTable
Android相關(guān)組件
-keep public class * extends android.support.v7.app.AppCompatActivity -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.** {*;} -keepclasseswithmembernames class * { native <methods>; } -keepclassmembers class * extends android.support.v7.app.AppCompatActivity{ public void *(android.view.View); } -keepclassmembers enum * { *; } -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); }
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); }
友盟統(tǒng)計
-keep class com.umeng.** {*;} -keepclassmembers class * { public <init> (org.json.JSONObject); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep public class [您的應(yīng)用包名].R$*{ public static final int *; }
微信
-keep class com.tencent.mm.opensdk.** { *; } -keep class com.tencent.wxop.** { *; } -keep class com.tencent.mm.sdk.** { *; }
Glide
-keep public class * implements com.bumptech.glide.module.GlideModule -keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** { **[] $VALUES; public *; }
極光
-dontoptimize -dontpreverify -dontwarn cn.jpush.** -keep class cn.jpush.** { *; } -keep class * extends cn.jpush.android.helpers.JPushMessageReceiver { *; } -dontwarn cn.jiguang.** -keep class cn.jiguang.** { *; }
okio
-dontwarn okio.** -keep class okio.**{*;} -keep interface okio.**{*;}
OkHttp3
-dontwarn okhttp3.** -keep class okhttp3.**{*;} -keep interface okhttp3.**{*;}
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; }
Gson
-keep class com.google.gson.stream.** { *; }
Retrofit
-dontwarn retrofit2.** -keep class retrofit2.** { *; } -keep public class * extends retrofit2.Converter {*;}
GreenDao
-keepclassmembers class * extends org.greenrobot.greendao.AbstractDao { public static java.lang.String TABLENAME; } -keep class **$Properties # If you do not use SQLCipher: -dontwarn org.greenrobot.greendao.database.** # If you do not use Rx: -dontwarn rx.**
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android Drawable和Bitmap的轉(zhuǎn)換實例詳解
這篇文章主要介紹了Android Drawable和Bitmap的轉(zhuǎn)換實例詳解的相關(guān)資料,需要的朋友可以參考下2017-05-05Android獲取清單文件中的meta-data,解決碰到數(shù)值為null的問題
這篇文章主要介紹了Android獲取清單文件中的meta-data,解決碰到數(shù)值為null的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03Android實現(xiàn)讀取相機(相冊)圖片并進行剪裁
在 Android應(yīng)用中,很多時候我們需要實現(xiàn)上傳圖片,或者直接調(diào)用手機上的拍照功能拍照處理然后直接顯示并上傳功能,下面將講述調(diào)用相機拍照處理圖片然后顯示和調(diào)用手機相冊中的圖片處理然后顯示的功能2015-08-08AndroidView與Compose框架交互實現(xiàn)介紹
Android Compose自推出正式版本后,google 就一直推薦使用Compose來開發(fā)。正好疫情期間,作為一個 Android 摸魚達人,就來摸索一下Compose的開發(fā)。說實話開發(fā)了2天感覺對Android 開發(fā)人員來說變化是巨大的,但是作為從業(yè)者我們還必須學(xué)習(xí)和學(xué)會,才能不被甩開2022-09-09使用Composing?builds提升Android編譯速度
這篇文章主要介紹了使用Composing?builds提升Android編譯速度示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06