1. 程式人生 > >在Ubuntu-14.04.3配置併成功編譯Android6_r1原始碼

在Ubuntu-14.04.3配置併成功編譯Android6_r1原始碼

折騰了一週,終於把Android6_r1的原始碼編譯成功。先上圖,這是在ubuntu中執行的Android模擬器:

由於我是在win8中安裝虛擬機器VMware,然後在虛擬機器中安裝Ubuntu進行編譯,所以遇到諸多麻煩。如果直接在Linux中編譯,可能會更順利。

--------------------------------------------------------------------------------------------------------------------------

準備工作:

安裝ubuntu,一併參考“VMware8安裝配置Win7、CentOS-7嚮導”

-----------------------------------------------------------------------------

建議:ubuntu記憶體分配4G,預留90G虛擬硬碟(之前選擇了預設的20G,在解壓tgz的時候直接報空間不足),網路選擇“Bridged”方式。

為了編譯Android原始碼,下面對安裝好的ubuntu作一些配置工作。

首先調出終端,用以下快捷鍵

Ctrl + Alt + T

1、安裝Git等依賴元件

sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386 libx11
-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 dpkg-dev libsdl-dev libesd0-dev

上面紅色部分是數字“1”。當然,你也可以分開執行這些安裝命令。

如果沒有這些依賴元件,可能會遇到類似這樣的錯誤:

2、安裝JDK

首先用以下命令搜尋JDK版本

apt-cache search openjdk

執行安裝

sudo apt-get install openjdk-7
-jdk

檢視是否安裝成功

java -version

3、配置java_home

直接執行

echo $JAVA_HOME

並不能看到輸出。

設定:

echo export JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/" >> ~/.bashrc

然後重啟terminal或通過使用以下命令

source ~/.bashrc

此時重新輸入$JAVA_HOME,就可以看到配置好的路徑了

4、安裝SSH Server

這個有什麼用呢?利用Xshell方便我們在windows和虛擬機器中操作檔案。Ubuntu預設下是沒有安裝SSH Server,Client倒是為我們裝好了。

sudo apt-get install openssh-server

重啟它

sudo /etc/init.d/ssh restart

5、下載Android原始碼

有人在百度雲盤上共享了Android6_r1的原始碼,省去了我們-翻-牆-(部落格園居然把這兩個字遮蔽了,以FQ代替,呵呵~有這麼敏感麼)的麻煩,請看:Android6_r1分卷原始碼

6、拷貝Android原始碼到Ubuntu

此辦法笨了點。利用Xshell其實挺快的。直接拖進來。

7、合併檔案

 監測檔案Hash,看是否有損壞。具體對應什麼字串請對照hash.txt

md5sum Android6_r1_aa

然後把這幾個檔案合併成一個

cat Android6_r1_* > M.tgz

計算合併後的檔案雜湊

md5sum M.tgz

8、解壓檔案

tar zxvf M.tgz

 這是個漫長的過程。

 這個解壓命令會建立mydroid資料夾,解壓的東東都在裡面

9、編譯前配置

在 .bashrc檔案中新增:export USE_CCACHE = 1,操作如下:

echo export USE_CCACE=1 >> ~/.bashrc

為了提高編譯效率,設定編譯器快取記憶體。執行以下命令:

prebuilts/misc/linux-x86/ccache/ccache -M 30G

-M 30G 兩個引數表示設定30G大小的空間作為快取,這個數值可以根據自己的硬碟空間大小繼續調整

接著匯入編譯Android原始碼所需的環境變數和其它引數,執行以下命令

source build/envsetup.sh

執行lunch命令選擇編譯目標

lunch

比如選擇1,會出現以下提示資訊,告訴我們編譯的原始碼的一些相關資訊

10、編譯

make -j8

因為筆記本是i5 4210u,所以使用8(CPU核心的兩倍),此處可能設定過大了。

11、不斷地編譯(error不斷,無奈)

看來並不是一帆風順啊,出問題了。開始我還以為JDK版本不對,進入build/core/main.mk

發現預設就是1.7。

錯誤停止在下面的地方:

上面提過了,一開始我也沒安裝這些依賴元件,導致了一些不必要的麻煩。

還有其它常見編譯錯誤,已經有人整理出來了,適合的就參考以下吧:

繼續編譯

make -k

用了make -k之後,就悲劇了,編譯了一個晚上還沒好。

早上起來的時候果斷用“Ctrl + C”中斷編譯,重新安裝以上的依賴包,接著做清理工作

