Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> [Android系統的移植與平台開發]前言

[Android系統的移植與平台開發]前言

編輯:Android開發實例

一、Android4.0系統的下載與編譯

Android系統的下載與編譯,Google的官方網站上已經給出了詳細的說明,請參照Android的官方網址:

http://source.android.com/source/index.html

內容主要分為:

1.        准備Android下載與編譯環境

2.        下載源碼

3.        編譯源碼及內核源碼

下面我們依次來說明其步驟及注意事項。

1.      准備Android下載與編譯環境

Android源碼的編譯Google只給出了在類Unix系統,確切的說是Ubuntu及MacOS上的詳細過程,我們下面只描述Ubuntu上的編譯過程。

1.1硬件環境:

l  足夠快的PC機,如果有條件,最好是使用實體PC

l  內存最少1G,硬盤最少要30GB

注:也可以使用Vmware或VirtualBox等虛擬機軟件,但是編譯速度太慢,至於內存,如果小於1G,在編譯系統時可能會出錯。

1.2軟件環境

我們使用Ubuntu12.04作為編譯主機系統,(官方不建議使用Ubuntu12.04版本),由於Android系統裡代碼大部分是由Java語言寫的,所以必然要安裝JDK,不過,不同的版本,對JDK的版本有不同的要求:

l  在Gingerbread(2.3.x) 版本及其之後版本,使用JDK6.0,並且使用64位系統編譯

l  在Gingerbread(2.3.x) 以前版本,使用JDK5.0,並且可以在32位系統上編譯

注:當然我們通過修改一些配置文件,在32位系統上編譯,但是不能保證編譯出來的系統將來能否不出問題。

JDK6.0建議直接從SUN公司的網站上下載:

http://java.sun.com/javase/downloads/

安裝編譯時依賴的包:

$ sudo apt-get install git-core gnupg flex bison gperfbuild-essential \

zip curl libc6-dev libncurses5-dev:i386x11proto-core-dev \

libx11-dev:i386 libreadline6-dev:i386libgl1-mesa-glx:i386 \

libgl1-mesa-dev g++-multilib mingw32 tofrodos \

python-markdown libxml2-utils xsltproc zlib1g-dev:i386

執行下面的命令:

$ sudo  ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1/usr/lib/i386-linux-gnu/libGL.so

2.      下載Android4.0及Goldfish源碼

2.1 下載並初始化repo工具

依次執行下面的命令:

$ mkdir ~/bin

$ PATH=~/bin:$PATH

通過curl命令下載repo工具:

$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo

給repo工具加下執行權限:

$ chmod  a+x ~/bin/repo

創建我們的源碼目錄:

$ mkdir WORKING_DIRECTORY

$ cd WORKING_DIRECTORY

初始化repo工具,准備訪問google源碼倉庫:

$ repo  init -u  https://android.googlesource.com/platform/manifest -b android-4.0.1_r1

有的時候使用上面的命令不能連接android服務器,我們可以使用下面的命令連接:

$ repo init -u   https://android.googlesource.com/a/platform/manifest -b android-4.0.1_r1

這個時候,要保證您的ubuntu能夠上網,並且能正常連接到Android服務器,在初始化完repo工具後,會讓你輸入gmail郵箱及用戶名驗證。

2.2下載Android源碼

通過執行下面的命令,開始下載Android源碼:

$repo sync

如果你的PC機足夠給力,可以在命令後面加上–jn,n表示多個線程同時下載,可以提高下載速度。

然後是漫長的等待,Android4.0.1的源碼大概有6GB左右,一般1~2個晚上的時間。

有的時候,網絡可能會斷,我們可以使用下面的腳本來進行下載,當連接出錯時,會自動下載。

#!/bin/bash

PATH=~./bin:$PATH

repo init-u https://android.googlesource.com/a/platform/manifest-b android-4.0.1_r1

repo sync

while [ $? = 0

]; do

         echo“  **Error: sync failed, re-sync again”

         sleep 5

         repo sync

done

 

2.3其它源碼下載源

前面所述的下載步驟是Google放出一官方版本的Android代碼,它裡面通常只有模擬器和部分和Google有合作關系設備的源碼,如果要想編譯一個目標設備的Android4.0.1系統,我們肯定要對其進行定制,不過有一些知名的設備生產廠商或第三方廠商,也會開源針對自己設備的Android系統,如:三星,高通等,比較專業的,網址如下:

www.linaro.org

linaro網站主要是ARM的芯片的最新Android解決方案,如:基於三星獵戶座芯片的origen開發板,基於TI的OMAP系統芯片的PandaBoard板,基於Nova A9500 ARM 雙核Cortex A9的snowball開發板等。

如果從上述網站上下載源碼,要根據上述網站的說明進行相關操作。


 

 

2.4 下載模擬器Goldfish內核源碼

 

Google在開發Android系統的同時,使用qemu開發了針對每個版本的一個模擬器,這大大降低了開發人員的開發成本,便於Android技術的推廣。qemu是一個開源的模擬處理器軟件,而Google使用qemu模擬的是ARM926ej-S的Goldfish處理器,如果開發人員在沒有目標開發板的情況下,要對硬件進行操作的話,必然要去操作Android底層的驅動,我們可以使用模擬器的內核源碼。

Ø  下載Goldfish內核源碼

首先進入到Android的源碼目錄,創建源碼目錄kernel:

$ cd WORKING_DIRECTORY

$ mkdir kernel

從Android的遠程源碼倉庫下載源碼:

$git clone http://android.googlesource.com/kernel/goldfish.git  

當然,如果你要編譯指定目標平台的kernel的話,也可以從指定的倉庫裡下載,官方給出了下列處理器的kernel:

$ git clone https://android.googlesource.com/kernel/common.git

$ git clone https://android.googlesource.com/kernel/exynos.git

$ git clone https://android.googlesource.com/kernel/goldfish.git

$ git clone https://android.googlesource.com/kernel/msm.git

$ git clone https://android.googlesource.com/kernel/omap.git

$ git clone https://android.googlesource.com/kernel/samsung.git

$ git clone https://android.googlesource.com/kernel/tegra.git

大概幾十分鐘後,下載完了,如下圖所示:


 

 

在kernel目錄下產生一個goldfish目錄,進入到該目錄下:

 

$ cd goldfish

$ ls -al

通過ls–al命令查看當前目錄,可以看到隱藏的.git。


 

 

通過git branch –a來查看所以分支:

$ git branch -a

 


 

通過git checkout來得到源碼:

$ git checkout remotes/origin/android-goldfish-2.6.29

如下圖所示,當前目錄下出現了Linux內核源碼的目錄結構:

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved