首先查看一下 “project.properties” 這個檔案:
"ant.properties"這個檔案,重寫一些值來適應你的工程結構。(翻譯的很水,不要當真)
這個檔案在SDK的 tools/proguard 檔案夾中,是Google事先寫好的一個代碼混淆設定檔,是一個基礎的android代碼混淆設定檔。
繼續查看 proguard-project.txt這個檔案:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
翻譯完畢...
通過這兩個檔案的注釋可以得出結論:
有了這一句就啟用的代碼混淆。
proguard-project.txt 中。
如果沒有引入第三方的庫,一般情況下 proguard-android.txt 的規則是夠用的,但是如果有第三方的庫,在混淆的時候要把第三方的庫忽略掉,這是就需要在 proguard-project.txt 檔案中添加規則。(android.support.** 已經在proguard-android.txt做了處理,所以如果使用了android.support.v4,就不用添加代碼混淆的規則了)。
對第三分庫的處理,參考:http://blog.csdn.net/u_xtian/article/details/7495023
具體做法,在 proguard-project.txt 添加:
-libraryjars **.jar (聲明lib檔案)
-dontwarn com.xx.bbb.** (不提示警告)
-keep class com.xx.bbb.** { *;} (不進行混淆)
例如百度地圖:
-libraryjars libs/baidumapapi_v2_1_3.jar
-dontwarn com.baidu.mapapi.**
-dontwarn com.baidu.platform.**
-dontwarn com.baidu.location.**
-dontwarn com.baidu.vi.**
-dontwarn vi.com.gdi.bgl.android.**
-keep class com.baidu.mapapi.** {*; }
-keep class com.baidu.platform.** {*; }
-keep class com.baidu.location.** {*; }
-keep class com.baidu.vi.** {*; }
-keep class vi.com.gdi.bgl.android.** {*; }
可能有人很疑惑,不進行代碼混淆的方法我知道,但這些包名去那裡找啊,其實很簡單。開啟Android Private Libraries就能看到。