android2.3的SDK開始在eclipse中支持代碼混淆功能(理論上java都支持混淆,但關鍵在于如何編寫proguard的混淆腳本,2.3的SDK使用簡單的配置就可以實現混淆)。使用SDK2.3后,新建的工程下和之前相比,都會多了一個文件“proguard.cfg”。這個文件就是混淆所需的proguard腳本。在工程的"default.properties"中添加這樣一句話“proguard.config=proguard.cfg”即可實現混淆(如下圖)。

android4.0SDK,ADT14或者更高版本,項目中沒有default.properties文件,只有project.properties文件,找到project.properties文件即可。該文件中有以下兩行:
~~~
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
# proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
~~~
根據這段說明,只要將proguard.config前面的#去掉(下圖),就可以利用ProGuard來混淆代碼了!

默認的設置是不帶優化功能的,下面代碼可優化混淆:
~~~
proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
~~~
proguard 配置
最常用的配置選項
-dontwarn 缺省proguard 會檢查每一個引用是否正確,但是第三方庫里面往往有些不會用到的類,沒有正確引用。如果不配置的話,系統就會報錯。
-keep 指定的類和類成員被保留作為 入口 。
-keepclassmembers 指定的類成員被保留。
-keepclasseswithmembers 指定的類和類成員被保留,假如指定的類成員存在的話。
使用的JNI、jar時更應該考慮混淆的配置。
混淆更多配置請參考:
[http://developer.android.com/tools/help/proguard.html#configuring](http://developer.android.com/tools/help/proguard.html#configuring)