在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