題記:在開發中可能看到別的app有一些精美的畫面和絢麗的動畫效果很漂亮,忍不住想借鑑下,很想知道它是怎麼實現的。於是就尋找實現的方法,在這裏總結了一下獲取的經驗、反編譯apk的實現過程在這裏分享給小夥伴們;
ps:本文僅供自我學習,總結經驗,研究android安全技術,提高自我研發水平。請勿用於商業活動及其他非法活動中,由此產生一切後果與本人無關。
開發環境:win 10 ; java jdk 1.8;已翻牆(下載工具用);
工具: apktool (資源文件獲取,可以提取出圖片文件和佈局文件進行使用查看) 下載地址:https://ibotpeaches.github.io/Apktool/
dex2jar (將apk反編譯成Java源碼(classes.dex轉化成jar文件)) 下載地址:https://github.com/pxb1988/dex2jar
jd-gui (查看APK中classes.dex轉化成出的jar文件,即源碼文件)
下載地址:http://java.decompiler.free.fr/?q=jdgui
反編譯流程:
一、apk反編譯得到程序的源代碼、圖片、XML配置、語言資源等文件
下載上述工具中的apktool,並解壓得到3個文件;將需要反編譯的APK文件放到該目錄下,
打開命令行界面(運行-CMD) ,定位到apktool文件夾,輸入以下命令:apktool d [-s] -f <apkPath> -o <folderPath>
文件夾目錄如下
說明獲取成功,之後發現在文件夾下多了個test文件,點擊便可以查看該應用的所有資源文件了。
如果你想將反編譯完的文件重新打包成apk,那你可以:輸入apktool.bat b test(你編譯出來文件夾)便可,
之後在之前的test文件下便可以發現多了2個文件夾:
build
dist(裏面存放着打包出來的APK文件)
二、Apk反編譯得到Java源代碼
下載上述工具中的dex2jar和jd-gui ,解壓
將要反編譯的APK後綴名改爲.rar或則 .zip,並解壓,得到其中的額classes.dex文件(它就是java文件編譯再通過dx工具打包而成的),將獲取到的classes.dex放到之前解壓出來的工具dex2jar-0.0.9.15 文件夾內,
在命令行下定位到dex2jar.bat所在目錄,輸入dex2jar.bat classes.dex,效果如下:
在改目錄下會生成一個classes_dex2jar.jar的文件,然後打開工具jd-gui文件夾裏的jd-gui.exe,之後用該工具打開之前生成的classes_dex2jar.jar文件,便可以看到源碼了,效果如下: