Ubuntu 16.04 64bit 編譯 Android 4.4 源碼

1.獲取Android源碼

(1)下載repo

在用戶目錄下創(chuàng)建一個(gè)bin文件夾來(lái)存放repo匙隔,并把該路徑設(shè)置到環(huán)境變量中

mkdir ~/bin

PATH=~/bin:$PATH

下載repo腳本

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

設(shè)置repo可執(zhí)行權(quán)限

chmod a+x ~/bin/repo

(2)初始化repo客戶端

創(chuàng)建AndroidCode目錄用來(lái)存放源碼

mkdir AndroidCode

cd AndroidCode

運(yùn)行repo下載源碼

repo init -u https://android.googlesource.com/platform/manifest -b android-4.4_r1

repo sync

注:下載android源碼對(duì)網(wǎng)絡(luò)要求較高色鸳,如果中間出現(xiàn)錯(cuò)誤鱼冀,不要?jiǎng)h除已緩存的文件挪凑,重新執(zhí)行repo sync即可。如果網(wǎng)速不允許的話缘滥,推薦在論壇或者網(wǎng)盤(pán)上找資源眶明,在windows下載后拷貝到ubuntu下即可(無(wú)需配置repo)。無(wú)論采用哪種方式既琴,切記源碼的路徑一定不要含有中文占婉。

2.搭建編譯環(huán)境

(1)安裝編譯工具

sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386

sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib

sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386

sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev

sudo apt-get install git-core gnupg flex bison gperf build-essential

sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib

sudo apt-get install libc6-dev-i386

sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev

sudo apt-get install lib32z-dev ccache

sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4

注:安裝過(guò)程中可能出現(xiàn)版本不匹配的問(wèn)題,但是系統(tǒng)會(huì)給出應(yīng)安裝的正確版本提示甫恩,按照系統(tǒng)提示安裝即可逆济。如果出現(xiàn)不能安裝的情況,可以執(zhí)行 sudo apt-get update 后再進(jìn)行安裝,如果再安裝不上奖慌,則可以放棄抛虫,影響不大。如果電腦里沒(méi)有g(shù)it一定要安裝一下git简僧。

(2)安裝jdk

Android4.4的源碼編譯所使用的jdk為oracle jdk1.6建椰。由于不能直接下載,所以可在論壇或網(wǎng)盤(pán)上找資源下載jdk1.6.0_45.下載后為.bin文件

首先在/usr/loacl目錄下創(chuàng)建jvm文件夾用來(lái)存放jdk

mkdir /usr/local/jvm

然后進(jìn)入到Downloads下找到剛才下載的jdk岛马,復(fù)制到/usr/local/jvm中

cp jdk-6u45-linux-x64.bin /usr/local/jvm

然后進(jìn)入到/usr/local/jvm下棉姐,給.bin文件一個(gè)可執(zhí)行權(quán)限

chmod +x jdk-6u45-linux-x64.bin

執(zhí)行.bin文件進(jìn)行安裝

./jdk-6u45-linux-x64.bin

安裝成功后設(shè)置環(huán)境變量,打開(kāi)/etc/profile啦逆,添加如下幾行后保存

export JAVA_HOME=/usr/local/jvm/jdk1.6.0_45

export JRE_HOME=/usr/local/jvm/jdk1.6.0_45/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

修改后Log Out之后再進(jìn)入伞矩,在終端輸入java -version,顯示java version "1.6.0_45"則為配置成功

注:編譯的時(shí)候jdk一定要安裝1.6的最高版本夏志,即jdk1.6.0_45乃坤,否則編譯中會(huì)報(bào)錯(cuò),推薦下載地址http://download.csdn.net/detail/javahr/7291125

(3)安裝make

由于ubuntu16.04自帶make版本過(guò)高沟蔑,無(wú)法編譯侥袜。因此需要將make降至3.81或3.82版本

下載地址ftp://ftp.gnu.org/gnu/make/

下載后到Downloads下將文件拷到其他目錄(home下即可),然后解壓

tar -zxvf make3.8.2.tar.gz

解壓后進(jìn)入到make3.8.2的目錄下

./configure

make

make install

執(zhí)行完后在/usr/local/bin中可得到新版本的make溉贿,復(fù)制到/usr/bin中即可

注:make過(guò)程中可能會(huì)出現(xiàn)錯(cuò)誤枫吧,不用理會(huì),只要make install能夠成功執(zhí)行即可宇色。

(4)編譯

首先在.bashrc文件末尾追加export USE_CCACHE = 1

echo export USE_CCACHE=1 >> ~/.bashrc

然后導(dǎo)入編譯Android源碼所需的環(huán)境變量和其他參數(shù):

source build/envsetup.sh

然后

make clean

make update-api

make

注:其中前兩行不是必須的九杂,make update-api可能會(huì)出錯(cuò),但是影響不大宣蠕。

最后一行make也可以用make -j4(四線程編譯)例隆,電腦性能好的可以用make -j8或-j10,總之是二的倍數(shù)抢蚀。我怕電腦死機(jī)只用了make镀层,不過(guò)稍微有點(diǎn)慢。

如果沒(méi)什么意外的話等待編譯成功就好了皿曲。唱逢。。

(5)啟動(dòng)Android模擬器

source build/envsetup.sh

lunch sdk-eng

emulator

等待一會(huì)之后模擬器即可啟動(dòng)

(6)最后:

過(guò)程整理出來(lái)大概就是這樣屋休,由于上文好多命令都是我自己手敲上去的坞古,可能有的敲錯(cuò)了,給大家推薦兩篇參考博客

http://www.reibang.com/p/6d97b4a10b18

http://blog.sina.com.cn/s/blog_6e65e8cc0102wm83.html

如果順利的話整個(gè)編譯過(guò)程是不會(huì)出現(xiàn)網(wǎng)上所說(shuō)的各種錯(cuò)誤的劫樟。

祝大家編譯成功~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末痪枫,一起剝皮案震驚了整個(gè)濱河市织堂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌奶陈,老刑警劉巖易阳,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異吃粒,居然都是意外死亡潦俺,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)声搁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人捕发,你說(shuō)我怎么就攤上這事疏旨。” “怎么了扎酷?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵檐涝,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我法挨,道長(zhǎng)谁榜,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任凡纳,我火速辦了婚禮窃植,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘荐糜。我一直安慰自己巷怜,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布暴氏。 她就那樣靜靜地躺著延塑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪答渔。 梳的紋絲不亂的頭發(fā)上关带,一...
    開(kāi)封第一講書(shū)人閱讀 52,441評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音沼撕,去河邊找鬼宋雏。 笑死,一個(gè)胖子當(dāng)著我的面吹牛务豺,可吹牛的內(nèi)容都是我干的好芭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼冲呢,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼舍败!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤邻薯,失蹤者是張志新(化名)和其女友劉穎裙戏,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體厕诡,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡累榜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了灵嫌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片壹罚。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖寿羞,靈堂內(nèi)的尸體忽然破棺而出猖凛,到底是詐尸還是另有隱情,我是刑警寧澤绪穆,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布辨泳,位于F島的核電站,受9級(jí)特大地震影響玖院,放射性物質(zhì)發(fā)生泄漏菠红。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一难菌、第九天 我趴在偏房一處隱蔽的房頂上張望试溯。 院中可真熱鬧,春花似錦郊酒、人聲如沸耍共。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)试读。三九已至,卻和暖如春荠耽,著一層夾襖步出監(jiān)牢的瞬間钩骇,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工铝量, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留倘屹,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓慢叨,卻偏偏與公主長(zhǎng)得像纽匙,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拍谐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容