android源碼編譯,模塊編譯

本文內容大部分來自   http://www.cnblogs.com/chu888chu888/archive/2010/11/24/1886385.html


Android 源碼編譯按照官方網站所說去做即可。

安裝java需要

The line you have to add to your /etc/apt/sources.list is:

deb http://us.archive.ubuntu.com/ubuntu/ hardy multivers

http://source.android.com/source

編譯模塊

android中的一個應用程序可以單獨編譯,編譯後要重新生成system.img

在源碼目錄下執行1 $ . build/envsetup.sh (.後面有空格)

- 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.


我們可以使用mmm來編譯指定目錄的模塊,如編譯聯繫人:1 $ mmm packages/apps/Contacts/

編完之後生成兩個文件:

out/target/product/generic/data/app/ContactsTests.apk

out/target/product/generic/system/app/Contacts.apk

可以使用

 $ make snod

重新生成system.img,再運行模擬器


$make sdk

注意,這裏需要的javadoc版本爲1.5,所以你需要在步驟1中同時安裝sun-java5-jdk。這個現在新的source應該不需要了。

$ make sdk

$ source build/envsetup.sh

//需要,不然會有 couldn't locate source file的一些錯誤。

$ lunch sdk-eng
$ make sdk


編譯很慢。編譯後生成的SDK存放在out/host/linux-x86/sdk/,此目錄下有android-sdk_eng.xxx_linux- x86.zip和android-sdk_eng.xxx_linux-x86目錄。android-sdk_eng.xxx_linux-x86就是 SDK目錄

實際上,當用mmm命令編譯模塊時,一樣會把SDK的輸出文件清除,因此,最好把android-sdk_eng.xxx_linux-x86移出來

此後的應用開發,就在該SDK上進行,所以把7)對於~/.bashrc的修改註釋掉,增加如下一行:

 1 export PATH=${PATH}:~/android/out/host/linux-x86/sdk/android-sdk_eng.xxx_linux-x86/tools


關於環境變量、android工具的選擇

目前的android工具有:

A、我們從網上下載的SDK,如果你下載過的話( tools下有許多android工具,lib/images下有img映像)

B、我們用make sdk編譯出來的SDK( tools下也有許多android工具,lib/images下有img映像)

C、我們用make編譯出來的out目錄( tools下也有許多android工具,lib/images下有img映像)

那麼我們應該用那些工具和img呢?

首先,我們一般不會用A選項的工具和img,因爲一般來說它比較舊,也源碼不同步。其次,也不會用C選項的工具和img,因爲這些工具和img沒有經過 SDK的歸類處理,會有工具和配置找不到的情況;事實上,make sdk產生的很多工具和img,在make編譯出來out目錄的時候,已經編譯產生了,make sdk只是做了copy而已。

e)安裝、配置ADT

略過;

f)創建Android Virtual Device

編譯出來的SDK是沒有AVD(Android Virtual Device)的,我們可以通過android工具查看:1$ android list

創建AVD:1 $ android create avd -t 1 -n myavd

可以android –help來查看上面命令選項的用法。創建中有一些選項,默認就行了

再執行android list,可以看到AVD存放的位置

以後每次運行emulator都要加-avd myavd或@myavd選項:1 $ emulator -avd myavd




編譯kernel,請參考 http://source.android.com/source/building-kernels.html




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章