android原始碼framework下新增新資源的方法

very_on發表於2018-06-07

編譯帶有資源的jar包,需要更改frameworks層,方法如下:  

一.增加png型別的圖片資源  

1.將appupdate模組所有用到的png格式圖片拷貝到framework/base/core/res/res/drawable-mdpi裡。但是要確保沒有與原生的沒有重名檔案。  

2.在framework/base/core/res/res/values/public.xml檔案裡增加對這些圖片的宣告。(例: ,此id要保證唯一,以drawable型別的最後一個id為基數增加)  

3.framework/base/core/res/res/ 下mm編譯  

4. \Honeycomb下 make update-api  

二.增加string資源  

1.將appupdate模組定義的string.xml裡面的所以string拷貝到framework/base/core/res/res/values/string.xml裡。但是確保沒有重名的。  

2.在framework/base/core/res/res/values/public.xml檔案裡增加對這些string的宣告。(例:此id要保證唯一,以string型別的最後一個id為基數增加)  

3.framework/base/core/res/res/ 下mm編譯  

4. \Honeycomb下 make update-api  

三.增加layout資源  

1.將appupdate模組的layout檔案裡定義的5個xml檔案拷貝到在framework/base/core/res/res/layout裡。但是要確保沒有重名檔案被覆蓋。  

2.在framework/base/core/res/res/values/public.xml檔案裡增加對這些layout的宣告。(例:此id要保證唯一,以layout型別的最後一個id為基數增加)  

3.framework/base/core/res/res/ 下mm編譯  

4. \Honeycomb下 make update-api  

說明:若layout中包含xml,直接把xml拷貝到framework相應目錄下。

例如(1)button的selector。將appupdate模組的drawable/common_btn_selector.xml檔案拷貝到framework/base/core/res/res/drawable裡,確保沒有重名檔案。  (2)將appupdate模組的anim/loading.xml檔案拷貝到framework/base/core/res/res/anim裡,確保沒有重名檔案。  

四.增加style資源  

1.將appupdate模組的style檔案裡定義的所有style拷貝到framework/base/core/res/res/values/style.xml裡。確保沒有覆蓋原生的style.  

2.在framework/base/core/res/res/values/public.xml檔案裡增加對這些style的宣告。  3.framework/base/core/res/res/ 下mm編譯  

4. \Honeycomb下 make update-api  

五.增加color資源  

1.將appupdate模組的style檔案裡定義的所有style拷貝到framework/base/core/res/res/values/color.xml裡。確保沒有覆蓋原生的color.  

2.在framework/base/core/res/res/values/public.xml檔案裡增加對這些color的宣告。  3.framework/base/core/res/res/ 下mm編譯  

4. \Honeycomb下 make update-api  

六.增加資源id  

1.在framework/base/core/res/res/values/ids.xml裡定義你jar中所用的id(R.id)*)。確保沒有覆蓋原生的.  

2.在framework/base/core/res/res/values/public.xml檔案裡增加對這些id的宣告。  3.framework/base/core/res/res/ 下mm編譯  

4. \Honeycomb下 make update-api  

最後,eclipse原始碼中要修改以下:  

1. 把R.*.*全部替換成android.R.*.*例如R.layout.appupg_tip_dialog 要更換為android.R.layout.appupg_tip_dialog  

2. 資原始檔中對資源的呼叫需要新增android:如<textview p="" <="" 要改成  

3. Import *.*.*.R刪除。  linux下jar包路徑  Honeycomb\out\target\common\obj\JAVA_LIBRARIES\hisenseAppUpgrade_sdk_intermediates  

另,要想在eclipse環境下編譯修改後的應用自升級jar。  

1, 從編譯的原始碼中拷貝framework.jar及framework-res.apk兩個檔案,解壓縮後。從framework.jar中拷貝出android資料夾,從framework-res.apk拷貝出res資料夾,然後新增到android.jar包中。替換自升級工程的android.jar。然後把res資料夾下出現X的檔案刪除即可。  應用自升級修改方法  資源修改要通過frameworks層,修改後要在原始碼中編譯。

相關文章