一、AndroidSDK自帶proguard混淆

一、AndroidSDK自帶proguard混淆
在Android SDK中自帶有proguard代碼混淆器,但在默認的情況下該混淆器是沒有打開的。該混淆器在SDK中的路徑是android-sdk-windows\tools\proguard


啓動Android-sdk-windows\tools\proguard\lib\proguardgui.jar可以使用獨立UI的proguard。 




ProGuard是一個免費的java類文件壓縮,優化,混淆器.它探測並刪除沒有使用的類,字段,方法和屬性.它刪除沒有用的說明並使用字節碼得到最大優化.它使用無意義的名字來重命名類,字段和方法.  


ProGuard的使用是爲了:  


1.創建緊湊的代碼文檔是爲了更快的網絡傳輸,快速裝載和更小的內存佔用. 


2.創建的程序和程序庫很難使用反向工程. 


3.所以它能刪除來自源文件中的沒有調用的代碼 


4.充分利用java6的快速加載的優點來提前檢測和返回java6中存在的類文件. 


Eclipse中使用proguard的方法如下:


1.啓動代碼混淆功能


新建Android項目工程裏面默認是帶有proguard.cfg的代碼混淆配置文件,如果沒有請從其它項目中copy一個過來。代碼混淆功能默認是沒有啓動這個配置的,需要手動地在項目根目錄default.properties文件裏面添加指定這個配置文件如下: 


# Project target.   
target=Android-7   
# set proguard.config   
proguardproguard.config=proguard.cfg  
2.打包發佈APK 


由於在 Debug下,不可能會有人會混淆代碼,因此這隻在release中有效。使用簽名和無簽名的方式都可以發佈APK包。


這時候生成的apk,我發現是比debug版本(\bin目錄下面)的要小。


 
二、反編譯方法


反編譯APK包步驟如下:


1.使用 dex2jar 把apk中的dex轉爲jar,解壓apk得到classed.dex,執行下面的命令:


D:\dex2jar-0.0.7.7-SNAPSHOT>dex2jar.bat classes.dex


生成classes.dex.dex2jar.jar 


2.用 jd-gui 進行反編譯查看classes.dex.dex2jar.jar包,如下圖。


 






本篇文章來源於 Linux公社網站(www.linuxidc.com)  原文鏈接:http://www.linuxidc.com/Linux/2011-11/47122.htm
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章