最近我在使用Android Studio混淆打包release版本,打包是否成功?自然想到了反編譯。然后百度“apk反編譯”,出來最多的是apktool反編譯。百度也真是越來越水了,反正百度出來的教程都是N年前的,現(xiàn)在早就不能用了。很多博主也都不跟新博客了,然后隨著jdk發(fā)展apktool也跟新很多代了。所有有些博主的內(nèi)容,已經(jīng)沒法兒用了。
比如:
http://blog.csdn.net/vipzjyno1/article/details/21039349/#reply
這個(gè)博主,有些地方說得還不錯(cuò)。但是apktool下載版本和用法早就過時(shí)了,現(xiàn)在已經(jīng)沒法兒用了。
apktool
作用:主要查看res文件下xml文件、AndroidManifest.xml和圖片。(注意:如果直接解壓.apk文件,xml文件打開全部是亂碼)
dex2jar
作用:將apk反編譯成Java源碼(classes.dex轉(zhuǎn)化成jar文件)
jd-gui
作用:查看APK中classes.dex轉(zhuǎn)化成出的jar文件,即源碼文件
$ apktool d test.apkI: Using Apktool 2.2.1 on test.apkI: Loading resource table...I: Decoding AndroidManifest.xml with resources...I: Loading resource table from file: 1.apkI: Regular manifest package...I: Decoding file-resources...I: Decoding values */* XMLs...I: Baksmaling classes.dex...I: Copying assets and libs...I: Copying unknown files...I: Copying original files...$ apktool b testI: Using Apktool 2.2.1 on testI: Checking whether sources has changed...I: Smaling smali folder into classes.dex...I: Checking whether resources has changed...I: Building resources...I: Building apk file...I: Copying unknown files/dir...
其實(shí)就是,運(yùn)行CMD,進(jìn)入比如app-release.apk所在目錄,然后運(yùn)行apktool d app-release.apk就可以了,默認(rèn)解壓的文件就在app-release.apk所在目錄。最后,如果我上面的方法不能用了,請(qǐng)看英文的原網(wǎng)頁(yè)怎么說。
比如:
http://blog.csdn.net/vipzjyno1/article/details/21039349/#reply
dex2jar
作用:將apk反編譯成Java源碼(classes.dex轉(zhuǎn)化成jar文件)
jd-gui
作用:查看APK中classes.dex轉(zhuǎn)化成出的jar文件,即源碼文件聯(lián)系客服