# 指定代碼的壓縮級別 -optimizationpasses 5 # 是否使用大小寫混合 -dontusemixedcaseclassnames # 混淆時是否做預校驗 -dontpreverify # 混淆時是否記錄日誌 -verbose # 混淆時所採用的算法
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
(1)
# 保持哪些類不被混淆 #-keep public class * extends android.app.Activity
-keep public class cn.cmcc.online.smsapi.CardViewHelper
打好的jar包只會有一個類CardViewHelper,其他類沒有混淆都消失了
public class CardViewHelper { public CardViewHelper() { } }
(2)
-keep public class * extends android.app.Activity
-keep public class cn.cmcc.online.smsapi.CardViewHelper
打好的jar包會保留繼承自activity的類,及CardViewHelper這個類,其中
protected static WebView a(Context var0, int var1, int var2) {}方法也被保留
(3)
保留內部類
-keepattributes InnerClasses
如果webview跟js交互不出錯,需添加
#4.2以上版本調用js接口需要在方法使用聲明@JavascriptInterface -keepclassmembers class cn.cmcc.online.smsapi.CardViewHelper$JsInterfaceObject{ public *; } -keepattributes *Annotation* -keepattributes *JavascriptInterface*或者
#4.2以上版本調用js接口需要在方法使用聲明@JavascriptInterface -keepclassmembers class cn.cmcc.online.smsapi.CardViewHelper$*{ *; } -keepattributes *Annotation* -keepattributes *JavascriptInterface*