android_overlay机制
文章目录
android overlay机制,主要是用来不修改代码从而实现资源替换,主题定制等需求。可定制资源一般为下面几类:
- 系统设置(字符串,功能开关等)
- 本地化资源(字符串等)
- UI元素(color, drawable, layout, style, theme, animation)
- raw资源(audio, video, xml))
添加overlay
-
device目录下面创建overlay目录,里面的目录结构要和android代码树内相同
-
修改产品配置makefile(device/vendor-name/device-name/product-name.mk),添加
1 2 3 4 5 6
PRODUCT_PACKAGE_OVERLAYS := device/vendor-name/device-name/product-name/overlay 或 DEVICE_PACKAGE_OVERLAYS := device/vendor-name/device-name/product-name/overlay 优先级: PRODUCT_PACKAGE_OVERLAYS > DEVICE_PACKAGE_OVERLAYS
-
overlay目录内的xml可以只包含要改动的资源,如果要添加新的资源,需要确保给aapt传入auto-add-overlay参数,一般加在Android.mk里面。
LOCAL_AAPT_FLAGS := –auto-add-overlay
-
检查资源是否替换成功,可以通过aapt dump资源来查看
1
aapt l -a Home.apk
-
如果有多个定义,第一个优先,后面的无效,类似init.rc
文章作者 carter2005
上次更新 2017-09-21