本文源代碼詳見 https://github.com/Tinker-S/docker-android-build
使用docker編譯aosp源碼
google官方推薦的安卓編譯源碼爲14.04,由於目前的工作環境爲macosx環境或者高版本的ubuntu環境,直接在本機編譯會有很多問題,不過藉助docker這個強大的工具可解決這個煩惱
安裝docker
google搜索安裝方法即可
docker更換國內鏡像源
爲了加速docker鏡像的拉取,可以設置國內鏡像源,例如設置成網易的鏡像源方法如下:
- 創建 /etc/docker 目錄
sudo mkdir -p /etc/docker
- 在 /etc/docker 目錄下創建 daemon.json 文件,寫入以下內容
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
- 重啓docker服務
sudo systemctl daemon-reload
sudo systemctl restart docker
創建編譯鏡像
由於aosp源碼推薦在ubuntu 14.04版本上編譯,所以我們基於14.04來創建鏡像。這裏準備使用5.1.1版本的源碼,所以需要安裝jdk7。
構建鏡像的細節詳見 Dockerfile。
使用如下命令創建鏡像
docker build -t aosp-build:1.0.0 .
查看創建成功的鏡像
使用鏡像編譯源碼
- 下載aosp源碼 推薦去清華鏡像站下載打包好的源碼即可,也可以使用repo下載指定版本,具體詳見網站文檔
- 假設aosp源碼下載路徑爲 /home/user/aosp,使用aosp-build鏡像創建容器,並掛載aosp源碼路徑
docker run -itd --name aosp-build -v /home/user/aosp:/home/aosp aosp-build:1.0.0
docker exec -it aosp-build /bin/bash
- 進入 /home/rom 目錄,直接編譯源碼即可
. build/envsetup.sh
lunch
make -j8