1.安裝openjdk-7-jdk
$? sudo apt-getinstall openjdk-7-jdk
安裝好之后修改 /etc/profile 中的環(huán)境變量,將openjdk加入到JAVA_HOME中
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
直接把Open Jdk 附在了后面
export CLASSPATH=.
export? JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
export PATH=$JAVA_HOME/bin:$PATH
然后使修改的配置文件立即生效:
$? .? /etc/profile
查看java 這時使用的jdk 就是Open Jdk

接下來安裝必備的工具軟件
$ sudo apt-getinstall 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-dri:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 dpkg-dev
注意,上面使官方的需要安裝的包,但是在實際中,我安裝的時候報錯了,
ERROR:
unity-control-center : 依賴: libcheese-gtk23 (>=3.4.0) 但是它將不會被安裝
? ? ? ? ? ? ? ? ? ? ? 依賴: libcheese7 (>=3.0.1) 但是它將不會被安裝
這里的報錯是因為是由libgl1-mesa-glx:i386 報引起的,需要替換掉,更改為:
$ sudo apt-getinstall libgl1-mesa-glx-lts-quantal:i386
$ sudo apt-get install bison
安裝之后可能會報錯、/bin/bash: prebuilts/misc/linux-x86/bison/bison: No such file or directory 。原因可能是某些其他安裝包沒有安裝
$ sudo apt-get install? g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev
接下來配置Cache,使用下面兩條命令
$ sudo apt-get install ccache?
$ source? ~/.bashrc
然后就是下載repo :
首先創(chuàng)建repo 目錄
$ mkdir ~/bin?
$ PATH=~/bin:$PATH
然后就是下載repo,google官方被墻了,這里用的是清華大學鏡像的:
$ git clone https://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/
然后將git-repo 目錄中的repo 文件拷貝到 bin目錄
$ cp? git-repo/repo? ~/bin/?
接下來打開bin目錄下的repo 文件,修改其中的? REPO_URL 參數(shù),修改為:
REPO_URL ='https://aosp.tuna.tsinghua.edu.cn/android/git-repo'
接下來就需要初始化repo:
先創(chuàng)建目錄aosp,就是等會要存放android源碼的目錄
$ mkdir ~/aosp?
進入到aosp目錄中
$ cd ~/aosp
初始化repo,最新的android 都可以進行下載,以下三條命令任意執(zhí)行一條就可以了,會下載不同版本的android源碼,我采用的是android-5.1.1
$ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-5.1.1_r4
$ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-6.0.1_r22
$ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-n-preview-1
$ repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-9.0.0_r8
在初始化的時候會要求輸入名字和郵箱,正常輸入就可以了。
最耗時間的步驟來了,下載android源碼
$ repo sync?
我在同步的過程中有好幾次出現(xiàn)Error,不用管,加上參數(shù) -f 繼續(xù)同步
$ repo sync -f
這個過程是很漫長的,我的小水管用了一天多才同步完成。
下載完成之后就是編譯了,我的計算機是雙核4線程,編譯的還比較快,用了差不多5個小時編譯完成:
1) 設置cache
$ cd aosp?
$ prebuilts/misc/linux-x86/ccache/ccache -M 50G
2) 初始化編譯環(huán)境
$ . build/envsetup.sh
3)選擇編譯目標包
????? 有很多中,可以用lunch命令查看,我選擇的是最常用的arm
$ lunch aosp_arm-eng?
4)編譯
可以在 make 后設置參數(shù),加快編譯速度,我用的是
$ make -j4
表示4個線程進行編譯,因為我的計算機是雙核4線程,如果機器配置更好,可以開更多的線程,減少編譯時間
make 失敗或停止后,可以使用make -k 繼續(xù)編譯,不過我是一次就編譯成功了。
編譯成功之后

會在aosp目錄下編譯產生out目錄
然后就可以運行編譯產生的模擬器了:
$ emulator &

運行的結果就是這樣:

下次如果執(zhí)行emulator 命令提示command not found,則需要進入aosp目錄執(zhí)行.?build/envsetup.sh
和 lunch 命令,lunch命令會將 prebuilts/android-emulator/linux-x86_64/
加入到PATH環(huán)境變量中。