1. 程式人生 > >apk反編譯教程[素材提取,原始碼檢視]

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的資料夾。

cmd命令視窗

資料夾

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

cmd視窗

7,執行jd-gui.exe,開啟classes_dex2jar.jar,就能看到原始碼,不過58的程式碼混淆了,看起來有點費勁。

8,至此,反編譯工作就大功告成。

本文中涉及到的軟體下載見底部。

轉自:http://blog.csdn.net/cbbing/article/details/9850147