首先,懷著無比激動的心情寫下這篇日誌.....
Googles真的很給力....讓我有幸看到ANDROID應用程式的內部源碼....
下面開始言歸正傳:
ANDROID的應用程式是由兩部分組成的.
1.*.class檔案
2.*.xml檔案 解碼時候需要使用到不同的工具...
下面開始介紹*.class(類檔案的解碼)
需要用到的工具:
dex2jar和JD-GUI
dex2jar:http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip
JD-GUI:
windows版JD-GUI:http://laichao.googlecode.com/files/jdgui.zip
Linux版JD-GUI:http://laichao.googlecode.com/files/jd-gui-0.3.2.linux.i686.tar.gz
A:將*.apk檔案的尾碼修改成*.zip,然後解壓,會在檔案夾內發現一個叫classes.dex的檔案
B:將dex2jar解壓後放到C盤根目錄,然後將classe.dex放到這個檔案夾中來
然後在開始運行中輸入CMD,
將路徑定位到dex2jar.bat所在的檔案夾(dex2jar.bat為dex2jar解壓後檔案夾記憶體在的一個*.BAT檔案)
然後輸入:dex2jar.bat classes.dex
(這裡有可能會報錯,如果報錯好好看一下JAVA的環境變數是什麼,配置的對不對)
C:如果一切正常就會解碼出來一個*.jar檔案
D:用剛才提及到的JD-GUI來解碼*.jar檔案 (windows環境的直接拖上去可以)
E:很多公司開發出來的源碼都是修改了類名,方法名的- -這個比較噁心,也沒有什麼好辦法,只能費點眼神仔細看了....
下面是*.xml檔案的解碼
需要用到的工具:
apktool1.4.1.tar.bz2
apktool-install-windows-r04-brut1.tar.bz2
這兩個工具可以在Google官方提供的URL地址:http://code.google.com/p/android-apktool/
上下載
然後解壓,
A:兩個壓縮包內的所有檔案都要放在同一個路徑下,本人放的還是C盤根目錄
B:將需要解碼的*.apk檔案放到和步驟A中解壓的檔案相同的路徑下(本人放的依舊是C盤根目錄)
C:開始--->運行輸入CMD,然後定位到C盤,在命令提示框內輸入:apktool d C:\*.apk C:\***
(*.apk為需要解碼的應用程式,***為檔案夾名稱)
D:解碼後就能清晰的看到程式內所有用到的*.XML檔案啦...包括布局檔案和AndroidManifest.xml檔案