Android源碼編譯過程

來源:互聯網
上載者:User

標籤:android   style   blog   http   ar   color   os   使用   sp   

http://my.oschina.net/zhoulc/blog/170698

http://jingyan.baidu.com/article/c85b7a641200e0003bac95a3.html

注意:
1,不要使用64位ubuntu
2,務必分配4g或者以上的swap空間

系統定製基本流程:擷取源碼 --> 修改源碼(包括修改和裁剪)--> 編譯修改後的源碼 --> 得到目標系統檔案 --> 移植系統 --> 測試成功 --> 完成
一,源碼下載
Google搜尋download android source code,第一個結果就是官方文檔(http://source.android.com/source/downloading.html)教你怎麼下載源碼,大概步驟如下:
1,在目前使用者的home目錄下建立一個檔案夾來儲存一寫可執行檔,並把該檔案夾加到環境變數中;
mkdir ~/bin
PATH=~/bin:$PATH

2,安裝curl,安裝git,下載Repo;
sudo apt-get install curl
sudo apt-get install git
如果要使用代理:
curl -x 127.0.0.1:8087 http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
不使用代理:
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
當然還要讓repo具有可執行許可權:
chmod a+x ~/bin/repo

3,建立一個檔案夾來儲存Android源碼
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY

4,初始化倉庫資訊,並設定要下載的版本
repo init -u https://android.googlesource.com/platform/manifest
repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
PS:repo設定代理的方式:
export HTTP_PROXY=127.0.0.1:8087
export HTTPS_PROXY=127.0.0.1:8087

5,同步Android源碼
repo sync
PS:同步過程中如果中斷不用擔心,使用repo sync可以繼續同步,同步過程中同步內容是隱藏的,到源碼同步目錄按Ctrl+h可以查看隱藏內容;我下載的是android-4.0.1_r1大概有11g多,用了差不多十個小時;電信20M+代理大概3個小時下載完成
二,編譯環境的配置
編譯過程值得注意的就是使用32位系統以及保證充足的記憶體空間!!!
Android編譯需要非常多的依賴,這裡列出我編譯時間用到的依賴以及一些問題
1,安裝基本依賴支援
 sudo apt-get install build-essential make libc6-dev
 sudo apt-get install bison patch texinfo libncurses-dev
 sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip 
 sudo apt-get install gnupg  ncurses-dev zlib1g-dev valgrind

2,jdk的安裝
由於甲骨文收購了sun公司,然後把google告了所以Android的jdk平台最多隻能達到1.6也就是jdk6,所以用jdk7是不行的,如果android版本比較低可能還需要使用jdk5,這裡簡紹使用jdk6;
(1),Google搜尋jdk-6u45-linux-i586.bin下載jdk6安裝包(甲骨文官方沒有找到)
(2),把安裝包拷貝到~/bin目錄下
(3),賦予安裝包執行許可權
chmod a+x ~/bin/jdk-6u45-linux-i586.bin

(4),執行安裝包
~/bin/jdk-6u45-linux-i586.bin

(5),執行完成後會在bin目錄下產生jdk-1.60_45這個目錄把這個目錄下的bin目錄配置到環境變數中
PATH=~/bin/jdk-1.60_45/bin:$PATH
執行java命令檢查是否安裝成功

3,gcc和g++的安裝
由於ubuntu內建的g++和gcc版本過高,所以無法正常的編譯源碼,這裡需要安裝4.4.6版本
(1),移除內建的gcc和g++
sudo apt-get remove gcc
sudo apt-get remove g++

(2),安裝4.4版本的gcc和g++
 sudo apt-get install gcc-4.4 
 sudo apt-get install g++-4.4

(3),為4.4版本的gcc和g++建立串連
cd /usr/bin
sudo rm gcc
sudo rm g++
sudo rm cc
sudo ln gcc-4.4 gcc
sudo ln gcc-4.4 cc
sudo ln g++-4.4 g++

三,源碼編譯
cd ~/bin/WORKING_DIRECTORY
(-j4是指定線程數量,如果電腦效能好可以寫成-j8什麼的)
make -j4

Android源碼編譯過程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.