posts - 33, comments - 0, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          Ubuntu 10.04 編譯Android 2.1源碼

          Posted on 2011-08-19 15:30 馬航 閱讀(266) 評論(0)  編輯  收藏

          前言

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

              2. 下載 JDK 1.5

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

          可從 Sun 官網(wǎng)上下載:

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

          選擇平臺 Linux ,勾選同意許可協(xié)議:

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

                   3. 部署 JDK 1.5

                     3.1 解壓縮 JDK

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

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

          cd ~

          然后賦予該 bin 文件可執(zhí)行屬性:

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

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

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

          跳過協(xié)議閱讀。

          最后一行:

          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 版做應用開發(fā),則系統(tǒng)中將同時存在 JDK1.5 和 JDK1.6 。因此需要實現(xiàn)能夠在不同版本間切換。如果不使用 JDK1.6 ,請做完 1.5 版的設(shè)置后跳至 3.3 節(jié)。

          這里使用 update-alternatives 命令實現(xiàn)。

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

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

          /usr/bin/jdk 是符號鏈接,它指向 /etc/alternatives/jdk (由第 2 個參數(shù)給出的), /root/jdk1.5.22 是實際目的鏈接, 255 是優(yōu)先級(任意整數(shù),在 automatic mode 自動模式時,數(shù)字大的優(yōu)先級較高,被選為默認配置選項)。

          然后再為 JDK1.6 版生成( 如果有 JDK1.6 的話。不使用 JDK1.6 的請?zhí)?3.3 節(jié) ):

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

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

                     3.3 配置 JDK 環(huán)境變量

          下面開始配置環(huán)境變量。

          在終端中執(zhí)行: 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

          該段代碼最好設(shè)置在文件的尾部。

          保存文件。在終端中執(zhí)行 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 在前面已經(jīng)單獨安裝過了,因此此處 apt-get install 命令行中沒有加入 sun-java5-jdk 。

                  5. 下載 Android 源代碼

                    5.1 安裝 repo 腳本

          首先安裝 repo 。在 root 目錄下新建一個 bin 目錄。在終端中執(zhí)行:

          cd ~

          mkdir bin

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

          export PATH=$PATH:~/bin

          然后執(zhí)行下面兩行指令,下載 repo 腳本并修改可執(zhí)行屬性:

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

          chmod a+x ~/bin/repo

                    5.2 初始化 repo

          首先建立一個目錄用來存放 Android 源代碼:

          mkdir mydroid

          cd mydroid

          然后用最新的列表執(zhí)行初始化。這里我們下載android 2.1-r1,因此加了參數(shù) –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

          最后執(zhí)行 repo sync 開始同步代碼。過程比較漫長,下載速度取決于你的網(wǎng)速,中間有可能遇到斷線,重新執(zhí)行 repo sync 即可斷點續(xù)傳。

                 6. 編譯 Android 源代碼

                   6.1 編譯生成鏡像

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

                   6.2 編譯、配置 Android SDK

          make 編譯完成后,執(zhí)行 make sdk 命令,生成對應于該版本源代碼的 sdk 。

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

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

          因為它比較常用,我們給它高優(yōu)先級:

          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 ,執(zhí)行:

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

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

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

          配置 AndroidSDK 環(huán)境變量。終端中執(zhí)行 gedit ~/.bashrc

          在文件最后添加下面三行:

          # set android environment

          export ANDROID_SDK_HOME=/usr/bin/ AndroidSDK

          export PATH=$ANDROID_SDK_HOME/tools:$PATH

          保存文件。在終端中執(zhí)行 source ~/.bashrc

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

          打開終端,執(zhí)行 android 腳本:

          android

          出現(xiàn)下圖所示窗口:

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

          Name : AVD 的名稱,隨便取,但只能包含字母和數(shù)字以及點、下劃線和連字符,這里取名 test 。

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

          SD Card : SD 卡。暫且不填,待需要時再設(shè)置。

          Skin :皮膚(模擬器屏幕分辨率)。

          Hardware :使用默認即可

          然后點 Create AVD ,就創(chuàng)建好了一個 AVD 。點擊 Start 即可啟動模擬器,其運行的是自己編譯的鏡像。


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 泰顺县| 长葛市| 江永县| 鞍山市| 蓝山县| 罗城| 高淳县| 吉木萨尔县| 平安县| 贵阳市| 阿拉善盟| 方城县| 安泽县| 福清市| 无为县| 申扎县| 柯坪县| 阿勒泰市| 淳安县| 吉木乃县| 肥东县| 铁岭市| 安西县| 神木县| 龙山县| 阜新市| 县级市| 聂拉木县| 镇平县| 库车县| 郯城县| 镶黄旗| 玛曲县| 杭州市| 石阡县| 吐鲁番市| 沙洋县| 射洪县| 黄骅市| 安国市| 北宁市|