overlay機制

        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由於在編譯時已經決定了的,所以,達不到這種效果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章