Android 開發環境之安裝

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    

參考資料

  1. Udev wiki
  2. 理解和認識udev
  3. Using udevadm to gather information about specific device
  4. Writing udev rules
  5. Initializing a Build Environment
This entry was posted in Android and tagged , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *