2021-05-12 14:32:11
Ubuntu 16.04 下載和編譯Android 6.0 原始碼
1、下載原始碼
Android 6.0原始碼下載地址: http://www.linuxidc.com/Linux/2016-01/127285.htm
前期準備:
安裝Ubuntu,
安裝 Git (我的是系統自帶裝好) 可以輸入 git --version 如果輸出版本等資訊則已經安裝。沒有安裝的網上很多安裝資料。並且設定git 的global user.name 和 user.email
$ git config --global user.name "Your Name"
$ git config --global user.email "you@example.com"
安裝curl
$ curl sudo apt-get install curl
下載repo指令碼檔案:
<1> 建立儲存指令碼的檔案:
$ mkdir ~/bin
$ PATH=~/bin:$PATH
<2>下載repo工具並保證可執行
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
2、開始下載
<1>建立儲存原始碼的資料夾,並進入
$ mkdir Android
$ cd Android
<2>執行repo init 之前必須指定manifest的URL
$ repo init -u https://android.googlesource.com/platform/manifest
<3>To check out a branch other than "master", specify it with -b. For a list of branches, seeSource Code Tags and Builds.
$ repo init -u https://android.googlesource.com/platform/manifest -b android-6.0.1_r1
<4>下載
$ repo sync
下載的時間比較長,並且很可能中途停止,只要在repo sync 就可以接著下載,我下載了三四天,網速不太好。
3、編譯原始碼
<1>下載完之後,開始編譯原始碼,編譯原始碼之前需要安裝openjdk1.7.x,ubuntu 16.04 直接安裝的openjdk為1.8.x的所以按照以下操作下載
$ sudo add-apt-repository ppa:openjdk-r/ppa
$ sudo apt-get update
$ sudo apt-get install openjdk-7-jdk
如果安裝了多個jdk 通過一下操作選擇
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac
java 選擇 java-7-openjdk.javac 選擇 java-7-Oracle/bin/javac 我選擇的是這個,其他的-7-版本不知道可不可以用,-8-肯定不能用。
除了openjdk之外還需要安裝許多其他工具,參考 http://wiki.cyanogenmod.org/w/Build_for_hammerhead#Install_the_SDK 中 Install the Build Packages 這個章節。
<2> 設定環境
$ source build/envsetup.sh
或者
$ . build/envsetup.sh
<3> 選擇目標
$ lunch aosp_arm-eng
或者直接lunch 選擇aosp_arm-eng的序號
<4>開始編譯
$ make -j8
make後面的引數跟電腦的cpu有關我的使用的是-j8,也可以-j2,-j4等,2的倍數。
第一次編譯需要的時間比較長我用的>4個小時。並且編譯過程還出現過各種錯誤,http://www.linuxidc.com/Linux/2017-05/144073.htm,這個是我編譯過程中出現的問題。
<5> 安裝編譯好的Android映象到模擬器上。都是在Android資料夾下
1. 設定環境變數:
$ export PATH=$PATH:~/Android/out/host/linux-x86/bin
$ export ANDROID_PRODUCT_OUT=~/Android/out/target/product/generic
其中,~/Android/out/host/linux-x86/bin有我們要執行的emulator命令,而~/Android/out/target/product/generic是Android映象存放目錄,下面執行emulator命令時會用到。
2. 執行模擬器。
$ emulator
3.執行結果:
相關文章