個人筆記本電腦上的硬盤驅動器剛剛崩潰,而且丟失了過去兩個月來我一直在使用的應用程序的全部源代碼。 我所擁有的就是APK文件,該文件存儲在我發送給朋友時的電子郵件中。 html
有什麼辦法能夠從這個APK文件中提取個人源代碼? java
這兩篇文章描述瞭如何結合使用apktool
和dex2jar
來獲取APK
文件,並建立一個能夠構建和運行它的Eclipse項目。 linux
http://blog.inyourbits.com/2012/11/extending-existing-android-applications.html android
http://blog.inyourbits.com/2012/12/extending-existing-android-applications.html git
基本上,您: github
apktool
將資源文件移出apk dex2jar
得到一個jar文件,其中包含Eclipse所需格式的類。 JDGui
打開jar文件以查看源代碼 JDGui
所需的任何源代碼,將其粘貼到Eclipse中的類中並對其進行修改 我將向您展現其餘反編譯.apk文件的方法。 windows
您能夠按照「 prankul garg 」的前兩個步驟進行操做 。 所以,您還有另外一個機會: app
步驟3': 函數
下載「 JD-GUI」 ,就很容易找到這個。 在「 jd-gui.exe」中打開您的.jar文件。 (文件>打開文件>'找到您的.jar文件')。 完成此過程後,您能夠將全部資源保存爲.zip文件。 學習
因此,
1st-您必須將.apk文件重命名爲.zip
2-您必須解碼.dex文件(若是須要,能夠將.apk文件解碼爲dex2jar )
3-您必須使用JD-GUI解碼.jar文件
這是一個替代性說明-以防萬一有人卡在上面的說明中。 按照步驟:
apktool.bat
(或Linux的apktool
)和apktool_<version>.jar
apktool.jar
並將兩個文件放在同一文件夾中 cmd.exe
)並轉到該文件夾; 驗證是否已安裝Java環境(對於Linux,請同時查看有關所需庫的註釋) apktool decode [apk file]
中間結果 :資源文件, AndroidManifest.xml
中間結果 : classes.dex
dex2jar-0.0.9.15.zip
。 classes.dex
拖放到dex2jar.bat
(或在DOS框中輸入<path_to>\\dex2jar.bat classes.dex
;對於Linux使用dex2jar.sh
) 中間結果 : classes_dex2jar.jar
classes_dex2jar.jar
(根據使用的反編譯器多是可選的) 結果 :源代碼
注意:不容許反編譯第三方軟件包; 本指南僅旨在從APK文件中恢復我的源代碼; 最後,最終的代碼極可能會被混淆
Play商店上還有一個新應用程序,能夠經過它反編譯apk(也爲系統應用程序)並在智能手機上查看源代碼。 它將文件保存到SD卡,所以您也能夠在計算機上查看文件。 它不須要root或其餘東西。
只需安裝並享受樂趣。 我認爲這是反編譯應用程序的最簡單方法。
雖然您能夠反編譯APK
文件,但您可能會遇到一個大問題:
它不會返回您編寫的代碼。 相反,它將返回編譯器內聯的全部內容,其中變量具備隨機名稱,而函數具備隨機名稱。 與從新開始相比,嘗試反編譯並將其還原到您擁有的代碼中可能要花費更多的時間。
可悲的是,像這樣的事情已經殺死了許多項目。
對於將來,我強烈建議學習版本控制系統,例如CVS , SVN和git等。
以及如何備份。