Android源碼分析(二)-----如何編譯修改后的framework資源文件


一 : 編譯framework資源文件

  1. 如果修改android framework資源文件,需要先編譯資源文件,然后再編譯framework才可以正常引用,
    進入項目目錄 cd work/source/frameworks/base/core/res/ 執行mm 編譯 framework-res.apk(原生或高通)
    編譯完后com.android.internal.R中會生成資源的引用。
    image.png

  2. 在目錄 work/source/frameworks/base/ 下執行mm 編譯 framework.jar (原生或高通)
    image.png

  3. 如果 frameworks/base/services 下有修改,則也要編譯,在目錄 work/source/frameworks/base/services/java/ 執行mm 編譯services.jar
    image.png

二 : 驗證修改后的效果

adb root
adb remount
adb push framework-res.apk /system/framework/
adb push framework.jar /system/framework/
adb push secondary_framework.jar /system/framework/ (如果存在secondary_framework.jar,需要push)
adb push services.jar /system/framework/ (如果service有修改,需要push)

adb reboot 重啟設備。
adb push可執行文件制作教程,有興趣的朋友可以參考adb push可執行文件制作教程

三 : 總結

在開發過程中,尤其是framework相關開發時,有時候需要重新編譯資源文件.編譯順序和注意事項如下(均在源碼根目錄):

  1. 資源文件位置:frameworks/base/core/res,編譯后生成的文件:framework-res.apk 另外com.android.internal.R會更新這個R.java所在目錄/out/target/common/R/com/android/internal.
  2. 編譯資源后,必須重新編譯framework.jar.
  3. 如果在frameworks/base/core/res執行mm時並不重新編譯,請使用toutch filename(文件名)或者mm -B
  4. 資源文件要小寫.
  5. 如果沒有必要,盡可能不要編譯資源文件,可以用其他方式使用資源,可用adb push到指定的文件夾進行引用。

喜歡源碼分析系列可參考其他文章:
Android源碼分析(一)-----如何快速掌握Android編譯文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM