现在的位置: 首页 > 综合 > 正文

在android中增加公用资源包(类似framework-res.apk)

2018年04月01日 ⁄ 综合 ⁄ 共 879字 ⁄ 字号 评论关闭

假设你的资源包叫my-framework-res.apk

请修改build/core/clear_var.mk,增加一个变量,类似LOCAL_USE_MY_FRAMEWORK_RES:=true,默认为true.

修改你的资源包的build脚本,设置LOCAL_USE_MY_FRAMEWORK_RES为false

请修改你的build/core/package.mk,在LOCAL_SDK_RES_VERSION中的合适位置增加

ifeq ($(LOCAL_USE_MY_FRAMEWORK_RES),true)
my_framework_res_package_export := \
        $(call intermediates-dir-for,APPS,my-framework-res,,COMMON)/package-export.apk
my_framework_res_package_export_deps := \
        $(dir $(my_framework_res_package_export))src/R.stamp
else
my_framework_res_package_export := 
my_framework_res_package_export_deps := 
endif # LOCAL_USE_MY_FRAMEWORK_RES

然后在随后的$(R_file_stamp)中增加my_framework_res_package_export_deps,在PRIVATE_AAPT_INCLUDES中增加my_framework_res_package_export。

然后修改build/target/product/core.mk,在PRODUCT_PACKAGES增加my-framework-res

好,大功告成。

最后修改framework/base/core/java/android/content/res/AssetManager.java,在init()函数中增加

addAssertPath("/path/to/my-framework-res.apk");

抱歉!评论已关闭.