使用AAPT打包资源文件
使用以下命令查看android的build系统是如何打包framework-res模块的:
cd ~/android/src make -n --debug framework-res
以下是从输出提取的关键步骤:
1. 第一步,生成资源apk包,由以下命令完成:
out/host/linux-x86/bin/aapt package -z -u -x -M frameworks/base/core/res/AndroidManifest.xml -S frameworks/base/core/res/res -A frameworks/base/core/res/assets -F out/target/product/generic/obj/APPS/framework-res_intermediates/package.apk
2. 第二步,为生成的资源包做签名:
java -jar out/host/linux-x86/framework/signapk.jar build/target/product/security/platform.x509.pem build/target/product/secur ity/platform.pk8 out/target/product/generic/obj/APPS/framework-res_intermediates/package.apk.unsigned out/target/product/gene ric/obj/APPS/framework-res_intermediates/package.apk.signed
3. 第三步,为生成的包做对齐处理:
out/host/linux-x86/bin/zipalign -f 4 out/target/product/generic/obj/APPS/framework-res_intermediates/package.apk.unaligned ou t/target/product/generic/obj/APPS/framework-res_intermediates/package.apk.aligned
如此生成的framework-res.apk包可以被用来替换system.img中的资源包。(在CupCake前的稳定版本中测试可行)
具体步骤:
- 首先用生成的framework-res.apk替换在~/android/src/out/target/product/generic/system/framework中的同名文件。
- 用make snod生成新的system.img,替换sdk目录下的images/system.img
- 用-wipe-date参数启动emulator