Ubuntu14.04 Android 源碼編譯相關

參考:
http://www.lxweimin.com/p/367f0886e62b
https://source.android.com/source/initializing
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/

1、環境相關
首先保證電腦配置要夠,cpu最好是4核以上的,因為編譯的時候很耗費cpu,如果是4核雙線程的,編譯的時候可以起16個線程,make -j16,大大加快編譯速度
其次就是內存,最好是16G,如果是在虛擬機里面編譯的話要開始swap分區,大小要超過16G
最后就是硬盤,如果只編譯一個版本的話150G是要得,多版本就200G+了。
2、編譯環境配置
java配置
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk
如果裝有多個版本的java,切換java版本
sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javadoc
編譯各Android版本需要的java版本如下
Android版本 編譯要求的JDK版本
AOSP的Android主線 OpenJDK 8
Android 5.x至android 6.0 OpenJDK 7
Android 2.3.x至Android 4.4.x Oracle JDK 6
Android 1.5至Android 2.2.x Oracle JDK 5

配置編譯工具鏈
$ sudo apt-get install git-core gnupg flex bison gperf build-essential
zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache
libgl1-mesa-dev libxml2-utils xsltproc unzip

3、源碼下載
下載 repo 工具:

mkdir ~/bin
PATH=~/bin:$PATH
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo > ~/bin/repo
chmod a+x ~/bin/repo
建立工作目錄:
mkdir WORKING_DIRECTORYcd WORKING_DIRECTORY

初始化倉庫:
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest

如果提示無法連接到 gerrit.googlesource.com,請參照git-repo的幫助頁面的更新一節。
如果需要某個特定的 Android 版本(列表):
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.0.1_r1

同步源碼樹(以后只需執行這條命令來同步):
repo sync

4、編譯源碼
初始化編譯環境
source build/envsetup.sh
選擇編譯目標
lunch aosp_arm64-eng
開始編譯
make -j16
運行模擬器
emulator

5、問題
內存不足
在編譯命令之前,修改prebuilts/sdk/tools/jack-admin文件,找到文件中的這一行:
JACK_SERVER_COMMAND="java -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -cp $LAUNCHER_JAR $LAUNCHER_NAME"
然后在該行添加-Xmx4096m,如:
JACK_SERVER_COMMAND="java -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx4096m -cp $LAUNCHER_JAR $LAUNCHER_NAME"

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容