- 環(huán)境搭建
- 下載代碼
- 編譯代碼
1. 環(huán)境搭建
- 使用Ubuntu14.04
- 下載openjdk8
- 2.1 添加PPA
sudo add-apt-repository ppa:openjdk-r/ppa
- 2.2 安裝openjdk8
sudo apt-get update
sudo apt-get install openjdk-8-jdk
- 2.3 查看當(dāng)前所有的javac和java版本并且選擇java8
sudo update-alternatives --config javac
sudo update-alternativers --config java
- 安裝編譯時(shí)所會(huì)用到的工具
sudo apt-get install git gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc
2. 下載代碼
- 下載repo
repo是google為了管理android源代碼而開(kāi)發(fā)的工具,本身是對(duì)git的一個(gè)包裝。- 1.1 在主目錄中創(chuàng)建bin目錄并且配置到環(huán)境變量中
mkdir ~/bin
PATH=/bin:$PATH
- 1.2 下載repo并且使其可執(zhí)行
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
- 下載代碼
- 2.1 初始化repo
repo init -u https://android.googlesource.com/platform/manifest -b android-8.1.0_r40
我下載的是android-8.1.0_r40這個(gè)分支的代碼
- 2.2 同步代碼
repo sync -j4 --no-tags
-j4:開(kāi)啟4個(gè)線程
--no-tags:不下載版本的tag,在git中每個(gè)版本都會(huì)有對(duì)應(yīng)的tag
根據(jù)tag可以找到對(duì)應(yīng)的版本
- 下載代碼時(shí)遇到的問(wèn)題
- 問(wèn)題一
curl: (22) The requested URL returned error: 404 Not Found
Server does not provide clone.bundle; ignoring.
不用理會(huì)便可。repo想下載一個(gè)預(yù)先打包好的bundle文件,可以提高下載效率,但是服務(wù)器沒(méi)有提供,所以會(huì)出現(xiàn)這個(gè)問(wèn)題。但是我們繼續(xù)下載就可以了 - 問(wèn)題二
當(dāng)下載中斷時(shí), 再次執(zhí)行repo sync -j4 繼續(xù)下載便可
- 問(wèn)題一
3. 編譯代碼
如果前面的環(huán)境搭配好,編譯就會(huì)非常簡(jiǎn)單
- source build/envsetup.sh
- lunch
- 在lunch之后選擇1(代表模擬器)
- make -j4
時(shí)間等待較長(zhǎng),編譯完成之后在out/target/product/產(chǎn)品名/
下都是編譯產(chǎn)物