我的DIY Android之旅--單獨改造你的Android模塊

大家編譯過Android源碼的童鞋肯定知道,編譯整個Android源碼需要非常長的時間,以後如果我們修改了Android源代碼中的某個模塊或者在Android源代碼工程新增一個自己的模塊,是不是還是執行make命令呢?答案是否定的,Google爲我們準備了另外的命令來支持編譯單獨的模塊,以及重新打包system.img的命令。在繼續學習Android源代碼之前,就讓我們先來看看這個命令吧。

   首先, 一. 首先在Android源代碼目錄下的build目錄下,有個腳本文件envsetup.sh,執行這個腳本文件後,就可以獲得一些有用的工具:

按照老羅的android之旅中的介紹,執行 ./build/envsetup.sh,會提示mmm命令找不到!

在網上找了一些資料,立馬搞定!

 執行source build/envsetup.sh    (前面要加上source,否則找不到mmm等命令)(不同的shell窗口都得運行該命令後才能使用mmm等命令)

  注意,這是一個source命令,執行之後,就會有一些額外的命令可以使用:

      - croot: Changes directory to the top of the tree.

      - m: Makes from the top of the tree.
      - mm: Builds all of the modules in the current directory.
      - mmm: Builds all of the modules in the supplied directories.
      - cgrep: Greps on all local C/C++ files.
      - jgrep: Greps on all local Java files.
      - resgrep: Greps on all local res/*.xml files.
      - godir: Go to the directory containing a file.
 
      這些命令的具體用法,可以在命令的後面加-help來查看,這裏我們只關注mmm命令,也就是可以用它來編譯指定目錄的所有模塊,通常這個目錄只包含一個模塊。
 
      二. 使用mmm命令來編譯指定的模塊,例如mms應用程序:
    現在我們就可以單獨編譯Android的模塊,現在有必要單獨改造一下Android的內置應用了,那我就選擇Android裏面最常用的短信應用吧,修改短信應用的一些屬性,然後單獨編譯短信模塊,最後在模擬器中查看改造的結果!
     由於只是簡單的驗證一下,我就只是簡單的修改了一下短信的應用圖標和短信的背景顏色,然後執行 mmm packages/apps/Mms/
     經過短暫的編譯,編譯成功了!
      編譯完成之後,就可以在out/target/product/generic/system/app目錄下看到mms.apk文件了。Android系統自帶的App都放在這具目錄下。另外,Android系統的一些可執行文件,例如C編譯的可執行文件,放在out/target/product/generic/system/bin目錄下,動態鏈接庫文件放在out/target/product/generic/system/lib目錄下,out/target/product/generic/system/lib/hw目錄存放的是硬件抽象層(HAL)接口文件等等...
 
 
      三. 編譯好模塊後,還要重新打包一下system.img文件,這樣我們把system.img運行在模擬器上時,就可以看到我們的程序了。
      USER-NAME@MACHINE-NAME:~/Android$ make snod
      USER-NAME@MACHINE-NAME:~/Android$ emulator -kernel /home/hu/android2.3/out/target/product/generic/system.img
     
      證明單獨編譯是成功的!
 
   我們可以單獨的改造Android的大部分應用屬性,打造出一個屬於自己的Android鏡像文件,這樣就大致算是一個屬於自己的Android ROM嘛,當然,要做一個屬於自己的Android ROM,你需要做的還有很多,你可以不用考慮適配部分,因爲CM團隊大致可以做出很多硬件上的適配,但你必須非常清楚Android的整體框架和代碼,那樣你才能做出很不一樣的Android系統....

 

發佈了49 篇原創文章 · 獲贊 5 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章