欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

單獨(dú)編譯Android 源代碼中的模塊實(shí)現(xiàn)方法

 更新時(shí)間:2016年08月03日 17:17:05   投稿:lqh  
本文主要講解單獨(dú)編譯Android 源代碼中的模塊,這里對Android源碼單獨(dú)編譯模塊,做出了詳細(xì)的步驟,希望能幫助研究Android 源代碼的朋友

      第一次下載好Android源代碼工程后,我們通常是在Android源代碼工程目錄下執(zhí)行make命令,經(jīng)過漫長的等待之后,就可以得到Android系統(tǒng)鏡像system.img了。以后如果我們修改了Android源代碼中的某個(gè)模塊或者在Android源代碼工程新增一個(gè)自己的模塊,是不是還是執(zhí)行make命令呢?答案是否定的,Google為我們準(zhǔn)備了另外的命令來支持編譯單獨(dú)的模塊,以及重新打包system.img的命令。在繼續(xù)學(xué)習(xí)Android源代碼之前,就讓我們先來看看這個(gè)命令吧。

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

      USER-NAME@MACHINE-NAME:~/Android$ .  ./build/envsetup.sh

      注意:這是一個(gè)source命令,執(zhí)行之后,就會(huì)有一些額外的命令可以使用:

 - 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來查看,這里我們只關(guān)注mmm命令,也就是可以用它來編譯指定目錄的所有模塊,通常這個(gè)目錄只包含一個(gè)模塊。 

        二. 使用mmm命令來編譯指定的模塊,例如Email應(yīng)用程序:

        USER-NAME@MACHINE-NAME:~/Android$ mmm packages/apps/Email/   

        編譯完成之后,就可以在out/target/product/generic/system/app目錄下看到Email.apk文件了。Android系統(tǒng)自帶的App都放在這具目錄下。另外,Android系統(tǒng)的一些可執(zhí)行文件,例如C編譯的可執(zhí)行文件,放在out/target/product/generic/system/bin目錄下,動(dòng)態(tài)鏈接庫文件放在out/target/product/generic/system/lib目錄下,out/target/product/generic/system/lib/hw目錄存放的是硬件抽象層(HAL)接口文件,后面的文章里面,我們會(huì)陸續(xù)提及到,敬請關(guān)注。 

       三. 編譯好模塊后,還要重新打包一下system.img文件,這樣我們把system.img運(yùn)行在模擬器上時(shí),就可以看到我們的程序了。  

             USER-NAME@MACHINE-NAME:~/Android$ make snod  

      四. 參照Ubuntu上下載、編譯和安裝Android最新源代碼一文介紹的方法運(yùn)行模擬器:   

              USER-NAME@MACHINE-NAME:~/Android$ emulator

  這樣一切就搞定了。

希望對研究Android 源碼的小伙伴有所幫助!

相關(guān)文章

最新評論