編輯:Android技術基礎
"反編譯Apk",看上去好像好像很高端的樣子,其實不然,就是通過某些反編譯軟件,對我們的APK進行反編譯,從而獲取程序的源代碼,圖片,XML資源等文件;不知道你有沒有這樣做過,看到一個別人的一個APP界面做得很精美,或者你看上別人的圖片素材,簡單點的,我們可以下載別人的APK,然後改下後綴名,改成xxx.zip,然後解壓: 筆者隨便解壓了一個APK:
我們可以打開res目錄,獲取裡面的圖片素材
但是,這種方法,獲得的只會是一些.png,或者.jpg這樣的位圖文件資源,如果是xml類的資源,打開我們會發現是亂碼,並且假如我們想看APK程序的Java代碼,也是行不通的,因為他們都打被打包到classes.dex文件中! 但是反編譯可以解決你的需要~另外,切勿拿反編譯來做違法的事,比如把人家的APK重新打包後使用自己的簽名然後發布到相關市場...另外,我們是參考別人的代碼,而不是完全拷貝!!!切記!!
- apktool:獲取資源文件,提取圖片文件,布局文件,還有一些XML的資源文件
- dex2jar:將APK反編譯成Java源碼(將classes.dex轉化為jar文件)
- jd-gui:查看2中轉換後的jar文件,即查看Java文件 為了方便各位讀者,這裡將三個打包到一起放到雲盤中,又需要的可以進行下載: 反編譯相關的三個工具.zip
把下載好的apktool解壓後,我們可以看到下述文件(忽略那兩個csdn,一個是反編譯的apk,一個是反編譯後文件):
接下來,雙擊cmd.exe,來到命令行,鍵入: apktool.bat d csdn.apk 即可,Enter回車:
然後就可以看到生成的csdn文件夾,裡面就有我們想要資源 好的,就是XML資源到手了是吧!圖片素材也到手了!
把下載好的dex2jar文件夾解壓,apk解壓後中的classes.dex復制到dex2jar.bat所在的目錄下:
打開cmd,來到這個目錄下:鍵入:d2j-dex2jar.bat classes.dex
接著我們可以看到,生成了一個jar包:
好的,轉換完成!
好的,打開jd-gui的文件夾
打開後,打開我們3中轉換後的jar包,我們可以看見裡面的代碼:
csdn的客戶端竟然不混淆代碼...可能是本著開源的精神吧,給我們學習代碼吧!一般的話,apk發布都會 進行混淆,然後進行一些加密,或者使用第三方的加密平台,用的比較多的"愛加密",有興趣的也自行百度查看更加詳細的介紹!
好的,關於APK的反編譯就介紹到這裡,相信你已經摩拳擦掌想要試試了,那就試試吧,最後提醒一句,別做壞事!尊重別人的勞動成果!另外,關於第一大章環境搭建相關以及一些常用開發技巧就到這裡,下一節開始我們就來進行本系列教程的第二章——Android中的常用UI控件的學習了!因相關的基本控件較多,估計有幾十個,如果一直學控件可能沒什麼意思,可能並行寫教程,每天學一個控件 + 一點其他的知識點這樣,筆者要構思構思,敬請期待~謝謝~
本節引言:在上一節結束後意味著Android的四大組件我們都已經學習完畢了~,而本節我們要學習的是四大組件間的樞紐——Intent(意圖),Andr
在Android App應用中,二級聯動是應用極為廣泛的,我們在上一章的基礎上來學習一下如何實現。 基本知識點:OnItemSelectedListener事件&nbs
本節引言:嘿嘿,看到這個題目,相信部分讀者會問,你前面的Fragment寫完了嗎?嗯,沒寫完,因為想例子,需要一點時間,為了提高效率,所以決定像多線
本節引言:本節繼續來學習Paint的API——PathEffect(路徑效果),我們把畫筆的sytle設置為Stroke,可以繪制一個個由線構成的圖