Android overlay总结

Android overlay总结:

参考文档:
https://blog.csdn.net/weixin_33834910/article/details/91487504
Android 系统 overlay 机制重点小结

https://blog.csdn.net/qq_32014215/article/details/109743673
用framework-res.apk覆盖编译方式由RRO替换为SRO

https://www.jianshu.com/p/a361bd936fda
Android中的overlay机制

https://blog.csdn.net/wh_19910525/article/details/39254815
Android平台Overlay机制


1,多个overlay的优先级判定
在mk文件中通过定义PRODUCT_PACKAGE_OVERLAYS或DEVICE_PACKAGE_OVERLAYS变量,后面可以加上多个overlay目录路径,
以此来实现多个overlay目录。但是这些目录是有优先级顺序的,
PRODUCT_PACKAGE_OVERLAYS下的目录优先级高于DEVICE_PACKAGE_OVERLAYS下目录的优先级,
写在前面的目录优先级高于写在后面目录的优先级。

PRODUCT_PACKAGE_OVERLAYS := $(xxx)/overlay $(PRODUCT_PACKAGE_OVERLAYS)
DEVICE_PACKAGE_OVERLAYS := $(xxx)/overlay $(DEVICE_PACKAGE_OVERLAYS)

2,PRODUCT_ENFORCE_RRO_TARGETS += framework-res  配置了RRO(Runtime Resource Overlay)
所以,执行 make framework && make framework-minus-apex && make framework-res 命令编译时,
会把RRO资源编译到:
vendor/overlay/framework-res__auto_generated_rro_vendor.apk(DEVICE_PACKAGE_OVERLAYS的RRO)
或
product/overlay/framework-res__auto_generated_rro_product.apk(PRODUCT_PACKAGE_OVERLAYS的RRO)

验证overlay字符资源是否生效命令:adb shell cmd overlay lookup --verbose

例如,把config_multiuserMaximumUsers overlay覆盖为新的值,验证是否生效。
执行如下命令:adb shell cmd overlay lookup --verbose android android:integer/config_multiuserMaximumUsers

或者通过apktool工具反编译看一下字符资源:
./apktool d framework-res.apk
./apktool d framework-res__auto_generated_rro_vendor.apk

PRODUCT_ENFORCE_RRO_TARGETS
PRODUCT_ENFORCE_RRO_EXCLUDED_OVERLAYS
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android overlay是一种在Android应用程序中实现界面定制化的技术。通过使用overlay,开发者可以在不修改原始应用程序代码的情况下,添加、修改或替换应用程序的布局、样式和资源。在Android中,overlay通常是通过创建一个新的AndroidManifest.xml文件来实现的。\[1\] 在创建AndroidManifest.xml文件时,需要指定overlay的优先级、是否静态以及目标包名。优先级决定了overlay的显示顺序,静态表示overlay在运行时不会被修改,目标包名指定了要进行定制化的应用程序。\[1\] 除了创建AndroidManifest.xml文件,还可以参考一些相关的资料来了解更多关于Android overlay的信息。例如,可以参考http://mmmyddd.github.io/wiki/android/overlay.html和https://developer.sonymobile.com/2014/04/22/sony-contributes-runtime-resource-overlay-framework-to-android-code-example/。\[2\] 在编译后生成的apk中,overlay的路径可以根据不同的方案进行调整。一种常见的路径是vendor/overlay/TestOverlay/TestOverlay.apk,可以通过设置LOCAL_MODULE_PATH来指定路径。\[3\] #### 引用[.reference_title] - *1* *3* [Android Overlay机制](https://blog.csdn.net/weixin_44021334/article/details/130421043)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Android overlay简单总结](https://blog.csdn.net/Dylan_Sen/article/details/78878641)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值