代碼混淆 proguard相關配置過程記錄

# 指定代碼的壓縮級別
-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*





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章