Android專案打包apk及apk的反編譯,xml的反編譯
一、專案打包的一般原理及其缺點
(1)開發一個簡單的專案,釋出的時候為一個APK檔案,如果我們不使用簽名的方式,直接在bin目錄下找到*.apk檔案,很方便,但是我們的使用者在使用的時候,有可能會被其他的程式覆蓋安裝;具體解釋如下:
(2)我們新建一個專案Test目錄結構如下,並把它釋出到模擬器上,得到我們的打包檔案Test.apk
(3)然後我們在看模擬器中的檔案目錄資訊,我們在安裝的應用,都會在安卓機器上的data----data---具體的安裝資料夾,例如我的是:com.example.test
這裡的com.example.test是在,專案目錄下的AndroidManifest.xml檔案中,因此我們可以修改他的檔名稱
(4)到這裡,如果遇到相同的安裝目錄名,就有可能覆蓋我們的應用程式,造成惡意的破壞!
二、帶有數字簽名的打包方式
(5)那我們就需要使用簽名的方式,打包我們的軟體,步驟很簡單,點選專案右鍵---Android-Tools---Export Android Application--然後後邊的就不在介紹!按照自己需求進行即可!
三、apk的反編譯實現過程
(6)在上一步中,我們已經生成了一個簽名的apk檔案Test.apk然後我們使用解壓軟體,解壓,
上圖既是解壓後的目錄,各種配置檔案都在,就是缺少我們的原始檔和R類等
(7)其中classes.dex檔案,就是我們專案中src目錄下原始碼的編譯,二resources.arsc既是我們R類中的編譯檔案
(8)現在我們開始反編譯,檢視其中的原始檔和R類
(9)準備工具dex2jar和JD-GUI這兩個工具網上很多,搜尋下載即可(http://yunpan.cn/cfpRvDD8QJcKi 提取碼 c156)
(10)開始:將classes.dex檔案拷貝到我們的工具dex2jar檔案目錄下:
(11)然後在上圖中的位址列中將地址刪除然後敲入cmd回車(這樣的話我們可以直接定位到該目錄下!非常好使)或者自己手工找到該目錄下!
(12)然後執行dex2jar.bat 後邊加上剛才拷貝的要反編譯的檔案calsses.dex
(13)然後就會在dex2jar工具下生成一個jar檔案(到這裡這個jar還只是class檔案需要使用下一個工具才可以)
(14)然後將生成的class_dex2jar.jar檔案拖入到第二個工具JD-GUI中,就可以看到了
(15)另外我們還可以點選file--save all sources生成原始碼的檔案,這個就不上圖了,原始碼有了剩下的是殺是刮隨你便
(16)到此為止,已經完成對軟體的反編譯,這樣的話我們可以輕鬆愉快的閱讀別人的原始碼了!
/*********************************************************************更新內容:反編譯xml檔案**************************************************/
下載後解壓然後將apk檔案複製到這裡、比如我這是lashow.apk
在位址列中輸入cmd,回車--命令apktool-v2.0.RC2.jar d lashow.apk
注意:可能很多朋友們反編譯的時候會出錯:意思就是找不到檔案等,這個時候需要更新一下apktool的版本了!
然後結束的時候,就會看到有一個新的資料夾 ,在裡邊就可以找到你想要的了