轉載請說明出處,本文來自Android菜鳥:http://blog.csdn.net/android_cai_niao/article/details/43151831
如需要更詳細的講解,請看視訊:http://edu.csdn.net/course/detail/405
由于本視訊在上傳後學院會對其進行轉碼,而轉碼後視訊品質嚴重下降,導緻花屏、馬賽克、畫面停滞等等問題,是以在學院解決這個問題之前這裡會提供原視訊下載下傳,視訊不大,每個視訊20M左右,下載下傳位址:http://pan.baidu.com/s/1c0tS8ik
經驗分享
像這些工具類,一般工具的提供者在官網都會提供相應的使用說明,如安裝說明、使用說明等,不要死記硬背這些使用步驟,隻要知道它的官網即可,可以百度官網,然後在官網找到對應的使用說明即可,而且這樣做有一個好處,就是這個工具有可能會更新,你可以下載下傳最新工具來獲得更好的結果,而且這些工具更新後可能連使用方法都改變了,那麼以前記住的那些使用步驟将沒有用,是以一旦遇到不記得使用步驟了,最好到官網檢視。
JD-GUI的使用
* http://jd.benow.ca/
* http://java.decompiler.free.fr(這是官網, 目前貌似已經不提供了)
JD-GUI是一個獨立的圖形工具,用于顯示*.class檔案的Java源代碼
從http://jd.benow.ca/下載下傳:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2QvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1TP3JGas1mYmx2VZpWOGpFc502YrVzVZZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39zN4UzMygDM0EjNyEDM1EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
打開這個壓縮包如下:
從上圖可看到,内容很簡單,就是一個jd-gui.exe和一個readme.txt,從readme檔案了解到如下内容:
* JD即JavaDecompiler的縮寫,JD的首頁是:http://java.decompiler.free.fr
* JD不需要安裝也不需要配置
* 如何使用JD-GUI
例如,編譯“Object.class”,你可以:
- 在指令行執行:jd-gui.exe Object.class
- 選擇 "FileàOpen File ...",在檔案中浏覽到 "Object.class"
- 把“Object.class”拖到“jd-gui”
* 解除安裝
- Windows:删除 “jd-gui.exe”和“jd-gui.cfg”。
- Linux:删除“jd-gui”應用檔案和“jd-gui.cfg”。
- OSX:把“JD-GUI”應用拖到trash.
JD-Eclipse插件
JD-Eclipse是Eclipse的一個插件:http://jd.benow.ca/jd-eclipse/update、http://jd.benow.ca/jd-eclipse/downloads/jdeclipse_update_site.zip
在安裝插件的時候會彈如下視窗,問的是“你信任這些證書嗎?”,我們把它勾上,如下:
dex2jar的使用
從https://code.google.com/p/dex2jar/下載下傳:
這個工具的使用非常簡單,它可以把Android APK中的classes.dex解碼為jar檔案,使用方法如下:
1、 下載下傳工具
2、 解壓,如解壓到:D:\dex2jar-0.0.9.15
3、 把你需要反編譯的apk複制到這個目錄,如我複制了一個abc.apk過去,則此時在cmd指令行敲如下指令:
cd /d D:\dex2jar-0.0.9.15
dex2jar apk
指令執行結束後,将會在cd/d D:\dex2jar-0.0.9.15目錄下看到生成了abc.jar,用JD-GUI檢視這個jar檔案即可。
android-apktool的使用
android-apktool可以把AndroidManifest.xml檔案和res目錄下的xml檔案和NinePatch圖檔反編譯到接近原始狀态,反編譯後還可以重新編譯回去
從https://code.google.com/p/android-apktool/下載下傳
V1.5.2以後的版本的下載下傳網址為:https://bitbucket.org/iBotPeaches/apktool/downloads
也可以好好閱讀首頁的内容,如下:
* ApktoolOptions即apktool指令的一選項功能說明,當然,在安裝好Apktool之後也可以直接在指令行打“apktool”即可顯示指令幫助。常用選項如下:
-f 強制删除目标目錄。如果試圖使用反編譯的檔案夾已經存在
-m 保持盡可能接近原始檔案。防止重建,用于分析
-s 這将防止反編譯java源代碼。這使APK的classes.dex檔案編譯期間簡單地移動它。如果你隻想編輯資源。這是推薦更快反編譯和重建。
指令使用格式為:apktoold [選項]<file.apk>,經典使用如下:
把apk随意放到一個目錄中,如我把abc.apk放在D:\a\b\ 目錄下,則cmd指令如下:
1. cd /d D:\a\b\
2. apktool d -f -m -s abc.apk
指令執行完畢後,則會在D:\a\b目錄下看到有一個abc目錄,該目錄下儲存了反編譯的資源檔案
* FrameworkFiles中的大概意思是,Android應用程式有可能使用Android系統内部的代碼和資源,标準的Android系統你不需要做任何改動,但是一些制作商,比如HTC添加了自己的架構檔案和應用,如你要解碼HTC手機的聯系人應用則需要另外的方法,詳情看網頁。
* 點選“Install”連結(https://code.google.com/p/android-apktool/wiki/Install),将會看到安裝的說明頁面,部分翻譯如下:
快速檢查
Apktool 2.x (1.5.2以後的版本)
是否安裝了Java 1.7 ?
在指令行執行 java -version是否傳回 1.7?
如果不是,請安裝 Java 7 并讓它成為預設。
Apktool 1.x (1.5.2之前的版本)
是否安裝了Java 1.6或更高的 ?
在指令行執行 java -version是否傳回 1.6或更高?
如果不是,請安裝 Java 6 或 Java 7 。
安裝 Apktool 2.x
Windows:
1. 下載下傳Windows包裝器腳本(右擊,儲存連結apktool.bat)
2. 下載下傳apktool-2(在這裡找到最新的)
3. 将下載下傳的jar重命名為apktool.jar
4. 把(apktool.jar & apktool.bat)移到您的Windows目錄(通常是C://Windows)
5. 如果你沒有通路C://windows的權限,你可以把這兩個檔案放在任何目錄,然後将該目錄添加到您的系統環境變量PATH中。
6. 嘗試通過指令提示符運作apktool