apk反編譯教程[素材提取,原始碼檢視]
學習最快的速度莫過於模仿,學習別人優秀的程式碼邏輯和UI設計,能讓自己少走很多彎路。對於android開發者,看到一個優秀的apk,總想知道別人是如何設計和佈局的。至於能不能看到原作者的程式碼,那要看運氣了。若是程式碼沒有混淆,那就恭喜你,原作者所有的程式碼都一清二楚,包括註釋。當然,現在不注重成果保護的開發者越來越少。所以我們看到的程式碼基本上都是混淆過的。
反編譯apk,最重要的目的是學習別人的UI佈局和提取素材。
下面,結合具體的工具教你一步一步反編譯apk, 以58.apk為例。
1,下載apktool,在cmd命令視窗下,移動至apktool.bat所在的資料夾。
執行: apktool d d:\apktool\58.apk d:\apktool\58
其中d:\apktool\58.apk為apk的路徑地址,d:\apktool\58為解壓後的目錄
執行成功後,會在D:\apktool資料夾下生成一個名為58的資料夾。
2,現在,你能看到所有的資源素材,res/目錄下的佈局檔案和圖片,還有AndroidManifest.xml。
3,但是,程式碼目前是看不到的,我們需要另外一種方式來獲取。
4,將58.apk改為58.zip。注:apk實際上是一個zip壓縮包。
5,解壓提取出58.zip中的classes.dex檔案。
6,下載 dex2jar-0.0.9.7.zip,解壓下載的dex2jar,將classes.dex複製到dex2jar.bat所在目錄。在命令列下定位到dex2jar.bat所在目錄
執行
dex2jar.bat classes.dex
生成
classes.dex.dex2jar.jar
7,執行jd-gui.exe,開啟classes_dex2jar.jar,就能看到原始碼,不過58的程式碼混淆了,看起來有點費勁。
8,至此,反編譯工作就大功告成。
本文中涉及到的軟體下載見底部。
轉自:http://blog.csdn.net/cbbing/article/details/9850147