1. Prepare
先裝些基本的工具與設定
1.1 apt-get
若需要設定proxy, 在/etc/apt/apt.conf.d/01xxxxx裡面加上proxy資訊
APT { ...... } Acquire::Http::Proxy "http://your_http_proxy:port"; #Acquire::Ftp::Proxy "ftp://your_ftp_proxy:port";更新apt-get資料庫
sudo apt-get update接著作個方便的alias
alias apt-install 'sudo apt-get -y install'
1.2 git
安裝git
apt-install git-core
p.s. 若無法直接連線, 需要透過proxy去避開firewall的話
先用apt-get裝"connect-proxy" (一般的狀況下, 不需要用到這個)
apt-install connect-proxy接著寫個給git用的proxy script
my-git-proxy
#!/bin/sh # You can get proxy from http://spys.ru/free-proxy-list/TW/ PROXY=IP:Port connect-proxy -H http://$PROXY $@設定git透過proxy連線
git config --global core.gitproxy ~/my-git-proxy
2. Required Packages
AOSP上面提到的一些必要安裝sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl valgrind sun-java6-jdk zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev各個套件的功用, 可參考"ubuntu 9.04安裝Android注意事項"與"Build Android Platform"
其中裝JDK1.6時, 可能需要新增apt-get的source list
/etc/apt/sources.list
deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse接著再更新一下apt-get
sudo apt-get update apt-install sun-java6-jdkJDK安裝完後, 將相關的資訊export到環境變數裡
export JAVA_HOME=/usr/lib/jvm/java-6-sun export PATH=/usr/lib/jvm/java-6-sun/bin:$PATH export ANDROID_JAVA_HOME=$JAVA_HOME
[註] Java版本相關指令
查版本:java -version
列出已安裝版本:sudo update-java-alternatives -l
切換Java版本:sudo update-java-alternatives -s java-x-sun
3. Download Android Source Code
Download source code 只要照AOSP上面教的即可
curl http://android.git.kernel.org/repo >~/repo chmod a+x ~/bin/repo mkdir mydroid cd mydroid ~/repo init -u git://android.git.kernel.org/platform/manifest.git ~/repo sync
4. Build Android
build code可以直接下make
make -j4若是之後可能開發自己的product的話, 可以準備一個script
#!/bin/bash function show_result() { echo "" echo "#######################################################" echo " $1" echo "#######################################################" echo "" } CWD=$PWD ANDROID_PATH=$CWD/my_android export TARGET_PRODUCT=generic export TARGET_BUILD_TYPE=release export TARGET_BUILD_VARIANT=eng export TARGET_SIMULATOR=false cd ${ANDROID_PATH} if ( make -j4 ); then show_result "Build Android Successfully!!" exit 0 else show_result "Build Android Failure!!" exit 1 fi換成Ubuntu64順利很多, 只碰到一個error
make: *** [out/target/product/generic/obj/ SHARED_LIBRARIES/libwebcore_intermediates/LINKED/libwebcore.so] Error 1拜了一下Google大神, 多數的說法都是開給VMware的記憶體不夠所造成, 照著網路上的作法先試著將swap加大後,
dd if=/dev/zero of=/swapfile bs=1024 count=1048576 mkswap /swapfile swapon /swapfile再加上相當長的build code時間, 總算成功得到android image了
參考資料:
[1] Android Open Source Project
[2] Build Android Platform
[3] Android获取源代码、编译、命令