1. 程式人生 > >android Framework層新增資源方式

android Framework層新增資源方式

最近工作中,在移植輸入法去新的分支的時候,發現輸入法在彈出過程會強死,這是因為呼叫framework層的一個layout時查詢不到;於是找到這個資源,在framework層中添加了這個資源,但是發現編譯後輸入法仍然找不到這個資源。通過網路搜尋,找到了原因。在系統的framework/base/core/res/res中新增字串等資源,需要在framework/base/core/res/res/values/symbols.xml中同步新增資源字串,否則編譯會出錯。
比如在strings.xml中新增字串:

    <string name="close_adb_title">Turn off
ADB Debug</string>

那麼就需要在symbols.xml中新增:

    `<java-symbol type="string" name="close_adb_title" />`  

layout也同理。 在framework層中,symbols.xml 和 public.xml的作用是一樣的。到4.2才分成兩個檔案的,public.xml定義的資源進入android.R.java symbols.xml(共有資源),symbols.xml定義的資源進入com.android.internal.R.java(私有資源),並不是嚴格定義。在一個xml檔案裡也可以通過不同的標籤來控制資源是公共的還是私有的。記得在使用的時候,R.還是internal.R.需要分清楚,看你加的資源在哪個包裡