天天看點

Android APK反編譯那點事

       在進行安卓開發時,有時候需要了解或擷取第三方應用的代碼結構、布局和樣式檔案、以及好的圖檔資源等。在不能直接得到源碼的情況下,隻能通過反編譯技術來實作。下面就簡單介紹下反編譯APK檔案的過程。

一:環境介紹

(1)android-apktool 1.5.2:GOOGLE提供的APK編譯工具,能檢視res目錄下的圖檔和配置檔案等資源。

(2)dex2jar-0.0.9.15:将apk中的classes.dex轉化成jar檔案。

二:檢視APK内的資源檔案

(1)通過位址http://code.google.com/p/android-apktool/ 下載下傳 apktool1.5.2.tar.bz2 和 apktool-install-windows-r05-ibot.tar.bz2(根據作業系統自行選擇)。

(2)在E盤建立檔案夾apktool1.5.2(盤符和檔案夾自行定義),把上步下載下傳的兩個壓縮檔案解壓到此檔案夾下,内容如下圖:

Android APK反編譯那點事

(3)拷貝需要反編譯的APK檔案(如 Test.apk)到 E:\apktool1.5.2 下。

(4)打開指令視窗(開始 -> 運作  輸入cmd  回車)進入到apktool.bat的檔案夾裡,目前是 E:\apktool1.5.2。

(5)輸入:apktool.bat d E:\apktool1.5.2\Test.apk  E:\apktool1.5.2\output,回車,操作步驟和結果詳見下圖。

      格式說明:apktool.bat d  apk檔案路徑    輸出路徑(最好是一個不存在的檔案夾,它會自動建立)。

Android APK反編譯那點事

(6)上述步驟完成後,即可在 E:\apktool1.5.2\output 路徑出現反編譯後的資源檔案。

三:檢視APK内的源代碼

(1)下載下傳dex2jar-0.0.9.15.zip,解壓到某盤符根目錄,例如  E:\dex2jar-0.0.9.15。

(2)把APK檔案重名為ZIP檔案并解壓,把解壓出的 classes.dex 檔案拷貝到  E:\dex2jar-0.0.9.15 下。

(3)打開指令視窗(開始 -> 運作  輸入cmd  回車)進入到dex2jar-0.0.9.15檔案夾,目前是 E:\dex2jar-0.0.9.15。

(4)輸入:dex2jar.bat classes.dex ,回車,詳見下圖:

Android APK反編譯那點事

(5)上述步驟執行完畢,即可在 dex2jar-0.0.9.15 目錄下生成 classes_dex2jar.jar ,把其放到任何一款JAVA反編譯軟體中都能得到源代碼。相信任何有過JAVA開發經曆的朋友都不陌生。