1. 程式人生 > >使用docker搭建android原始碼編譯環境

使用docker搭建android原始碼編譯環境

說明
 由於工作原因要對android原始碼進行編譯,用於修改底層驅動,對系統進行定製。但是編譯過程中要使用特定ubuntu版本和gcc版本,所以會比較麻煩。當時第一反映是安裝VMware虛擬機器,裝一個指定版本然後將原始碼拷貝進去再編譯,該方法是可行的。後來才發現很麻煩,虛擬機器很佔用空間,於是決定使用docker試試,實驗了一番,還真可以,方便佔用儲存小,啟動起來快。

環境
主機:Ubuntu 16.04.2 LTS 64位 16G記憶體 500G硬碟 16個核心

docker版本: 17.03.0-ce

docke映象:ubuntu12.04 64位

同步映象
sudo docker pull registry.cn-shenzhen.aliyuncs.com/qusir/ubuntu12.04_msm8909:0.1
以上映象我已經定製好了的版本ubuntu12.04 64位,安裝好了依賴項和gcc,可以直接使用msm8909高通平臺編譯。

修改後儲存映象
docker提交映象

先檢視執行映象的ID,不要將映象停止執行,然後用以下命令

速凍docker commit 61412230ae46 registry.cn-hangzhou.aliyuncs.com/qusir/liang
新增映象

sudo docker tag 70838701e83a registry.cn-hangzhou.aliyuncs.com/qusir/liang:0.1
推送映象

sudo docker push registry.cn-hangzhou.aliyuncs.com/qusir/liang:0.1
編譯原始碼
啟動映象,對映目錄

docker run -it –rm -v /home/liang/data:/data registry.cn-shenzhen.aliyuncs.com/qusir/ubuntu12.04_msm8909 bash
將主機上的/home/liang/data的目錄對映到docke的/data目錄下

編譯原始碼

初始化環境變數

source ./build/envsetup.sh
選擇編譯選項

lunch
選擇

  1. msm8909-userdebug
    開始編譯

make -j8
關閉映象

Ctrl+D退出映象