搭建編譯環境:
系統ubuntu10.04.4
sudo apt-get install flex bison gperf build-essential curl zlib1g-dev g++-multilib g++-4.4-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z1-dev wine mingw32
一、源碼下載
參考官方說明http://source.android.com/source/downloading.html
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
$ repo init -u https://android.googlesource.com/platform/manifest 初始化
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1 開始下載4.0.1代碼
$ repo sync
二、全部編譯並運行
$cd WORKING_DIRECTORY
$make
在~/adnroid/out/target/product目錄下生成ramdis.img,system.img,userdata.img三個主要的鏡像文件,
進入目錄,輸入命令:
$emulator -system system.img -data userdata.img -ramdisk ramdisk.img
三、模塊單獨編譯與運行,以Contacts模塊爲例:
$.build/eevsetup.sh 作用:運行這個文件,就會多出幾個命令
$mmm packages/apps/Contacts/ 這個mmm就是多出來的幾個命令之一
編譯完成後生成兩個文件:
out/target/product/generic/data/app/ContactsTests.apk
out/target/product/generic/system/app/Contacts.apk
$make smod 重新生成system.img,再運行模擬器
下面舉個例子說明,假設我要編譯android下的libjpeg模塊,當前目錄爲源碼根目錄,方法如下:
1、source . /build/envsetup.sh
2、mmm external/jpeg/
或者 :
1、source . /build/envsetup.sh
2、cd external/jpeg
3、mm