make clean

然後繼續開始,多加個sudo,因為之前的編譯輸出了“沒有許可權操作”類似的提示。

sudo make -j8

 大約兩個小時後,硬碟利用率100%,一直沒動。編譯也似乎停住了。一個小時後,貌似掛了T~T

難道快取記憶體佔用太多硬碟空間?虛擬機器給的空間不夠?

好吧,我重新裝一個ubuntu。然後分配60G的虛擬空間,2G記憶體,20G編譯快取記憶體。又跑一個晚上。

第二天一看,又是error,真是淚流滿面!

arm-linux-androideabi-g++: Internal compiler error: Killed (program cc1plus)

這是什麼鬼?

通過命令build-essential,g++我也裝了呀。

google了一下,有一個bug report:Build #478 Failed,可是沒看到解答。

整理幾個答案:

This error went away for me when I used "make" instead of the recommended "make -j4".
But rebooting the virtual machine seems to fix the problem for me. // are you sure??
For those having this issue with VMs, the solution that worked for me was bumping up the base memory. It was originally set to 512MB to 1536MB.

可是這是gcc呀。 

well the problem was caused by too little RAM allocated to my VM. Upped the RAM from 1Gb to 4Gb and the compile is now proceeding nicely. 

真是RAM小了?

再試試吧。由於機器配置原因,最多好像只能給虛擬機器分配3G的記憶體。然後直接sudo make執行命令。

抓狂啊!!難道ARM還小了?

重灌ubuntu再來。這次分配90G硬碟空間,4G記憶體(開始我還以為只能給3G)。

12、編譯成功

最終使用以下編譯命令

sudo make -j2

從上午11點半左右開始執行,晚上10點回來,看到居然編譯成功了!看到system.img沒有?哈哈~

進入目錄/out/target/product/generic,可以看到ramdisk.img, system.img, userdata.img, cache.img這四個映象檔案

13、執行Android模擬器

由於剛剛編譯成功,如果此時尚未退出終端的話,可以直接啟用命令執行Android模擬器。

emulator

如果退出了先前編譯的終端命令列視窗,那麼執行模擬器就完全不一樣了。具體請參考:android4.4 原始碼編譯之執行模擬器

如果對你有用,請支援一下~

相關推薦

Ubuntu-14.04.3配置成功編譯Android6_r1原始碼

折騰了一週,終於把Android6_r1的原始碼編譯成功。先上圖,這是在ubuntu中執行的Android模擬器: 由於我是在win8中安裝虛擬機器VMware,然後在虛擬機器中安裝Ubuntu進行編譯,所以遇到諸多麻煩。如果直接在Linux中編譯,可能會更順利。

Ubuntu 14.04.3 深度學習環境配置

機器型號:Lenovo M5400  顯示卡:NVIDIA GT740M  CPU:Intel 酷睿i5 4200M 記憶體:8G (一)安裝Ubuntu 14.04.3 參考 (二)解除安裝系統自

Ubuntu 14.04 + Eclipse 配置C++編譯環境

基本情況   系統:Ubuntu 14.04 x64 準備 第一步:安裝包 第二步:Ubuntu自帶java版本清理 解除安裝系統自帶java: 1 $ sudo apt-get remove openjdk* 清理關聯檔案: 2 $ sudo rm /usr/bin/java 3 $ sudo rm

在不使用U盤的情況下使用wubi.exe程序在Win7上安裝ubuntu-14.04.3版系統

32bit baidu 結束 ubunt win7 查找 過程 解決 解決問題   本文介紹如何在不使用U盤的情況下使用wubi.exe程序在Win7上安裝ubuntu-14.04.3版系統。   花了一天的時間終於安裝上了Ubuntu14.04,過程坎坷,是血淚史,開始報

Ubuntu 14.04 簡單配置 web伺服器 nginx

2018年10月20日19點59分 tar zxvf nginx-1.14.0.tar.gz    //解壓 cd nginx-1.14.0/ sudu -i    //進入管理員 返回nginx目錄 ./configure --prefix=/usr/loca

ubuntu-14.04-server配置Jexus --安裝步驟記錄

說明:我是Linux菜鳥,自己嘗試配置Jexus伺服器,中間遇到了很多錯誤,參考園子裡很多大神的部落格。才完成配置。如果你和我一樣是個菜菜,那麼,你不用東奔西跑了,這兒有你想要的。。。 1、 使用Putty連線遠端Ubuntu伺服器: 如果不能連線,可使用如下解決方案; 1.先明確你能p

