android使用proguard實現代碼混淆

一、代碼混淆都做瞭什麼?
1、代碼混淆通常主要是去除不必要的代碼,是用一些晦澀難懂的名稱來重命名類,屬性,方法等,以達到減小代碼體積,增加反編譯難度的目的。(如果我們的應用是收費的或者保密的,那麼我們就很有必要通過代碼混淆來提高我們代碼的安全性)
二、在Eclipse中啟用ProGuard
1、確定Android SDK目錄下是否存在proguard文件夾
例如我自己的D:\Environment\android-sdk-windows\tools\proguard
2、配置
   1)檢查項目根目錄下是否存在proguard.cfg文件,如果不存在(說明的當前的項目是2.3以前的項目),需要新建一個2.3的android項目,從該項目中將proguard.cfg文件拷貝到你的項目根目錄中,無需改動(除非你明白如何自定義自己的混淆策略),繼續下面步驟。
   2)如果存在,則找到項目根目錄下的default.properties[如果你使用的是ADT14或者更高版本,那麼項目中沒有default.properties文件,隻有project.properties文件,找到project.properties文件即可]文件,在文件中增加一項配置:proguard.config=proguard.cfg
這樣就完成瞭配置,是不是很簡單啊。以後使用Eclipse打包的該項目APK都被混淆瞭。下面的三、四、五是一些錯誤解決方案和詳細文檔。
三、可能出現的錯誤
1、在打包APK的時候可能會出現如下錯誤:
Conversion to Dalvik format failed with error 1
解決方案:
在Android SDK安裝目錄下找到如下proguard.bat打開,如下修改:
 
call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %*
改為
call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9
 
四、開源的代碼混淆工具ProGuard
1、項目文檔:(若想自定義自己的混淆策略應該從這裡瞭解)
http://proguard.sourceforge.net/index.html#manual/introduction.html
五、Android中集成瞭ProGuard工具來實現代碼混淆
1、Android中的ProGuard使用指南
windows系統中指南位置:
android-sdk-windows/docs/guide/developing/tools/proguard.html
Google在線DevGuid中的位置:
http://developer.android.com/guide/developing/tools/proguard.html

 

摘自 沉沒瞭沉默

發佈留言