Ubuntu 10.04 編譯Android 2.1源碼

來源:互聯網
上載者:User

前言

本文敘述了如何從零開始搭建基於 Google 官方 Android 2.1-r2 源碼的開發環境,包括如何下載原始碼、編譯原始碼,以及在模擬器中運行編譯產生的鏡像。文中開發機是基於 Ubuntu 10.04 的,同樣適用於其他版本的 Ubuntu 。

    2. 下載 JDK 1.5

編譯 Android 源碼需要 JDK1.5 版(主要是需要其中的 javadoc ), 1.6 版是不相容的。 JDK1.5 已經停止支援,其最終的版本是 JDK 5.0 Update 22 。

可從 Sun 官網上下載:

http://java.sun.com/javase/downloads/5u22/jdk

選擇平台 Linux ,勾選同意許可協議:

單擊 Continue ,在彈出的頁面中一共有兩個下載,選第一個 jdk-1_5_0_22-linux-i586.bin 下載:

         3. 部署 JDK 1.5

           3.1 解壓縮 JDK

以下命令均在 root 賬戶上執行,非 root 賬戶執行某些命令可能需要加 sudo 。

將 jdk-1_5_0_22-linux-i586.bin 放在 root 目錄下。進入該目錄:

cd ~

然後賦予該 bin 檔案可執行屬性:

chmod +x jdk-1_5_0_22-linux-i586.bin

再執行安裝 ( 注意前面有 ./) :

./jdk-1_5_0_22-linux-i586.bin

跳過協議閱讀。

最後一行:

Do you agree to the above license terms? [yes or no]

鍵入 yes ,然後斷行符號,開始解壓。預設會解壓到目前的目錄下的 jdk1.5.0_22 目錄下(此處是 ~/ jdk1.5.0_22 )。

           3.2 JDK 版本切換

如果同時需要使用 JDK1.6 版做應用開發,則系統中將同時存在 JDK1.5 和 JDK1.6 。因此需要實現能夠在不同版本間切換。如果不使用 JDK1.6 ,請做完 1.5 版的設定後跳至 3.3 節。

這裡使用 update-alternatives 命令實現。

首先為 JDK1.5 版產生可選配置選項:

update-alternatives --install /usr/bin/jdk jdk /root/jdk1.5.22 255

/usr/bin/jdk 是符號連結,它指向
/etc/alternatives/jdk (由第 2 個參數給出的), /root/jdk1.5.22 是實際目的連結, 255
是優先順序(任意整數,在 automatic mode 自動模式時,數字大的優先順序較高,被選為預設配置選項)。

然後再為 JDK1.6 版產生( 如果有 JDK1.6 的話。不使用 JDK1.6 的請跳至 3.3 節 ):

update-alternatives --install /usr/bin/jdk jdk /root/jdk1.6.20 0

這樣,預設 jdk 版本即為 1.5 版。需要切換到 1.6 版時,請使用 update-alternatives –config jdk

           3.3 配置 JDK 環境變數

下面開始配置環境變數。

在終端中執行: gedit ~/.bashrc

修改 .bashrc 檔案,添加下面語句:

#set java environment

export JAVA_HOME=/usr/bin/jdk

export JRE_HOME=JAVA_HOME/jre

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

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

該段代碼最好設定在檔案的尾部。

儲存檔案。在終端中執行 source ~/.bashrc

請使用 java – version 檢查 JDK 是否配置正確。

        4. 安裝其他必備組件

在終端上,使用下面的命令安裝:

apt-get install git-core gnupg flex bison
gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl
libncurses5-dev zlib1g-dev

因為 JDK1.5 在前面已經單獨安裝過了,因此此處 apt-get install 命令列中沒有加入 sun-java5-jdk 。

        5. 下載 Android 原始碼

          5.1 安裝 repo 指令碼

首先安裝 repo 。在 root 目錄下建立一個 bin 目錄。在終端中執行:

cd ~

mkdir bin

然後,向 PATH 中添加 bin 路徑:

export PATH=$PATH:~/bin

然後執行下面兩行指令,下載 repo 指令碼並修改可執行屬性:

curl https://android.git.kernel.org/repo >~/bin/repo

chmod a+x ~/bin/repo

          5.2 初始化 repo

首先建立一個目錄用來存放 Android 原始碼:

mkdir mydroid

cd mydroid

然後用最新的列表執行初始化。這裡我們下載android 2.1-r1,因此加了參數 –b android-2.1_r2:

repo init -u git://android.git.kernel.org/platform/manifest.git –b android-2.1_r2

這中間會問到你的名字和 Email 。如果你打算上傳代碼, Email 須是一個 Google 賬戶。

repo 初始化成功後會看到類似於下面的提示:

repo initialized in /root/mydroid

最後執行 repo sync 開始同步代碼。過程比較漫長,下載速度取決於你的網速,中間有可能遇到斷線,重新執行 repo sync 即可斷點續傳。

       6. 編譯 Android 原始碼

         6.1 編譯產生鏡像

切換到 android 源碼根目錄下,執行 make 即可。首次編譯非常耗時,取決於機器配置,大約需要 3 小時。完成後鏡像產生在 /root/mydroid/out/target/product/generic 下。

         6.2 編譯、配置 Android SDK

make 編譯完成後,執行 make sdk 命令,產生對應於該版本原始碼的 sdk 。

Android 官方的 SDK 和我們自己編譯 Android 源碼時使用 make sdk 編譯出的 SDK 有區別,模擬器版本不同,載入的預設鏡像也不同(一個是官方的,一個是自己編譯的)。下面將展示如何能夠自由切換 SDK 版本。

首先是自己編譯的 SDK 版本,實際位置是 /root/mydroid/out/host/linux-x86/sdk/android-sdk_eng.root_linux-x86 。

因為它比較常用,我們給它高優先順序:

update-alternatives --install
/usr/bin/AndroidSDK AndroidSDK
/root/mydroid/out/host/linux-x86/sdk/android-sdk_eng.root_linux-x86 255

事先下載的官方 SDK 位置是 /root/android-sdk-linux_86 ,執行:

update-alternatives --install /usr/bin/AndroidSDK AndroidSDK /root/android-sdk-linux_86 0

然後使用 update-alternatives --display AndroidSDK 查看當前配置情況:

如果要切換配置,使用 update-alternatives --config AndroidSDK

配置 AndroidSDK 環境變數。終端中執行 gedit ~/.bashrc

在檔案最後添加下面三行:

# set android environment

export ANDROID_SDK_HOME=/usr/bin/ AndroidSDK

export PATH=$ANDROID_SDK_HOME/tools:$PATH

儲存檔案。在終端中執行 source ~/.bashrc

       7. 在模擬器中運行編譯的鏡像

開啟終端,執行 android 指令碼:

android

出現所示視窗:

選擇左邊第一項 Virtual Devices ,然後在右邊選擇 New ,建立一個 AVD 。

Name : AVD 的名稱,隨便取,但只能包含字母和數字以及點、底線和連字號,這裡取名 test 。

Traget :目標 SDK 版本,這裡選自己編譯的 2.1-r1 版 Android SDK 。

SD Card : SD 記憶卡。暫且不填,待需要時再設定。

Skin :皮膚(模擬器螢幕解析度)。

Hardware :使用預設即可

然後點 Create AVD ,就建立好了一個 AVD 。點擊 Start 即可啟動模擬器,其啟動並執行是自己編譯的鏡像。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.