標籤:
Android安全-代碼安全1-ProGuard混淆處理
ProGuard簡介
ProGuard是一個SourceForge上非常知名的開源項目。官網網址是:http://proguard.sourceforge.net/。
Java的位元組碼一般是非常容易反編譯的。為了很好的保護Java原始碼,我們往往會對編譯好的class檔案進行混淆處理。ProGuard的主要作用就是混淆。當然它還能對位元組碼進行縮減體積、最佳化等,但那些對於我們來說都算是次要的功能。
Android Eclipse開發環境與ProGuard
在Android 2.3以前,混淆Android代碼只能手動添加proguard來實現代碼混淆,非常不方便。而2.3以後,Google已經將這個工具加入到了SDK 的工具集裡。具體路徑:SDK\tools\proguard。當建立一個新的Android工程時,在工程目錄的根路徑下,會出現一個proguard 的設定檔proguard.cfg。也就是說,我們可以通過簡單的配置,在我們的elipse工程中直接使用ProGuard混淆Android工程。
具體混淆的步驟非常簡單。首先,我們需要在工程描述檔案default.properties中,添加一句話,啟用ProGuard。如下所示:
- # This file is automatically generated by Android Tools.
- # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
- #
- # This file must be checked in Version Control Systems.
- #
- # To customize properties used by the Ant build system use,
- # "ant.properties", and override values to adapt the script to your
- # project structure.
-
- # Project target.
- target=android-8
- proguardproguard.config=proguard.cfg
這樣,Proguard就可以使用了。當我們正常通過Android Tools匯出Application Package時,Proguard就會自動啟用,最佳化混淆你的代碼。
匯出成功後,你可以反編譯看看混淆的效果。一些類名、方法名和變數名等,都變成了一些無意義的字母或者數字。證明混淆成功!
Android安全-代碼安全1-ProGuard混淆處理