android源代碼開發環境

在linux環境中,開發android主機環境包括以下需求:

git工具

repo工具

java的jdk

主機編譯工具

在ubuntu主機上通常需要安裝以下的包:

sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl

libncurses5-dev zlib1g-dev

其中安裝sun-java5-jdk所需的源:

deb http://tw.archive.ubuntu.com/ubuntu/  jaunty main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu/ jaunty main restricted universe multiverse

安裝repo:

sudo curl http://android.git.kernel.org/repo > ~/bin/repo

chmod a+x ~/bin/repo

將~/bin/加入環境變量

或者

$ wget http://android.git.kernel.org/repo
$ chmod 777 repo
$ cp repo /bin/

用安裝腳本下載源碼
$ mkdir android_code
$ cd android_code
$ repo init -u git://android.git.kernel.org/platform/manifest.git
$ repo sync

以上命令是下載最新版本,也可以下載其它版本
如我買的手機,在設置 -> 關於手機 -> 固件版本中看到是 1.5 ,所以下載 1.5 版本,方法如下
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b android-1.5r3
$ repo sync
// 此後會長時間下載


編譯

1) 正常編譯
$ cd android_code
$ make
映像編譯成功後會在目錄 android_code/src/out/target/product/generic 下產生一些image 文件: ramdisk.img system.img userdata.img

2) 可能出現的 問題及解決方法

1. make 若提示找不到 -lncurses ,則需要做以下鏈接
ln –s /lib/libncurses.so.5 /lib/libncurses.so

2. make 若提示找不到 run-java-tool ,則需要設置java 的安裝路徑
$ export ANDROID_JAVA_HOME=$JAVA_HOME

3. 若提提示找不到zlib.h, 則運行如下命令安裝zlib 開發包
$ sudo apt-get install zlib1g-dev

4. 下了一個最新版本後顯示說只能使用java-1.5 版本,於是從1.6 版本降回 1.5
$ sudo apt-get install sun-java5-jdk flex
$ sudo update-java-alternatives -s java-1.5.0-sun

5. 如果報錯 “compression requires the missing zlib module” 可能是 python 找不到 zlib
這時需要先安裝 zlib , 然後重編 python, 並取代當前版本 python
$ sudo apt-get install zlib1g-dev
$ python2.6 –version

可看到當前版本 , 下載當前版本 , 重新編譯安裝
$ tar xvzf python-2.6.2.tgz
$ cd python-2.6.2/
$ ./configure –prefix=/usr/local
$ make; make install

3) 編譯sdk
$ make sdk
此時SDK 產生於此目錄下:android_code/out/host/linux-x86/sdk/
此包如同下載的sdk 包,可供eclipse 使用,注意把它移動其它位置使用,否則一編譯其它應用,它就被刪除掉了

4) 編譯不同 Android 硬件平臺對應版本
需要在 make 前先針對設備進行設置,形如:
$ choosecombo 1 1 8 3
使用不同參數,編譯結果存存儲的目錄不同
默認包生成目錄: android_code/out/target/product/qsd8250_surf/system/app/*.apk
以上選項包生成目錄: android_code/out/target/product/generic/system/app/*.apk

4. 運行

1) 運行普通的虛擬器 emulator
emulator
的路徑是:

/home/xieyan/bin/android_code/out/
host/linux-x86/bin/emulator
設置環境變量
export PATH=$PATH:android_src/out/host/linux-x86/bin
$ . build/envsetup.sh
$
partner_setup
$ emulator

2) 指定 img 運行
$ export ANDROID_PRODUCT_OUT=/home/xieyan/bin/android_code/out/target/product/generic
$ emulator -image system.img -data userdata.img -ramdisk ramdisk.img


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