Ubuntu 10.04環境下載&編譯Android-2.2.1 (froyo) 源代碼 2/2 分享

 

文章出處:http://mantocom.blog.sohu.com/161174089.html

 

6 . 下載 Android 源代碼

   6 .1 安裝 repo 腳本

首先安裝 repo 。在當前用戶: ~ 錄下新建一個 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

  6 .2 初始化 repo

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

mkdir mydroid

cd mydroid

然後用最新的列表執行初始化。這裏偶下載 android 2.2.1(froyo) ,因此加了參數 –b froyo (android 2.2.2(froyo) 源碼下載 :2G
repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo )
(
下載 2.1_r2 源碼

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

下載全部源碼: repo init -u git://android.git.kernel.org/platform/manifest.git )

(下載2.0源碼:
repo init -u git://android.git.kernel.org/platform/manifest.git –b eclair )
上面下載2.0時有個莫名其妙的問題
ynb@ynb-pc:~/bin$ repo init -u git://android.git.kernel.org/platform/manifest.git –b eclair
Usage: repo init -u url [options]
出現上面問題,刪除mydroid目錄:rmdir mydroid  ; mkdir mydroid2.0 ; cd mydroid2.0;
再:repo init -u git://android.git.kernel.org/platform/manifest.git -b eclair 就可以了)
(
如果能通過瀏覽器瀏覽到 android 源碼的主頁,但運行 repo init repo sync 的時候,卻沒法下載源碼,形如:
只需要把 git 開頭的地址改爲 http 即可:
[1]
repo init -u http:// android.git.kernel.org/platform/manifest.git -b froyo
[2]
修改 manifest.git 裏的地址,也是把 git:// 改爲 http://
vim .repo/manifest.git
如:
<?xml version="1.0" encoding="UTF-8"?>
 <manifest>
     <remote  name="korg"
             fetch="http:// android.git.kernel.org/"
              review="review.source.android.com" />
     <default revision="froyo"
              remote="korg" />  )

 

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

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

repo initialized in /home/( 當前用戶名 )/mydroid

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

7 . 編譯 Android 源代碼

   7 .1 編譯生成鏡像

切換到 android 源碼根目錄下,執行 $sudo make 即可。首次編譯非常耗時,取決於機器配置,大約需要 2-3 小時 。有可能會出現:“ Permission denied (權限拒絕的提示)” 請命令賦予權限: $cd 無權限文件的當前目錄 回車   $sudo chmod -R +rwx *  回車 完成後鏡像生成在 /root/mydroid/out/target/product/generic 下: android 源碼編譯後得到 system.img ,ramdisk.img ,userdata.img 映像文件。其中, ramdisk.img emulator 的文件系統, system.img 包括了主要的包、庫等文件, userdata.img 包括了一些用戶數據, emulator 加載這 3 個映像文件後,會把 system userdata 分別加載到 ramdisk 文件系統中的 system userdata 目錄下。

   7.2 編譯、配置 Android SDK

make 編譯完成後,執行 $sudo make sdk 命令,生成對應於該版本源代碼的 sdk, 此過程用的時間偶的是 10 多分鐘 。注意這個 sdk 不能用於生產環境。

用於生產環境的最好用如下命令: $sudo make PRODUCT-sdk-sdk 命令,生成對應於該版本源代碼的用於生產環境的 sdk, 此過程用的時間偶的是 1 個多小時

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

首先是自己編譯的 SDK 版本,實際位置是(注意權限 : $cd ~/mydroid/out/host/linux-x86/sdk 回車, $ sudo chmod -R a+wrx * 回車  
~/mydroid/out/host/linux-x86/sdk/android-sdk_eng.root_linux-x86

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

打開終端,執行 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 可啓動模擬器,其運行的是自己編譯的鏡像。


若以後要再次啓動此 AVD ,請在終端中運行:

emulator –avd test emulator @test

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章