android 代码混淆模板
生活随笔
收集整理的這篇文章主要介紹了
android 代码混淆模板
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#指定代碼的壓縮級(jí)別
-optimizationpasses 5
#包明不混合大小寫(xiě)
-dontusemixedcaseclassnames
#不去忽略非公共的庫(kù)類(lèi)
-dontskipnonpubliclibraryclasses#優(yōu)化 不優(yōu)化輸入的類(lèi)文件
-dontoptimize#預(yù)校驗(yàn)
-dontpreverify#混淆時(shí)是否記錄日志
-verbose# 混淆時(shí)所采用的算法
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
#保護(hù)注解
-keepattributes *Annotation*
# 保持哪些類(lèi)不被混淆
-keep public class * extends android.app.Fragment
-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 com.android.vending.licensing.ILicensingService
#如果有引用v4包可以添加下面這行
-keep public class * extends android.support.v4.app.Fragment
#忽略警告
-ignorewarning
#####################記錄生成的日志數(shù)據(jù),gradle build時(shí)在本項(xiàng)目根目錄輸出################
#apk 包內(nèi)所有 class 的內(nèi)部結(jié)構(gòu)
-dump class_files.txt
#未混淆的類(lèi)和成員
-printseeds seeds.txt
#列出從 apk 中刪除的代碼
-printusage unused.txt
#混淆前后的映射
-printmapping mapping.txt
#####################記錄生成的日志數(shù)據(jù),gradle build時(shí) 在本項(xiàng)目根目錄輸出-end################
################<span></span>混淆保護(hù)自己項(xiàng)目的部分代碼以及引用的第三方j(luò)ar包library#########################
#-libraryjars libs/umeng-analytics-v5.2.4.jar
#-libraryjars libs/alipaysd<span></span>k.jar
#<span></span>-libraryjars libs/alipaysecsdk.jar
#-libraryjars libs/alipayutdid.jar
#-libraryjars libs/wup-1.0.0-SNAPSHOT.jar
#-libraryjars libs/weibosdkcore.jar
#三星應(yīng)用市場(chǎng)需要添加:sdk-v1.0.0.jar,look-v1.0.1.jar
#-libraryjars libs/sdk-v1.0.0.jar
#-libraryjars libs/look-v1.0.1.jar
#我是以libaray的形式引用了一個(gè)圖片加載框架,如果不想混淆 keep 掉
-keep class com.nostra13.universalimageloader.** { *; }
#友盟
-keep class com.umeng.**{*;}
#支付寶
-keep class com.alipay.android.app.IAliPay{*;}
-keep class com.alipay.android.app.IAlixPay{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback{*;}
-keep class com.alipay.android.app.lib.ResourceMap{*;}
#信鴿推送
-keep class com.tencent.android.tpush.** {* ;}
-keep class com.tencent.mid.** {* ;}
#自己項(xiàng)目特殊處理代碼
#忽略警告
-dontwarn com.veidy.mobile.common.**
#保留一個(gè)完整的包
-keep class com.veidy.mobile.common.** {*;}
-keep class com.veidy.activity.login.WebLoginActivity{*;}
-keep class com.veidy.activity.UserInfoFragment{*;}
-keep class com.veidy.activity.HomeFragmentActivity{*;}
-keep class com.veidy.activity.CityActivity{*;}
-keep class com.veidy.activity.ClinikActivity{*;}
#如果引用了v4或者v7包
-dontwarn android.support.**
############<span></span>混淆保護(hù)自己項(xiàng)目的部分代碼以及引用的第三方j(luò)ar包library-end##################
-keep public class * extends android.view.View {public <init>(android.content.Context);public <init>(android.content.Context, android.util.AttributeSet);public <init>(android.content.Context, android.util.AttributeSet, int);public void set*(...);
}
#保持 native 方法不被混淆
-keepclasseswithmembernames class * {native <methods>;
}
#保持自定義控件類(lèi)不被混淆
-keepclasseswithmembers class * {public <init>(android.content.Context, android.util.AttributeSet);
}
#保持自定義控件類(lèi)不被混淆
-keepclasseswithmembers class * {public <init>(android.content.Context, android.util.AttributeSet, int);
}
#保持自定義控件類(lèi)不被混淆
-keepclassmembers class * extends android.app.Activity {public void *(android.view.View);
}
#保持 Parcelable 不被混淆
-keep class * implements android.os.Parcelable {public static final android.os.Parcelable$Creator *;
}
#保持 Serializable 不被混淆
-keepnames class * implements java.io.Serializable
#保持 Serializable 不被混淆并且enum 類(lèi)也不被混淆
-keepclassmembers class * implements java.io.Serializable {static final long serialVersionUID;private static final java.io.ObjectStreamField[] serialPersistentFields;!static !transient <fields>;!private <fields><span></span>;!private <methods>;private void writeObject(java.io.ObjectOutputStream);private void readObject(java.io.ObjectInputStream);java.lang.Object writeReplace();java.lang.Object readResolve();
}
#保持枚舉 enum 類(lèi)不被混淆 如果混淆報(bào)錯(cuò),建議直接使用上面的 -keepclassmembers class * implements java.io.Serializable即可
#-keepclassmembers enum * {
# public static **[] values();
# public static ** valueOf(java.lang.String);
#}
-keepclassmembers class * {public void *ButtonClicked(android.view.View);
}
#不混淆資源類(lèi)
-keepclassmembers class **.R$* {public static <fields>;
}
#避免混淆泛型 如果混淆報(bào)錯(cuò)建議關(guān)掉
#–keepattributes Signature
#移除log 測(cè)試了下沒(méi)有用還是建議自己定義一個(gè)開(kāi)關(guān)控制是否輸出日志
#-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(...);
#}
文章不錯(cuò),引用來(lái)自:http://my.oschina.net/kooeasy/blog/479083?p=1
總結(jié)
以上是生活随笔為你收集整理的android 代码混淆模板的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux 迅雷 chrome插件,Ch
- 下一篇: erlang-17版本的编码方式