Android 4.0.1 源碼下載,編譯和運行

來源:互聯網
上載者:User

Android 4.0.1 源碼下載,模擬器編譯和運行
http://blog.csdn.net/rambo2188/article/details/6943382
http://www.linuxidc.com/Linux/2011-11/47808.htm
轉注:本文由rambo2188在CSDN上首發,linuxidc上的貌似該文的轉載

----------------------------------------------------------------
[1] Android ICS 下載
----------------------------------------------------------------

http://source.android.com/source/downloading.html 上有最新的ICS 原始碼同步的地址。如果環境已經設定好了的話,同步最新的代碼非常的簡單:
    $ mkdir WORKING_DIRECTORY  
    $ cd WORKING_DIRECTORY  
      
    $ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1  
    $ repo sync  

    轉註:

    主幹:$ repo init -u https://android.googlesource.com/platform/manifest.git
    4.03:$ repo init -u https://android.googlesource.com/platform/manifest.git -b android-4.0.3_r1

下載完成後主要包含以下目錄:

    abi  bionic  bootable  build  cts  dalvik  development  device  docs  external  frameworks  hardware  libcore  Makefile  ndk  out  packages  prebuilt  sdk  system  

Android4.01配套核心kernel3.0下載
    $ git clone http://android.git.kernel.org/kernel/common.git
    $ git branch -a
    $ git checkout remotes/origin/android-3.0

----------------------------------------------------------------
[2] Android ICS 的編譯
----------------------------------------------------------------
    source ./build/envsetup.sh  
    lunch sdk-eng  
    make  

編譯完成後工作目錄($TOP)裡增加了一個log檔案 v8.log

轉註:

(1) 編譯過程中,可能會由於stdio2.h導致編譯錯誤。正確的stdio2.h是./prebuilt/linux-x86/toolchain/i686-linux-glibc2.7-4.4.3/sysroot/usr/bits/stdio2.h檔案,請重新設定PATH環境變數,將./prebuilt/linux-x86/toolchain/i686-linux-glibc2.7-4.4.3/sysroot/usr放在PATH的最前。

(2) 編譯時間可能會提示需要Java 1.6 SE,實際上編譯時間只需要有Java 1.6 JDK就成

(3) 帶參數make時,toolchain說明最好使用絕對路徑,如:make -j2 ARCH=arm CROSS_COMPILE=/home/hyla/ics/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-

----------------------------------------------------------------
[3] Android 4.0.1 模擬器核心最新及編譯步驟
----------------------------------------------------------------
url: http://www.linuxidc.com/Linux/2011-11/47809.htm

由於Android kernel的部分封閉策略,kernel org已經將android kernel踢出主線。原有的同步地址已經被重新導向,再加上android kernel本身結構的調整,很多原來的同步方法已經不能使用。下面是最新的方法,適用於編譯android 4.0.1 模擬器的核心(qemu kernel, goldfish branch)。

原有的方法大多使用以下地址同步
    $ git clone git://Android.git.kernel.org/kernel/common.git  
    $ cd common  
    $ git branch -a  
    $git checkout remotes/origin/archive/Android-gldfish-2.6.29  

    但是我們可以在瀏覽器裡輸入
    Android.git.kernel.org/kernel/common.git  
    它實際上已經被重新導向到
    Android.googlesource.com/kernel/common.git  

    但是這個repo 裡已經不包含 goldfish的分支了。如果同步下來後我們用 git branch -a 將看到只有最新的 3.0 和2.6.39的分支:
    $git branch -a  
    * (no branch)  
      master  
      remotes/origin/HEAD -> origin/master  
      remotes/origin/android-2.6.39  
      remotes/origin/android-3.0  
      remotes/origin/master  

    其實 goldfish分支已經被獨立為一個單獨的repo:http://android.googlesource.com/kernel/goldfish.git
    以下是最新的正確的 同步步驟:

    $git clone http://android.googlesource.com/kernel/goldfish.git  
    $cd goldfish  
    $git branch -a  
    * (no branch)  
      master  
      remotes/origin/HEAD -> origin/master  
      remotes/origin/android-goldfish-2.6.29  
      remotes/origin/master  
    $git checkout remotes/origin/android-goldfish-2.6.29  

    編譯步驟基本沒有變,但需要使用新的config:
    $ make ARCH=arm goldfish_armv7_defconfig  
    $ make ARCH-arm CROSS_COMPILE=arm-eabi-   
      
    ...  
    OBJCOPY arch/arm/boot/zImage  
      Kernel: arch/arm/boot/zImage is ready  

    然後就可以用著新的kernel img 來啟動模擬器了:

----------------------------------------------------------------
[4] Android ICS 模擬器的啟動
----------------------------------------------------------------
命令:列出AVD平台
$ cd out/host/linux-x86/sdk/android-sdk_eng.xxx_linux-x86/tools  
$ android list targets  
Available Android targets:  
----------  
id: 1 or "Android-14"  
     Name: Android 4.0  
     Type: Platform  
     API level: 14  
     Revision: 2  
     Skins: QVGA, WSVGA, HVGA, WVGA854, WXGA720, WQVGA432, WVGA800 (default), WQVGA400, WXGA800  
     ABIs : armeabi-v7a  

命令:自訂AVD
$ android create avd -t 1 -n ics  
Auto-selecting single ABI armeabi-v7a  
Android 4.0 is a basic Android platform.  
Do you wish to create a custom hardware profile [no]  
Created AVD 'ics' based on Android 4.0, ARM (armeabi-v7a) processor,  
with the following hardware config:  
hw.lcd.density=240  
vm.heapSize=24  
hw.ramSize=512  

命令:啟動模擬器,載入自訂的AVD
$ emulator -avd ics 

命令:使用自己編譯的核心啟動模擬器

$emulator -kernel ...../kernel/goldfish/arch/arm/boot/zImage & 

啟動模擬器,到 Setting => About 去看,kernel現在的確是我們自己編譯的版本了。

命令:使用自己編譯的核心及images啟動模擬器

export DROIDROOT=~/android-sdk-v14-x86
export AVDROOT=~/android-sdk-v14-x86/tools

cd `pwd`/out/target/product/generic
$AVDROOT/emulator -kernel ../../../../kernel/arch/arm/boot/zImage -show-kernel -partition-size 256 -memory 256 -skindir $DROIDROOT/platforms/android-14/skins -skin WVGA800 -shell -sysdir ./ -data userdata.img -ramdisk ramdisk.img -system system.img -sdcard
/~/.android/avd/wvga800v14/sdcard.img

相關文章

聯繫我們

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