AAPT是Android Asset Packaging Tool的縮寫,它存放在SDK的tools目錄下徙邻,AAPT的功能相對(duì)比較強(qiáng)大排嫌,可以通過它查看、創(chuàng)建缰犁、更新壓縮文件(如.zip文件淳地,.jar文件,.apk文件)帅容,它可以把資源編譯為二進(jìn)制文件颇象,同時(shí)生成resources.arsc,AAPT這個(gè)工具在APK打包過程中起到了非常重要的作用并徘,在打包的過程中遣钳,用AAPT對(duì)APK中使用到的資源進(jìn)行打包,這里不對(duì)AAPT這個(gè)工具做過多的討論麦乞。
我們來看一下AAPT打包的流程:
AAPT這個(gè)工具在打包的過程中主要做了以下工作:
1.把“assets”和“res/raw”目錄下的所有資源進(jìn)行打包(會(huì)根據(jù)不同的文件后綴選擇壓縮或不壓縮)蕴茴,“res/”目錄下的其他資源進(jìn)行編譯或者其他處理(具體的處理方式視文件后綴的不同而不同,例如:“.xml”會(huì)編譯成二進(jìn)制文件姐直,“.png”文件會(huì)進(jìn)行優(yōu)化等等)后才進(jìn)行打包倦淀。
2.會(huì)對(duì)除assets資源之外的所有資源賦予一個(gè)資源ID常量,并且會(huì)生成一個(gè)資源索引表resources.arsc声畏;
3.編譯AndroidManifest.xml成二進(jìn)制的XML文件撞叽。
4.把上面3個(gè)步驟中生成結(jié)果保存在一個(gè)“.ap_”文件,并把各個(gè)資源ID常量定義在一個(gè)R.java中插龄;
.ap_文件會(huì)在生成APK時(shí)放入APK包中愿棋,.ap_這個(gè)文件本身是一個(gè)zip包,他里面包含了resources.arsc辫狼、AndroidManifest.xml初斑、assets以及所有的資源文件。