2021-05-12 14:32:11
Ubuntu 14.04 編譯 Android 5.1.1原始碼
之前就有在Ubuntu 14.04下編譯Android原始碼的想法,但是由於網路的原因,又沒有梯子,連開發工具都是經過androiddevtools從百度雲弄下來的,前兩天發現了清華大學AOSP的映象站點,就想著從上面git android 原始碼,然後編譯。在這裡做個簡單的記錄,和大家分享一下,畢竟小水管不容易,下載原始碼加編譯花了接近兩天。
1.安裝openjdk-7-jdk
$ sudo apt-get install openjdk-7-jdk
安裝好之後修改 /etc/profile 中的環境變數,將openjdk加入到JAVA_HOME中
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
我因為之前就有裝過Oracle jdk,就直接把Open Jdk 附在了後面
然後使修改的組態檔立即生效:
$ . /etc/profile
檢視java 這時使用的jdk 就是Open Jdk
接下來安裝必備的工具軟體
$ sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dri:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 dpkg-de
注意,上面使官方的需要安裝的包,但是在實際中,我安裝的時候報錯了,
ERROR: unity-control-center : 依賴: libcheese-gtk23 (>= 3.4.0) 但是它將不會被安裝 依賴: libcheese7 (>= 3.0.1) 但是它將不會被安裝
這裡的報錯是因為是由 libgl1-mesa-glx:i386 報引起的,需要替換掉,更改為:
$ sudo apt-get install libgl1-mesa-glx-lts-quantal:i386
接下來設定Cache,使用下面兩條命令
$ sudo apt-get install ccache $ source ~/.bashrc
然後就是下載repo :
首先建立repo 目錄
$ mkdir ~/bin
$ PATH=~/bin:$PATH
然後就是下載repo,google官方被牆了,這裡用的是清華大學映象的:
$ git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/
然後將git-repo 目錄中的repo 檔案拷貝到 bin目錄
$ cp git-repo/repo ~/bin/
接下來開啟bin目錄下的repo 檔案,修改其中的 REPO_URL 引數,修改為:
REPO_URL = 'git://aosp.tuna.tsinghua.edu.cn/android/git-repo'
接下來就需要初始化repo:
先建立目錄aosp,就是等會要存放android原始碼的目錄
$ mkdir ~/aosp
進入到aosp目錄中
$ cd ~/aosp
初始化repo,最新的android 都可以進行下載,以下三條命令任意執行一條就可以了,會下載不同版本的android原始碼,我採用的是android-5.1.1
$ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-5.1.1_r4 $ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-6.0.1_r22 $ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-n-preview-1
在初始化的時候會要求輸入名字和郵箱,正常輸入就可以了。
最耗時間的步驟來了,下載android原始碼
$ repo sync
我在同步的過程中有好幾次出現Error,不用管,加上引數 -f 繼續同步
$ repo sync -f
這個過程是很漫長的,我的小水管用了一天多才同步完成。
下載完成之後就是編譯了,我的計算機是雙核4執行緒,編譯的還比較快,用了差不多5個小時編譯完成:
1) 設定cache
$ cd aosp
$ prebuilts/misc/linux-x86/ccache/ccache -M 50G
2) 初始化編譯環境
$ . build/envsetup.sh
3)選擇編譯目標包
有很多中,可以用lunch命令檢視,我選擇的是最常用的arm
$ lunch aosp_arm-eng
4)編譯
可以在 make 後設定引數,加快編譯速度,我用的是
$ make -j4
表示4個執行緒進行編譯,因為我的計算機是雙核4執行緒,如果機器設定更好,可以開更多的執行緒,減少編譯時間
make 失敗或停止後,可以使用make -k 繼續編譯,不過我是一次就編譯成功了。
編譯成功之後
會在aosp目錄下編譯產生out目錄
然後就可以執行編譯產生的模擬器了:
$ emulator &
執行的結果就是這樣:
Ubuntu 14.04 搭建Android開發環境 http://www.linuxidc.com/Linux/2014-05/101149.htm
相關文章