周折了幾天,終於把Android平台的搭建做好了

來源:互聯網
上載者:User

 廢話少說,立刻上資料。

第一步:安裝vim工具

第二步:安裝samba工具,建立與windows共用資料夾

第三步:安裝android系統編譯的涉及的開發包:git-core gnupg valgrind flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev

第四步:安裝java1.5,編譯android核心時需要用到java1.5版本
 需要更新/etc/apt/sources.list,添加如下:
 1.運行命令 sudo gedit /etc/apt/sources.list

 2.開啟 sources.list 後在最後添加 deb http://mirrors.163.com/ubuntu/ hardy main multiverse 儲存關閉

 3.運行命令 sudo apt-get update

 4.運行命令 sudo apt-get install sun-java5-jdk 就可以下載安裝 java5

需要注意的是,官方文檔說如果用sun-java6-jdk可出問題,得要用sun-java5- jdk。經測試發現,如果僅僅make(make不包括make sdk),用sun-java6-jdk是沒有問題的。而make sdk,就會有問題,嚴格來說是在make doc出問題,它需要的javadoc版本為1.5。
因此,我們安裝完sun-java6-jdk後最好再安裝sun-java5-jdk,或者只安裝sun-java5-jdk。這裡sun-java6-jdk和sun-java5-jdk都安裝,並只修改javadoc.1.gz和javadoc。因為只有這兩個是make sdk用到的。這樣的話,除了javadoc工具是用1.5版本,其它均用1.6版本:
$ sudo apt-get install sun-java6-jdk
修改javadoc的link
$ cd /etc/alternatives
$ sudo rm javadoc.1.gz
$ sudo ln -s /usr/lib/jvm/java-1.5.0-sun/man/man1/javadoc.1.gz javadoc.1.gz
$ sudo rm javadoc
$ sudo ln -s /usr/lib/jvm/java-1.5.0-sun/bin/javadoc javadoc

 

第五:編譯android核心和linux核心

編譯Android核心方法:
    注意:由於android的核心有3G多,因此最好安裝ubuntu11的系統時分配的儲存空間大於等於20G(Android系統比較大),記憶體配置大於等於1G(否則有肯能會編譯Android系統時出錯了)
    之前已經把Android核心檔案和Linux核心檔案分別拷貝到對應的Android檔案和Linux檔案下。
    正如你所看到的,Android 系統十分龐大,很多初學者都不能順利的成功編譯它,而且編譯一次所需的時間很長(1.5-4 小時,甚至更長),為了方便大家使用,我們特意準備好了現成的原始碼包,並且製作了 3 個指令碼分別用來編譯和建立 Andoid 系統:build-android、genrootfs.sh和 genrootfs-s.sh

在命令列執行:
 #cd /Android-2.3
 #./build-android
    就開始編譯 Android-2.3 系統,你需要等待很長的時間,建議開發 Android 系統不要使用虛擬機器編譯,使用多核的 CPU加真實的Linux 系統會快一些。 然後,再執行指令碼:

 #./genrootfs.sh
    就可以從編譯完的 Android 系統提取出我們需要的目標檔案系統了,最後會產生rootfs_dir目錄,,它和上面提到的 rootfs_android 內容是完全相同的。 提示:使用genrootfs-s.sh 指令碼,可以編譯出適用於串口觸控螢幕控制器的 LCD套餐。

編譯Linux核心方法:
    Android 所用的 Linux 核心和標準的 Linux 核心有所不同,但使用的方法和步驟是相似的;如果你對配置 Linux 核心不熟悉,建議你使用我們提供的預設核心配置。

   要編譯適用於 N43 型號 LCD的核心,請這樣使用預設核心配置:
 #cd /linux-2.6.36-android
 #cp config_android_n43 .config    ;注意 config前面有個”.”
 #make
   最後會在 arch/arm/boot 目錄下產生 zImage,我們把它重新命名為 azImage_n43 放入光碟片中,以便區分

   要編譯適用於 A70 型號 LCD的核心,請這樣使用預設核心配置:
 #cd /linux-2.6.36-android
 #cp config_android_a70 .config    ;注意 config前面有個”.”
 #make
   最後會在 arch/arm/boot 目錄下產生 zImage,我們把它重新命名為 azImage_n70 放入光碟片中,以便區分。

編譯Android系統時出現的問題和解決方案:
1、
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] Error 1

make: ***
解決方案:
gedit frameworks/base/libs/utils/Android.mk

LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)
修改為:
LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) –fpermissive

2、
make: *** [out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/noproguard.classes-with-local.dex] Killed

解決方案:
把虛擬機器ubuntu系統分配記憶體1G,有條件最好對於1G

3、
<command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror]

make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1

解決方案:
修改build/core/combo/HOST_linux-x86.mk 61行,將
HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0
修改成
HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0

相關文章

聯繫我們

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