首頁(yè) 收藏 QQ群
 網(wǎng)站導(dǎo)航

ZNDS智能電視網(wǎng) 推薦當(dāng)貝市場(chǎng)

TV應(yīng)用下載 / 資源分享區(qū)

軟件下載 | 游戲 | 討論 | 電視計(jì)算器

綜合交流 / 評(píng)測(cè) / 活動(dòng)區(qū)

交流區(qū) | 測(cè)硬件 | 網(wǎng)站活動(dòng) | Z幣中心

新手入門 / 進(jìn)階 / 社區(qū)互助

新手 | 你問我答 | 免費(fèi)刷機(jī)救磚 | ROM固件

查看: 10864|回復(fù): 0
上一主題 下一主題
[教程]

如何單獨(dú)編譯Android源代碼中的模塊

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2013-8-28 16:27 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
第一次下載好Android源代碼工程后,我們通常是在Android源代碼工程目錄下執(zhí)行make命令,經(jīng)過(guò)漫長(zhǎng)的等待之后,就可以得到Android系統(tǒng)鏡像system.img了。以后如果我們修改了Android源代碼中的某個(gè)模塊或者在Android源代碼工程新增一個(gè)自己的模塊,是不是還是執(zhí)行make命令呢?答案是否定的,Google為我們準(zhǔn)備了另外的命令來(lái)支持編譯單獨(dú)的模塊,以及重新打包system.img的命令。在繼續(xù)學(xué)習(xí)Android源代碼之前,就讓我們先來(lái)看看這個(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來(lái)查看,這里我們只關(guān)注mmm命令,也就是可以用它來(lái)編譯指定目錄的所有模塊,通常這個(gè)目錄只包含一個(gè)模塊。   
      二. 使用mmm命令來(lái)編譯指定的模塊,例如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)鏈接庫(kù)文件放在out/target/product/generic/system/lib目錄下,out/target/product/generic/system/lib/hw目錄存放的是硬件抽象層(HAL)接口文件,后面的文章里面,我們會(huì)陸續(xù)提及到,敬請(qǐng)關(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   
      這樣一切就搞定了

上一篇:主流UI設(shè)計(jì)
下一篇:Android開發(fā)筆記第四篇(應(yīng)用解析)

本版積分規(guī)則

Archiver|新帖|標(biāo)簽|軟件|Sitemap|ZNDS智能電視網(wǎng) ( 蘇ICP備2023012627號(hào) )

網(wǎng)絡(luò)信息服務(wù)信用承諾書 | 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證:蘇B2-20221768 丨 蘇公網(wǎng)安備 32011402011373號(hào)

GMT+8, 2024-12-28 15:55 , Processed in 0.050686 second(s), 13 queries , Redis On.

Powered by Discuz!

監(jiān)督舉報(bào):report#znds.com (請(qǐng)將#替換為@)

© 2007-2024 ZNDS.Com

快速回復(fù) 返回頂部 返回列表