apk是(shì)什麽文件(jiàn)、androids文件中(zhōng)怎麽反(fǎn)編(biān)譯?
apk即androids安裝包,通過將APK文件直接傳到androids模擬器或androids手機(jī)中執(zhí)行即可安裝。安卓androids的軟件安裝包以.apk為文(wén)件(jiàn)擴(kuò)展名,其文件格式(shì)是標(biāo)準(zhǔn)的.zip文件(jiàn),可以通過WinZIP、winrar等壓縮文件(jiàn)工具直接打開,或是在(zài).apk文件名(míng)上添(tiān)加.zip後綴(zhuì),即可查(chá)看封裝在其(qí)中的具(jù)體文件內容,包(bāo)括程(chéng)序、圖片、配置文件等。apk文(wén)件和(hé)sis一(yī)樣,把androids sdk編譯的(de)工程打包成一(yī)個安裝程(chéng)序文件,格式為apk。 APK文件其實是zip格式,但後綴名被修改為apk,通過(guò)UnZip解(jiě)壓後,可以看(kàn)到Dex文件,Dex是Dalvik VM executes的全稱,即(jí)androids Dalvik執行(háng)程序(xù),並(bìng)非Java ME的字(zì)節碼而是Dalvik字(zì)節(jiē)碼。androids在(zài)運行一個程序時首(shǒu)先需要UnZip,然後(hòu)類(lèi)似Symbian那樣(yàng)直接(jiē),和Windows mobiles中的PE文件有區別。
安裝(zhuāng)安卓軟件INSTALL_FAILED_CPU_ABI_INCOMPATIBLE的解決方法
具體方(fāng)法如(rú)下:
安裝apk文件到模擬器或者手機(jī)上時報:Installation error: INSTALL_FAILED_CPU_ABI_INCOMPATIBLE這個錯誤,Google下說是由於(yú)引用(yòng)了(le)其他非androids的sdk編(biān)譯環(huán)境編譯的二進(jìn)製代碼導致的,然後就把引用(yòng)的jar換成androids環境編譯(yì)導出,但是還是報錯(cuò),最(zuì)後發現是因為引用的jar文件裏的(de)lib目錄(lù)裏還引用其(qí)他jar導致,把lib裏的jar拿出來放(fàng)到(dào)項目的(de)buildpath裏即可解決,不要引用的jar裏再(zài)嵌套引用jar那(nà)樣(yàng)就會有報錯。
如果因(yīn)為(wéi)引用的jar文件(jiàn)裏的lib目(mù)錄裏還引用其(qí)他jar導(dǎo)致,把lib裏的(de)jar拿(ná)出來放(fàng)到項目的buildpath裏即(jí)可解決,不(bú)要引用的jar裏(lǐ)再嵌套(tào)引用jar那(nà)樣就會有報錯。
androids反編(biān)譯
一、Apk反編譯得(dé)到Java源(yuán)代碼
下載上述反編(biān)譯(yì)工具包,打開apk2java目錄下(xià)的dex2jar-0.0.9.9文件夾,內(nèi)含apk反編譯成java源碼工具(jù),以及源碼查看工具。
apk反編譯工具dex2jar,是將apk中(zhōng)的(de)classes.dex轉化成(chéng)jar文件(jiàn)
源碼查看工具jdgui,是一個(gè)反編譯工具,可以直接查看反編譯後的jar包(bāo)源代碼。
具(jù)體步驟:
首先將apk文(wén)件後綴改為zip並解壓,得到其中(zhōng)的classes.dex,它就是java文件編譯再(zài)通過dx工具打包而成的,將classes.dex複製到dex2jar.bat所在目(mù)錄dex2jar-0.0.9.9文件夾(jiá)。
在命令行下定(dìng)位到(dào)dex2jar.bat所在目錄,運行
dex2jar.bat classes.dex
生(shēng)成
classes_dex2jar.jar
然後(hòu),進(jìn)入jdgui文件夾雙擊jd-gui.exe,打開上麵生成(chéng)的(de)jar包classes_dex2jar.jar,即(jí)可看(kàn)到源代(dài)碼了,如下圖:
Helloandroids源碼在反編譯前後的對(duì)照(zhào)如下:
二、apk反編(biān)譯生(shēng)成程序的源代碼和圖片、XML配(pèi)置、語言資源等文件
如(rú)果(guǒ)是漢化軟(ruǎn)件,這將特別有(yǒu)用
首先還是要(yào)下載上述(shù)反編譯工具包,其(qí)中(zhōng)最(zuì)新的apktool,請(qǐng)到(dào)google code下載
apktool(google code)
具體(tǐ)步(bù)驟:
下載上述反編譯工具包,打開apk2java目(mù)錄下的apktool1.4.1文件夾,內含(hán)三個文件:aapt.exe,apktool.bat,apktool.jar
注:裏麵(miàn)的apktool_bk.jar是備份的老版(bǎn)本,最(zuì)好用最新的apktool.jar
在命令行下定位到apktool.bat文件夾,輸入以下命令:apktool.bat d -f abc123.apk abc123,如下圖:
上(shàng)圖中,apktool.bat 命令行解釋:apktool.bat d -f [apk文件 ] [輸(shū)出文件夾(jiá)]
反編譯(yì)的文(wén)件如下(androidsManifest.xml為例(lì)):
將反編譯完的文件重新打包成apk,很簡單(dān),輸入apktool.bat b abc123(你編(biān)譯(yì)出來(lái)文件夾)即可,命(mìng)令如下:
打包apk後的文件在(zài)目錄C:\Helloandroids下,生成了兩個文件夾:
build
dist
其中,打包生成的Helloandroids.apk,在上麵的dist文(wén)件夾下,Ok
三、 圖形化反編譯apk
上述步驟一、二講(jiǎng)述了(le)命令行反編譯apk,現在提供一種圖形化反編譯工具(jù):androidsfby
首先,下載上述反編譯工具包,打(dǎ)開androidsfby目(mù)錄,雙擊androids反編譯工具(jù).exe,就可(kě)以(yǐ)瀏覽打(dǎ)開要反編譯(yì)的(de)apk
關鍵詞:apk
閱讀本文後您有(yǒu)什麽感想? 已有(yǒu) 人給出評價(jià)!
- 1
- 1
- 1
- 1
- 1
- 1