在進行安卓開發時,有時候需要了解或擷取第三方應用的代碼結構、布局和樣式檔案、以及好的圖檔資源等。在不能直接得到源碼的情況下,隻能通過反編譯技術來實作。下面就簡單介紹下反編譯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(盤符和檔案夾自行定義),把上步下載下傳的兩個壓縮檔案解壓到此檔案夾下,内容如下圖:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0NXYFhGd192UvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1TPB9UeFRVTpR2MZZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39jN0AjM0MDM3ETNxEDM0EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
(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檔案路徑 輸出路徑(最好是一個不存在的檔案夾,它會自動建立)。
(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 ,回車,詳見下圖:
(5)上述步驟執行完畢,即可在 dex2jar-0.0.9.15 目錄下生成 classes_dex2jar.jar ,把其放到任何一款JAVA反編譯軟體中都能得到源代碼。相信任何有過JAVA開發經曆的朋友都不陌生。