overlay机制

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

就可以使用overlay。

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

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

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

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

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

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

然后,到/device///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由于在编译时已经决定了的,所以,达不到这种效果。

你可能感兴趣的:(程序设计)