反編譯的目的在於學習一些優秀的Android應用程序代碼。
在進行反編譯之前,需要准備好下面的軟件工具(這些文件都放在同一文件下):
650) this.width=650;">
這些工具的下載地址:
免費下載地址在 http://linux.linuxidc.com/
用戶名與密碼都是www.linuxidc.com
具體下載目錄在 /2012年資料/1月/29日/Android開發教程:反編譯APK文件/
下面開始進行反編譯APK文件:
1.先將上面的apktool-install-windows-2.1_r01-1.zip,dex2jar-0.0.7-SNAPSHOT.zip解壓到一個盤的根目錄的一個文件下面(這裡我選擇D:\APKTool)
2.Win+R打開運行界面,輸入cmd,進入dos窗口,輸入cd /d D:\APKTool進入到D:\APKTool下面,然後輸入下面的命令,按Enter鍵,會出現下圖所示650) this.width=650;" height=180>
apktool.jar是解包工具,d表示解包,android.apk是要解包的APK文件,紅色矩形框表示解包後輸出到這個文件夾。這時候打開d:\AndroidCode,就能看到通過解包得到的文件
650) this.width=650;">
裡面的AndroidManifest.xml文件和res下面的所有文件就能直接打開查看了。
3.解包之後,將之前的android.apk文件的後綴名改為rar,之後就將裡面的classes.dex文件解壓到D:\APKTool下面。然後在dos窗口輸入dex2jar.bat classes.dex
650) this.width=650;">
得到一個名為classes.dex.dex2jar.jar的文件,此時用jd-gui.exe打開classes.dex.dex2jar.jar或者用DJ Java Decompiler反編譯工具將.class文件反編譯成.java文件 就能看到所有源代碼了!
PS:APK文件反編譯之後,XML的源碼不會出現亂碼,不過有些APK文件得到Java源碼會出一些亂碼(比如在給變量賦值的時候),我現在沒有到更好的解決方法。