Ubuntu 14.04 安裝配置 cairo-dock 實現美化+特效

         Cairo-Dock is a desktop interface that takes the shape of docks, desklets, panel, etc. 它可以讓桌面下方顯示一排應用的圖示,滑鼠經過會自動彈出,效果圖如下: 開始安裝,

Ubuntu 14.04配置檔案配置靜態IP和動態IP

1,靜態IP: # cat  /etc/network/interfaces # interfaces(5) file used by ifup(8) and ifdown(8)                                                

Ubuntu 14.04 + Caffe配置記錄(CPU模式,無GPU,無Cuda)

對於使用深度學習進行影象處理,Caffe是一個不錯的框架選擇。但是安裝起來,並不是如想象中容易,稍不注意就會出錯。 網上關於Ubuntu14.04下配置Caffe的資料很多,但是總是要自己親自配置才能

ubuntu 14.04配置terminal為zsh預設環境

經常在Ubuntu下工作,不可避免地常常使用terminal終端。雖然這個預設終端已經很簡潔方便了,但是還是有諸多的不變,比如分屏,快速複製貼上等等….所以就像著在不安裝其它終端的前提下,配置terminal環境,然後 就發現zsh。不多說,直接講述配置流程。

Ubuntu 14.04.3 LTS如何安裝谷歌輸入法

一,開啟Ubuntu 的“Ubunru的軟體中心”,在搜尋裡面輸入“googlepinyin”,我們就會查詢到“Googlepinyin engine for ibus”,這就是我們要按照的谷歌拼音輸入,安裝它。 二,安裝完畢後,啟動終端shell,在shell裡輸入“

ubuntu 14.04 vim配置安裝

一、apt-get安裝和更新vim sudo add-apt-repository ppa:jonathonf/vim sudo apt update sudo apt install vim sudo add-apt-repository ppa

Ubuntu 14.04安裝配置NFS服務器

這樣的 寫到 1.2 nbsp sta com tar restart star (一)安裝NFS服務器1.1-安裝Ubuntu nfs服務器端: sudo apt-get install nfs-kernel-server 1.2-安裝nfs的客戶端: sudo a

Ubuntu 14 04 64位機上不帶CUDA支援的Caffe配置編譯操作過程

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

ubuntu 14.04上LIFT: Learned Invariant Feature Points 環境配置所踩過的坑流過的淚(3

1.重灌nvidia 顯示卡驅動 2.重灌cuda8.0和cudnn 3。重新測試 看來執行不能用sudo 最後也沒管 2. theano nvcc compiler not found on $PATH 重新配置檔案 解決方案:重灌了一遍cuda 和c

linux【ubuntu 14.04】下的【caffe】編譯安裝(CPU 配置

原文地址:https://www.zybuluo.com/hanxiaoyang/note/364737 特別鳴謝:七月線上 - 專注資料領域的線上教育:https://www.julyedu.com (有部分修正) caffe 是深度學習在影象領域廣泛使用的框架,其 mo

Ubuntu 14.04編譯Android 2.3.7原始碼記錄

編譯環境 下載原始碼 下載原始碼 Android 2.3.7r1 原始碼,原本按照谷歌官方的指導,需要下載repo同步AOSP,但是遇到太多問題,並且.repo 檔案相當大,下載耗時太久,而且很容易出現問題,而且所以直接下載別人打包好的7z

Ubuntu 14.04 配置OpenCv 2.4.9

-1 org sent release nbsp build echo opencv 2 時間 安裝工具 g++ 鏈接:http://www.cnblogs.com/LQLin168/p/6844593.html 下載OpenCv 2.4.9(官網地址):http://

Git使用:Linux(Ubuntu 14.04 x64)下安裝GIt並配置連接GitHub

成功 ger 版本 style sts via xxxxxxxx apt 安裝 github是一個非常好的網絡代碼托管倉庫,知曉許久,但是一直沒有用起來,最近才開始使用git管理自己的文檔和代碼。 Git是非常強大的版本管理工具,今天就告訴大家,如何在Linux下安裝GIt

Ubuntu 14.04 64bit下Caffe + Cuda6.5/Cuda7.0 安裝配置教程

-a att html mode .net share surface art cores http://www.embeddedlinux.org.cn/emb-linux/entry-level/201612/21-6005.html 隨著深度學習快速發展的浪潮,許多有