overlay机制

Overlay是一种在Android系统中实现产品定制的技术。它通过覆盖原始配置来实现不同产品间的差异化,如扩展键盘的存在与否。首先,基础配置在frameworks/base/core/res/res/values/config.xml中设定,默认值如config_hasExtKeyBoard设为false。接着,在symbols.xml和android.xml中添加相应条目。当需要对特定产品定制时,只需在/device/<company>/<product name>/product_spec/xxx/overlay目录下修改对应config.xml文件中的值。要确保overlay生效,需保证基础配置中存在相应的条目。与cust定制的区别在于,cust仓允许同一产品根据不同市场定制,而overlay则在编译时确定,无法后期改变。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        overlay是为了让不同产品有不同定制的一种技术,例如,有的产品中有扩展键盘,有的没有扩展键盘,

就可以使用overlay。

        所谓overlay(覆盖),那么,首先应该有一个原始的配置,例如,以上面的需求为例,先在

frameworks/base/core/res/res/values/目录下编辑config.xml文件,在其中添加一项,config_hasExtKeyBoard,

默认值为false,另外,需在symbols.xml中添加一项,另外,在android.xml中添加一项(注意,其中的id是生成的,详见

《向config.xml添加一项》中的描述。

        一般在/device/<product_name>/xxx/product_spec/的下每个产品都有一个目录,如果要对产品做定制,

只需在对应产品的目录中修改对应的config.xml中的内容即可,例如,针对上面的需求,到 /device/<company>/<product name>/product_spec/xxx/overlay/frameworks/base/core/res/res/values/config.xml中把对应项的值置为fal

然后,到/device/<company>/<product name>/xxx/overlay/frameworks/base/core/res/res/values/config.xml中把对应项的值置为true即可。

        注意,要保证,在对应frameworks/base/core/res/res/values/config.xml中也有对应项的定义才可,否则overlay不生效。

  

        另外,说一下cust定制与overlay的区别

        cust仓也能根据产品进行定制,那么,跟overlay有什么区别呢?

cust仓除了根据不同产品做定制,最主要的,也可以是同一个产品做不同的cust仓,例如,发往敏感国家时,

某个参数的值为true,而发往另一些国家时,参数的值为false等,那么,产品的软件版本可以做一个,在打包时,

使用不用的cust仓,效果自然不同。而overlay由于在编译时已经决定了的,所以,达不到这种效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值