① dump.txt
介紹了APK中所有class文件的內(nèi)部結(jié)構(gòu)磨总,雖然里面不知道寫(xiě)的什么
② mapping.txt
混淆代碼對(duì)比,可以查看代碼中的類瓮栗、變量變成了什么
③ seeds.txt
沒(méi)有被混淆代碼對(duì)比
二廉羔、混淆的規(guī)則
1.一定要keep的內(nèi)容
① Activity,Service塘揣,Receiver等在AndroidManifest.xml文件中注冊(cè)的類
② JNI中的native方法
③ 反射使用的到的類蜡塌、屬性、方法名字
④ 自定義View
⑤ 第三方
⑥ Fragment
⑦ WebView addInterface 調(diào)用
⑧ Gson 實(shí)體類
2.關(guān)鍵字
“類”中關(guān)鍵字
① 訪問(wèn)修飾符(public protected private)
② 通配符
* 匹配任意長(zhǎng)度字符勿负,但是不包含分隔符 .
** 匹配任意長(zhǎng)度字符,包含分隔符
③ extends 指定類的基類
④ implement 實(shí)現(xiàn)了某個(gè)接口的類
“成員”中關(guān)鍵字
① <init> 匹配構(gòu)造方法
② <fields> 匹配所有的域
③ <methods>匹配所有方法
④ 通配符
* 匹配任意長(zhǎng)度字符劳曹,但不包含分隔符 .
** 匹配任意長(zhǎng)度字符奴愉,包含分隔符
*** 匹配任意參數(shù)類型
... 匹配任意長(zhǎng)度的任意類型參數(shù)
⑤訪問(wèn)修飾符(public protected private)
3.keep的規(guī)則
① 不混淆某個(gè)類
-keep class com.xx.WXEntryActivity { *; }
如果只想不混淆某個(gè)類需要
-keep class com.xx.WXEntryActivity
② 不混淆某個(gè)包下所有的類
-keep class com.xx.** { *; }
③ 不混淆某個(gè)類的子類
-keep class * extends com.xx.** { *; }
④ 不混淆某個(gè)接口的實(shí)現(xiàn)
-keep class * implements com.xx.I { *; }
⑤ 不混淆所有類中包含了“model”的類
-keep class **.*model*.** { *; }
⑥ 不混淆某個(gè)類的構(gòu)造方法
-keep class com.xx.WXEntryActivity {
public <init>();
}
⑦ 不混淆某個(gè)類的特定的方法test方法
-keep class com.xx.WXEntryActivity {
public void test(java.lang.String)
}