Android 開發環境之安裝
OS 之選擇
安裝 64-bit Debian or Ubuntu. !!注意 一定要64-bit OS, 32-bit 在編譯時會有問題.
我選擇的OS 是64-bit Debian 7.
JDK 7
依據Android Open Source Project (AOSP) 之建議, 先安裝JDK 7,
由於Sun 被Oracle併掉後, 對於Open Source 極度不友善, 所以自由軟體社群紛紛投靠OpenJDK的懷抱. 因此此考這裡來安裝OpenJDK. 在Debian環境下, 真是簡單到爆
# apt-get install openjdk-7-jre
或許你的環境之前已經安裝過JDK 6 或其他版本, 可以使用下列指令選擇系統使用的JDK版本. 請選擇JDK7喔
# update-alternatives --config java
# update-alternatives --config javac
搞定!
Debian 7(wheezy) 及Ubuntu 12.04 下必要之套件
# apt-get install git gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
若有些i386的套件無法安裝, 可能需要先新增i386 的architecture. 如下:
# dpkg --add-architecture i386
# apt-get update
有些版本在build kernel 時需要在安裝下列套件
# apt-get install u-boot-tools
USB 存取權限
在一些Linux 中Distribution 中, 一般的使用者並沒有USB 裝置存取的權限, 因此我們可以透過udev 的設定檔來為我們指定權限.
先切換到root, 然後在 /etc/udev/rules.d/中新增一個udev規則設定檔. 我們將此檔取名叫51-android.rules 好了.
!! 注意!! udev 必須是在linux kernel 2.6以後才有支援. 詳細的udev原理及規則設定, 請參考後面的參考資料.
檔案: 51-android.rules 內容如下
# adb protocol on passion (for your ARM board)
SUBSYSTEM=="usb", ATTR{idVendor}=="xxxx", ATTR{idProduct}=="yyyy", MODE="0600", OWNER=""
其中”xxxx”, “yyyy” 分別填入你的ARM板子上USB port(for adb) 的vendor id 及product id. 而username 則填入你的account.
設定cache
設定cache 能夠加速編譯速度. 這個選項不是必要性的. 不設定也可以.
在你的.bashrc 檔或環境設定檔中加入如下設定:
export USE_CCACHE=1
export CCACHE_DIR=
其中第二行為指定你的cache目錄, 若沒設定, 則內定為~/.ccache 目錄.
官方建議的cache size 為50G ~ 100G.
當你下載了Android source code 後, 請執行下列指令了設定cache 大小
prebuilts/misc/linux-x86/ccache/ccache -M 50G
設定輸出檔的目錄.
Android 內定將編譯好的檔案放到out/ 目錄下, 若你想放置於不同的目錄, 你可以使用下列方式來指定目錄:
export OUT_DIR_COMMON_BASE=
安裝Repo
Repo 是開發Android系統中一個非常有用的管理和取得source code工具, 他是一個很大的script, 並且必須要配合git來使用. 因此我們先安裝git
apt-get install git
接下來將Repo 裝於~/bin 目錄下, 並設定PATH 以方便隨時可以使用Repo.
mkdir -p ~/bin
PATH=PATH=~/bin:$PATH
下載Repo
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo