什么是APK文件?如何修改APK文件

APK是AndroidPackage的縮寫,即即Androidapplicationpackage文件或Android安裝包。每個(gè)要安裝到Android平臺(tái)的應(yīng)用都要被編譯打包為一個(gè)單獨(dú)的文件,后綴名為.apk。APK文件是用專業(yè)軟件eclipse編譯生成的文件包,其中包含了應(yīng)用的二進(jìn)制代碼、資源、配置文件等。通過將APK文件直接傳到Android手機(jī)中執(zhí)行即可安裝。APK文件其實(shí)就是zip格式,但其擴(kuò)展名被改為apk,用解壓軟件可以直接打開。通過WinRAR或UnZip解壓后,你會(huì)看到有幾個(gè)文件和文件夾。一個(gè)典型的APK文件通常有下列內(nèi)容組成:AndroidManifest.xml程序全局配置文件classes.dexDalvik字節(jié)碼
resources.arsc
編譯后的二進(jìn)制資源文件
META-INF\該目錄下存放的是簽名信息res\
該目錄存放資源文件
assets\該目錄可以存放一些配置文件
下面對(duì)這些文件和目錄做些基本的注釋和介紹。?AndroidManifest.xml
該文件是每個(gè)應(yīng)用程序都必須定義和包含的文件,它描述了應(yīng)用程序的名字、版本、權(quán)限、引用的庫文件等等信息。需要解包后才能加以閱讀。
?classes.dex文件
classes.dex是java源碼編譯后生成的java字節(jié)碼文件。dex是DalvikVMexecutes的全稱,即AndroidDalvik執(zhí)行程序,并非JavaME的字節(jié)碼而是Dalvik字節(jié)碼。?resources.arsc
編譯后的二進(jìn)制資源文件。?META-INF目錄
META-INF目錄下存放的是簽名信息,用來保證apk包的完整性和系統(tǒng)的安全。在eclipse編譯生成一個(gè)apk包時(shí),會(huì)對(duì)所有要打包的文件做一個(gè)校驗(yàn)計(jì)算,并把計(jì)算結(jié)果放在META-INF目錄下。這就保證了apk包里的文件不能被隨意替換。比如拿到一個(gè)apk包后,如果想要替換里面的一幅圖片,一段代碼,或一段版權(quán)信息,想直接解壓縮、替換再重新打包,基本是不可能的。如此一來就給病毒感染
和惡意修改增加了難度,有助于保護(hù)系統(tǒng)的安全。?res目錄
res目錄存放資源文件。包括圖片,字符串等等。解包后,幾乎所有可能的修改和編輯工作基本都在這里。?assets目錄
assets目錄可以存放一些配置文件,這些文件的內(nèi)容在程序運(yùn)行過程中可以通過相關(guān)的API獲得。
2.APK文件的解包和打包
APK文件是用專業(yè)軟件eclipse編譯生成的文件包。在網(wǎng)上可以找到許多軟件來對(duì)APK的內(nèi)容進(jìn)行反編譯,例如:可以通過AXMLPrinter2工具和命令:java-jarAXMLPrinter2.jarAndroidManifest.xml解開在apk中的AndroidManifest.xml。最近,業(yè)界有一個(gè)功能強(qiáng)大的解包打包工具包apktool,可以在Windows下用來方便快速地對(duì)APK文件進(jìn)行解包和打包,給修改和編輯工作帶來許多方便。下面來介紹它的使用。
1)APKtool軟件包
APKtool軟件包有2個(gè)程序組成:apktool.jar和aapt.exe另外提供一個(gè)批處理文件:apktool.bat,其內(nèi)容為:java-jar"%~dp0\apktool.jar"%1%2%3%4%5%6%7%8%9
運(yùn)行apktools.jar需要java環(huán)境(1.6.0版本以上)。apktool.jar用于解包,apktool.jar和aapt.exe聯(lián)合用于打包。2)APK文件的解包
下面以解開Contacts.apk為例。首先把Contacts.apk復(fù)制到當(dāng)前工作目錄下(例:Test)。在DOS下打入命令apktooldContacts.apkABC
這里“d”表示要解碼。Contacts.apk是要解包的APK文件。ABC是子目錄名。所有解包的文件都會(huì)放在這個(gè)子目錄內(nèi)。3)APK文件的打包在DOS下打入命令
apktoolbABCNew-Contacts.apk這里“b”表示要打包
ABC是子目錄名,是解包時(shí)產(chǎn)生的子目錄,用來存放所有解包后的和修改后的文件。
New-Contacts.apk是打包后產(chǎn)生的新的APK文件。4)Framework框架文件
在解開APK文件時(shí),apktool需要框架文件(framework-res.apk)來解碼和打包。Apktool已經(jīng)包含了標(biāo)準(zhǔn)的框架,所以在大多數(shù)APK文件的解包時(shí),不需要另外提供框架文件。但是,某些制造商使用了他們自己的框架文件,為了解包,就不得不從手機(jī)中把框架文件(framework-res.apk)提取出來,然后安裝到計(jì)算機(jī)。安裝命令是:
apktoolifframework-res.apk
安裝后就會(huì)得到:~\apktool\framework\1.apk5)解包、解包和簽名批處理
在實(shí)際使用時(shí),可能對(duì)多個(gè)APK文件進(jìn)行處理。方便的做法是寫成批處理文件。打包和簽名可以一次完成。
解包批處理命令:
for%%iin(*.apk)dojava-jarapktool.jard%%i_%%i&&move_%%iModifying_Files&©%%iBackuped_Raw_Files&&@echoFile[%%i]unpackingprocessiscompleted!
打包和簽名批處理命令:
for/d%%iin(*)docd..&&java-jarapktool.jarbModifying_Files\%%i&&
java
-jar
signapk.jar
testkey.x509.pem
testkey.pk8
Modifying_Files\%%i\dist\*.apk%%i&&ren%%iNew%%i&&moveNew%%iModified_Signed_Files&&@echo%%iCompleterepackingandSigning!&&cdModifying_Files
到此APK文件的解包打包和修改已經(jīng)介紹完了,希望看完小編的介紹后都能有所了解,有所幫助!
小米紅米note刷機(jī)包下載:http://www.sld007.cn/romlist/881_0_0_1_10
小米紅米note刷機(jī)教程:http://www.sld007.cn/phone/881_4.html
熱門刷機(jī)包top10
- 紅米Note聯(lián)通版刷機(jī)包 MIUI6-5.6.23 全局沉浸 完美過渡動(dòng)畫 流暢到爆 完美4x6布局
- 紅米NOTE刷機(jī)包 基于最新13.0 全新特效與主題 急速省電 穩(wěn)定流暢
- 紅米note刷機(jī)包 MIUI官方ROM JHECNBA12.0(V5)原汁原味 完整穩(wěn)定版
- 紅米Note刷機(jī)包 移動(dòng)版 開發(fā)版4.9.23 蝰蛇音效 CRT鎖屏動(dòng)畫 最流暢的ROM
- 紅米note聯(lián)通版刷機(jī)包 MIUI 開發(fā)版 4.9.23 全局MIUI V6風(fēng) 省電穩(wěn)定 史上最流暢
- 紅米Note刷機(jī)包 JB 17.0 破解主題 精簡優(yōu)化 定時(shí)開關(guān)機(jī) 優(yōu)化 流暢 穩(wěn)定
- 紅米Note刷機(jī)包 移動(dòng)版 最新miui6開發(fā)版5.4.17 官網(wǎng)極致純凈無修改 穩(wěn)定才是王道
- 紅米Note刷機(jī)包 通用版 穩(wěn)定版15.0 官方ROOT 性能模式 定時(shí)關(guān)機(jī)
- 紅米Note刷機(jī)包 移動(dòng)版 MIUI 7開發(fā)版5.8.28 殺毒引擎切換 低內(nèi)存清空后臺(tái) 省電穩(wěn)定
- 【簡心ROM】紅米note移動(dòng)版刷機(jī)包 JHECNBE25.0修改 完美ROOT權(quán)限 極限精簡 穩(wěn)定流暢
熱門刷機(jī)教程top10
- 小米 紅米Note(移動(dòng)4G增強(qiáng)) 解鎖教程
- 小米 紅米Note(移動(dòng)4G增強(qiáng)) Fastboot驅(qū)動(dòng)安裝說明
- 小米 紅米Note(移動(dòng)4G增強(qiáng)) Fastboot刷機(jī)教程
- 紅米note線刷刷機(jī)教程及線刷包救磚包下載
- 小米手機(jī)如何隱藏私密文件 小編手把手教你!
- 小米MIUI V7.1穩(wěn)定版固件下載地址搶鮮刷 應(yīng)有盡有!
- 升級(jí)MIUI 7穩(wěn)定版前應(yīng)該注意哪些?
- 系統(tǒng)升級(jí)后紅米Note如何清理緩存 答案在這里揭曉!
- 小米4C黑屏解決技巧教程 操作很簡單!
- 紅米Note系統(tǒng)升級(jí)后清緩存方法介紹 很簡單哦!
熱門ROM資訊top10
熱門手機(jī)刷機(jī)包
- 金立 GN181刷機(jī)包
- 奧克斯 AUX U990T刷機(jī)包
- 酷派 7290刷機(jī)包
- 華為 U9500刷機(jī)包
- 聯(lián)想 S5000-F刷機(jī)包
- 360手機(jī)F4刷機(jī)包
- 愛我 Lovme X50+刷機(jī)包
- 奧樂 AOLE T108+刷機(jī)包
- 三星 Galaxy Note4 (N910W8)刷機(jī)包
- 三星 J100M刷機(jī)包
- 糯米 V1刷機(jī)包
- 魅族 MX4 Pro刷機(jī)包
- 小米 紅米1S(聯(lián)通版)刷機(jī)包
- 海信 E621T刷機(jī)包
- 菲樂普 T9刷機(jī)包
- 華為 暢享5(TIT-TL00/移動(dòng)4G)刷機(jī)包
- 天米 L-006R刷機(jī)包
- 聯(lián)想 P1c72刷機(jī)包
- 奧樂 AOLE 828X刷機(jī)包
- HTC One MAX 8088 移動(dòng)版刷機(jī)包
熱門刷機(jī)包top10
- 紅米Note聯(lián)通版刷機(jī)包 MIUI6-5.6.23 全局沉浸 完美過渡動(dòng)畫 流暢到爆 完美4x6布局
- 紅米NOTE刷機(jī)包 基于最新13.0 全新特效與主題 急速省電 穩(wěn)定流暢
- 紅米note刷機(jī)包 MIUI官方ROM JHECNBA12.0(V5)原汁原味 完整穩(wěn)定版
- 紅米Note刷機(jī)包 移動(dòng)版 開發(fā)版4.9.23 蝰蛇音效 CRT鎖屏動(dòng)畫 最流暢的ROM
- 紅米note聯(lián)通版刷機(jī)包 MIUI 開發(fā)版 4.9.23 全局MIUI V6風(fēng) 省電穩(wěn)定 史上最流暢
- 紅米Note刷機(jī)包 JB 17.0 破解主題 精簡優(yōu)化 定時(shí)開關(guān)機(jī) 優(yōu)化 流暢 穩(wěn)定
- 紅米Note刷機(jī)包 移動(dòng)版 最新miui6開發(fā)版5.4.17 官網(wǎng)極致純凈無修改 穩(wěn)定才是王道
- 紅米Note刷機(jī)包 通用版 穩(wěn)定版15.0 官方ROOT 性能模式 定時(shí)關(guān)機(jī)
- 紅米Note刷機(jī)包 移動(dòng)版 MIUI 7開發(fā)版5.8.28 殺毒引擎切換 低內(nèi)存清空后臺(tái) 省電穩(wěn)定
- 【簡心ROM】紅米note移動(dòng)版刷機(jī)包 JHECNBE25.0修改 完美ROOT權(quán)限 極限精簡 穩(wěn)定流暢
熱門刷機(jī)教程top10
- 小米 紅米Note(移動(dòng)4G增強(qiáng)) 解鎖教程
- 小米 紅米Note(移動(dòng)4G增強(qiáng)) Fastboot驅(qū)動(dòng)安裝說明
- 小米 紅米Note(移動(dòng)4G增強(qiáng)) Fastboot刷機(jī)教程
- 紅米note線刷刷機(jī)教程及線刷包救磚包下載
- 小米手機(jī)如何隱藏私密文件 小編手把手教你!
- 小米MIUI V7.1穩(wěn)定版固件下載地址搶鮮刷 應(yīng)有盡有!
- 升級(jí)MIUI 7穩(wěn)定版前應(yīng)該注意哪些?
- 系統(tǒng)升級(jí)后紅米Note如何清理緩存 答案在這里揭曉!
- 小米4C黑屏解決技巧教程 操作很簡單!
- 紅米Note系統(tǒng)升級(jí)后清緩存方法介紹 很簡單哦!
熱門ROM資訊top10
熱門手機(jī)刷機(jī)包
- 金立 GN181刷機(jī)包
- 奧克斯 AUX U990T刷機(jī)包
- 酷派 7290刷機(jī)包
- 華為 U9500刷機(jī)包
- 聯(lián)想 S5000-F刷機(jī)包
- 360手機(jī)F4刷機(jī)包
- 愛我 Lovme X50+刷機(jī)包
- 奧樂 AOLE T108+刷機(jī)包
- 三星 Galaxy Note4 (N910W8)刷機(jī)包
- 三星 J100M刷機(jī)包
- 糯米 V1刷機(jī)包
- 魅族 MX4 Pro刷機(jī)包
- 小米 紅米1S(聯(lián)通版)刷機(jī)包
- 海信 E621T刷機(jī)包
- 菲樂普 T9刷機(jī)包
- 華為 暢享5(TIT-TL00/移動(dòng)4G)刷機(jī)包
- 天米 L-006R刷機(jī)包
- 聯(lián)想 P1c72刷機(jī)包
- 奧樂 AOLE 828X刷機(jī)包
- HTC One MAX 8088 移動(dòng)版刷機(jī)包