編輯:關於Android編程
承接我的上一篇文章Android ClassyShark vs ApkTool,感謝讀者@weishu的提醒,jadx是我遺漏的一個非常好用的android反編譯gui工具。下面就來介紹下jadx工具。
首先給出jadx的github地址
其實github上已經給出了很詳細的使用說明。但是作者這裡形式性地解讀下吧(- -|)。
依次運行以下命令:
git clone https://github.com/skylot/jadx.git
cd jadx
./gradlew dist
主要是拉下來jadx的git主工程,然後跑對應的gradle task。之後會生成運行腳本,大概就是多出了這個目錄
cd build/jadx/
bin/jadx -d out lib/jadx-core-*.jar
#or
bin/jadx-gui lib/jadx-core-*.jar
以上命令是git給出的運行示例,主要就是反編譯jadx源碼的一個jar包。
由於之前文章對比classyShark 和apktool時用的是淘寶apk,那麼這裡繼續用淘寶apk,便於三者的橫向比較。
bin/jadx-gui taobao.apk
當然如果你不喜歡使用命令行外加找文件路徑,你可以直接雙擊下圖腳本文件即可
會彈出以下界面,對應選中你想反編譯的.dex, .apk, .jar or .class即可(可以看到支持的格式還是很豐富的,贊)。
選中淘寶apk,並且反編譯完成後,結果如下:
可以看到結果中即反編譯了資源文件和源碼,這個效果對比,apktool+dex2jar+jd-gui這三個工具集來說操作簡便了太多。
主要就是來對比下反編譯後源碼的可讀性。同樣選用com.taobao.allspark包下的AllsparkLoader來進行對比,用jadx反編譯後的結果為:
我們可以看到可讀性非常高,要是去掉混淆的影響,已經很接近源碼了!!!(細心的讀者可以發現該gui還包含了一部分編譯器的功能,很實用)
那麼我們最終看看在as中打開導出工程後的結果:
很贊對不對
看了以上之後,我們就來說下jadx對比classyshark和(apktool+dex2jar+jd-gui工具集)的優劣勢吧。
優點:
1.操作方便快捷,一步到位
2.有較為完善的gui界面,帶有較多實用功能
3.反編譯代碼可讀性高
缺點:
1.沒有classyshark類似的方法總數統計以及圖形化分布界面
2.對比apktool直接反編譯出來的資源文件有相應的缺失(這個有心的童鞋可以自己嘗試下,這裡就不給截圖了)
總體來說jadx還是你反編譯工具的最佳選擇,當然有些時候可能還是需要你去配合使用,畢竟現在看來三者還是各有優劣的。
今天是中秋節,先祝各位中秋快樂吧。作為北漂的人,對於過節最大的感觸就是沒氣氛~ 中秋是一個特別重要的節日,小的時候過中秋都是特別快樂的,有月餅吃,和家人上月,過完中秋要去
本文實例講述了Android實現的仿淘寶購物車。分享給大家供大家參考,具體如下:夏的熱情漸漸退去,秋如期而至,豐收的季節,小編繼續著實習之路,走著走著,就走到了購物車,逛
美團的下拉刷新分為三個狀態:第一個狀態為下拉刷新狀態(pull to refresh),在這個狀態下是一個綠色的橢圓隨著下拉的距離動態改變其大小。第二個部分為放開刷新狀態
在我用Android開發一個數獨游戲的時候,需要添加相關的截屏功能(也就是將玩數獨的界面截下來) 代碼如下: try{ Bitmap map = Bitmap.