今天,我們先說一下,獲取Android自帶的apk以及反編譯它們來學習Android工程師是怎樣寫的,今天我們就以拿到Android自帶的短信管理器的apk為例子
你可能有疑問,為什么要那么麻煩,從系統來拿,還要反編譯,如果我們有網絡的時候,當然可以直接去Android的源碼那里下載啦(Android源碼下載方法),但如果我們沒有網絡呢,那么我們就可以通過這樣來研究Android自帶的apk啦
首先,我們講一下怎樣獲取那個apk,其實很簡單的,作為一個Android的開發人員,肯定會用過模擬器的啦,我們獲取apk就是通過模擬器來獲取的
我們先打開一個模擬器。然后去到ddms里面去,我們就可以看到
有設置的apk啦,有打電話的apk啦,有照相的apk啦,所以大家如果沒有網絡的話,就可以在這里拿到系統的apk,然后反編譯,就可以研究一下系統是怎樣寫的啦
系統自帶的apk都在里面啦,那么我們的短信的apk在那里呢
短信的apk就是一個叫Mms的apk,大家可以找到它,然后把它導出來
接下來,我們還需要三個工具,分別是
dex2jar 它可以把apk里面的dex文件轉換成jar文件,下載地址
jd-gui 它可以把jar文件或class文件反編譯成java文件,下載地址
好啦,我們把三個工具下載好
然后解壓出來
然后呢,我們把apktool1.5.2里面的那個jar文件復制到apktool-install-windows-r05-ibot這個目錄下面
然后呢把那個之前導出的短信的apk也拷貝到這個目錄下面,然后在dos下面進入到這個目錄,然后輸入命令apktool d Mms.apk
我們就可以看到,這個目錄有一個叫Mms的目錄了,這個就是Mms.apk這個apk里面的資源啦
接下來,我們就要用winrar這些壓縮軟件來打開那個Mms.apk啦,其實apk的壓縮方式和jar的壓縮方式是一樣的,和rar的壓縮方式也是一樣的
我們要把classes.dex這個文件拷貝出來,然后放到dex2jar這個目錄下面,然后在dos下進入到這個目錄,然后運行命令,dex2jar classes.dex
就這樣,我們就拿到了一個jar文件啦,現在我們就 把那個jar文件拷貝出來,然后放到jd-gui這個目錄下面
然后就雙擊那個jd-gui.exe
然后就File-->OpenFile
然后就打開剛剛那個jar就可以啦
就這樣子,我們就可以看到源碼啦,資源文件在apktool那里,把它也拿下來就可以的啦