eclipse Android開發程式碼混淆
程式碼混淆對於一個完善的app 必不可少的
1、新建一個Android 專案時,會自動生成兩個檔案proguard-project.txt , project.properties
只需要將project.properties檔案中 proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt這行前面的#去掉,專案就可以程式碼混淆了
需要注意幾點:
1、只能通過export signed Application Package 或者 export Unsigned Application Package這兩種方式打包apk,才有程式碼混淆,直接執行的apk沒有程式碼混淆的。
2、proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt,這行程式碼中用到了兩個配置檔案,一個是sdk目錄下的proguard-android.txt,一些基本的配置,比如 Activity ,註解 ,實現介面等不被混淆一般不用修改。另一個是proguard-project.txt,之前說的新建專案自動生成的檔案,這裡你需要加上一些你需要不被混淆的配置。
3、proguard-project.txt配置,
-dontwarn com.tgt.soa.Coder.**
-keep class com.tgt.soa.Coder.** { *;}
表示包名com.tgt.soa.Coder下的所有類都不需要混淆
混淆測試
進行反編譯apk,就能知道你的apk是否進行混淆
我自己的百度網盤編譯工具下載路徑
http://pan.baidu.com/s/1hr7CJ7A
反編譯步驟
1 解壓apk檔案後,將classes.dex 檔案複製到dex2jar-2.0資料夾下
2 cmd目錄切換到當前資料夾,執行d2j-dex2jar.bat d classes.dex,會生成classes-dex2jar.jar
3 使用jd-gui.exe開啟classes-dex2jar.jar,檢視原始碼
混淆過的apk反編譯出來的包名都是 a b c 類的包名