標籤:下載 pop pos alt 相關 產生 http 轉換 開源
Android基礎新手教程——1.10 反編譯APK獲代替碼&資源
標籤(空格分隔): Android基礎新手教程
本節引言:
”反編譯Apk“。看上去好像好像非常高端的樣子,事實上不然,就是通過某些反編譯軟體。對我們的APK進行反編譯,從而擷取程式的原始碼,圖片,XML資源等檔案。不知道你有沒有這樣做過,看到一個別人的一個APP介面做得非常精美,或者你看上別人的圖片素材,簡單點的,我們能夠下載別人的APK。然後改下尾碼名,改成xxx.zip。然後解壓:
筆者隨便解壓了一個APK:
我們能夠開啟res檔案夾,擷取裡面的圖片素材
可是。這個方案,獲得的僅僅會是一些.png,或者.jpg這種位元影像檔案資源,假設是xml類的資源,開啟我們會發現是亂碼。而且假如我們想看APK程式的Java代碼,也是行不通的,由於他們都打被打包到classes.dex檔案裡!
可是反編譯能夠解決你的須要~另外,切勿拿反編譯來做違法的事。比方把人家的APK又一次打包後使用自己的簽名然後公布到相關市場…另外,我們是參考別人的代碼,而不是全然拷貝!
!!
切記!
。
1.要準備的三個工具
- apktool:擷取資源檔。提取圖片檔案,布局檔案,另一些XML的資源檔
- dex2jar:將APK反編譯成Java原始碼(將classes.dex轉化為jar檔案)
- jd-gui:查看2中轉換後的jar檔案,即查看Java檔案
為了方便各位讀者,這裡將三個打包到一起放到雲端硬碟中,又須要的能夠進行下載:
反編譯相關的三個工具.zip
2.使用apktool反編譯APK獲得圖片與XML資源:
把下載好的apktool解壓後。我們能夠看到下述檔案(忽略那兩個csdn。一個是反編譯的apk。一個是反編譯後檔案):
接下來。雙擊cmd.exe,來到命令列,鍵入:
apktool.bat d csdn.apk 就可以。Enter斷行符號:
然後就能夠看到產生的csdn檔案夾,裡面就有我們想要資源
好的,就是XML資源到手了是吧!圖片素材也到手了!
3.使用dex2jar將classes.dex轉換成jar檔案:
把下載好的dex2jar檔案夾解壓,apk解壓後中的classes.dex拷貝到dex2jar.bat所在的檔案夾下:
開啟cmd,來到這個檔案夾下:鍵入:d2j-dex2jar.bat classes.dex
接著我們能夠看到。產生了一個jar包:
好的,轉換完畢!
4.使用jd-gui查看jar包中的Java代碼:
好的,開啟jd-gui的檔案夾
開啟後。開啟我們3中轉換後的jar包。我們能夠看見裡面的代碼:
csdn的client居然不混淆代碼…可能是本著開源的精神吧,給我們學習代碼吧!一般的話,apk公布都會
進行混淆,然後進行一些加密,或者使用第三方的加密平台。用的比較多的”愛加密“,有興趣的也自行百度查看更加具體的介紹。
本節小結:
好的。關於APK的反編譯就介紹到這裡。相信你已經摩拳擦掌想要試試了,那就試試吧,最後提醒一句,別做壞事!尊重別人的勞動成果。另外。關於第一大章環境搭建相關以及一些經常使用開發技巧就到這裡,下一節開始我們就來進行本系列教程的第二章——Android中的經常使用UI控制項的學習了!
因相關的基本控制項較多,預計有幾十個,假設一直學控制項可能沒什麼意思,可能並行寫教程,每天學一個控制項 + 一點其它的知識點這樣,筆者要構思構思,敬請期待~謝謝~
Android基礎新手教程——1.10 反編譯APK獲代替碼&資源