1. 程式人生 > >在android原始碼裡新增的資原始檔

在android原始碼裡新增的資原始檔

1、將資源放入 frameworks/base/core/res/res/ 中的相應目錄,假設要新增的資源是 drawable 型別,檔名為 zgj(字尾可能為xml或者png等等),則將檔案放入 frameworks/base/core/res/res/drawable*/ 下。

2、仿照已有的同類型系統資源修改 framework/base/core/res/res/values/public.xml,public.xml中有兩種型別的資源描述,一種是系統私有的資源(不對app公開),另一種是公共資源(可以在app中訪問)。

如果要新增的資源是私有的,則加上 (不需要id),如果是公共的則先找到最後一個type為 drawable 的 public 項,4.1.2系統中最後一項為,然後新增一句 ,即id為最後一個的id+1(為了避免 id 衝突)

3、在 frameworks/base/core/res/ 中執行mm,編譯後生成framework-res.apk 並會更新com.android.internal.R,該 R 所對應的檔案為 /out/target/common/R/com/android/internal/R.java,可以在該檔案中檢視自己的資源是否已經加進去了。(如果mm出錯可以嘗試先執行一下“touch 資原始檔”命令)

4、在原始碼目錄下執行 make update-api 以更新 frameworks/base/api/current.txt 檔案。

5、完成之後在原始碼根目錄中 make 即可。

另外,如果要在系統中新增一個新的id,比如為myid,則上述第一步改為在 frameworks/base/core/res/res/values/ids.xml 中增加一列,之後的步驟都一樣。

注:在4.2原始碼中,將系統私有資源分離成了單獨的檔案symbols.xml,公共資源仍然在public.xml中。