久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    Ubuntu 10.04(64位)下載并編譯 Android 2.2 源碼[只有11條命令]

     開花結果 2010-11-18
    為了方便,我把所有操作寫成了命令,按順序(軟件安裝--源碼下載--編譯)執行成功即可:
    1. sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev 
        libx11-dev lib32readline5-dev lib32z-dev java-common unixodbc   
    2. sudo apt-get install sun-java6-jdk   
    3. cd   
    4. mkdir -p software/bin   
    5. curl http://android.git./repo >software/bin/repo   
    6. chmod a+x software/bin/repo    
    7. mkdir -p software/android/src/new  
    8. cd software/android/src/new  
    9. repo init -u git://android.git./platform/manifest.git -b froyo   
    10. repo sync    
    11. make -j4  
     
    ===================================================================================================================

    1. 前言

    本文敘述了如何從零開始搭建基于Google官方Android 2.2.1froyo源碼的開發環境,包括如何下載源代碼、編譯源代碼,以及在模擬器中運行編譯生成的鏡像。文中開發機是基于Ubuntu 10.04的,同樣適用于其他版本的Ubuntu現在需要弄清楚一下幾點,防止后面出現誤操作: 下載源代碼是用參數:repo init -u git://android.git./platform/manifest.git  -b  froyo (下載的是2.2.1版本,編譯環境操作系統必須32位的,jdk1.5版本---jdk1.5沒有64位版本)。如果是沒有帶參數的下載源代碼,將會下載所有的源代碼,編譯環境要求:操作系統64位,jdk1.6,(偶是20101015做)但很有可能會出現交叉編譯工具錯誤:“ /bin/bash: prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-gcc: 沒有那個文件或目錄 ”(實際上是有arm-eabi-gcc這個文件的,偶懷疑是版本問題--32位的,而環境要求是64位的—-- 下載全部代碼

        2. 下載JDK 1.5 (不建議此下載方式,防止配置環境參數出錯。建議用apt-get install方式,請跳轉到:第4

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

    可從Sun官網上下載:

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

    選擇平臺Linux,勾選同意許可協議:

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

    3. 部署JDK 1.5

       3.1 解壓縮JDK

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

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

    cd ~

    然后賦予該bin文件可執行屬性:

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

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

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

    跳過協議閱讀。

    最后一行:

    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版做應用開發,則系統中將同時存在JDK1.5JDK1.6 因此需要實現能夠在不同版本間切換。如果不使用JDK1.6,請做完1.5 的設置后跳至3.3節。

    這里使用update-alternatives命令實現。

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

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

    (sudo update-alternatives --install /usr/bin/jdk jdk /home/ynb/jdk1.5.0_22 255)

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

    然后再為JDK1.6版生成(如果有JDK1.6的話。不使用JDK1.6的請跳至3.3):

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

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

      3.3 配置JDK環境變量

    下面開始配置環境變量。

    在終端中執行:sudo 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

    該段代碼最好設置在文件的尾部。

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

    重啟系統請使用java –version檢查JDK是否 配置正確。

    4.apt-get install方式安裝JDK1.5

    Android 要求的 jdk 1.5,Ubuntu10.4的源里只有JDK1.6. 如果安裝了jdk1.6請先卸載

    $sudo  apt-get  remove  remove openjdk-6-jdk

    $sudo  apt-get  remove  remove openjdk-6-jre

    $sudo  apt-get  remove  remove openjdk-6-jre-headless

     

    安裝jdk1.5目前網上解決方法有兩種:
       解決方法一(建議) 安裝JDK1.5
      

      1 根據官方文檔里所說,源代碼的編譯必須使用JDK5才能編譯的了,所以這里偶使用jdk5
      2 需要先更新源,在終端里執行 sudo vim /etc/apt/sources.list
      3 source.list里把以下2行拷貝到文檔最后面:    

    deb http://us.archive./ubuntu/ jaunty multiverse

    deb-src http://us.archive./ubuntu/ jaunty multiverse

    deb http://us.archive./ubuntu/ jaunty-updates multiverse

    deb-src http://us.archive./ubuntu/ jaunty-updates multiverse

         保存退出。
      4 執行 sudo apt-get update 更新源.
      5 配置編譯環境并下載JDK5sudo apt-get install sun-java5-jdk
      解決方法二: 安裝JDK 1.6 , 修改Android源文件。
      1 安裝jdk 1.6,修改<src_top/build/core/make.mk>(如果2.0版本源碼請修改<src_top/build/core/main.mk>)
       在文件中搜索并分別把:
         java_version := $(shell java -version 2>&1 | head -n 1 | grep '[ "]1.5[. "$$]')
         javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1.5[. "$$]')
       兩行改成:
         java_version := $(shell java -version 2>&1 | head -n 1 | grep '[ "]1.6[. "$$]')
         javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1.6[. "$$]')
       即可。
      推薦使用第一種解決方法。

    5. 安裝其他必備組件

    在終端上,使用下面的命令安裝:(前面的123步驟都可以省略啦)

    sudo 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在前面已經單獨安裝過了,因此此處apt-get install命令行中沒有加入sun-java5-jdk
    6. 下載Android 源代碼

       6.1 安裝repo腳本

    首先安裝repo。在當前用戶:~ 錄下新建一個bin目錄。在終端中執行:

    cd ~

    mkdir bin

    然后,向PATH中添加bin 徑:

    export PATH=$PATH:~/bin

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

    curl https://android.git./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./platform/manifest.git -b froyo )
    (
    下載2.1_r2源碼

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

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

    (下載2.0源碼:
    repo init -u git://android.git./platform/manifest.git –b eclair )
    上面下載2.0時有個莫名其妙的問題
    ynb@ynb-pc:~/bin$ repo init -u git://android.git./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./platform/manifest.git -b eclair 就可以了)
    (
    如果能通過瀏覽器瀏覽到android源碼的主頁,但運行repo initrepo sync的時候,卻沒法下載源碼,形如:
    只需要把git開頭的地址改為http即可:
    [1]
    repo init -u http://android.git./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./"
                  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.imgemulator的文件系統,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版本,實際位置是/root/mydroid/out/host/linux-x86/sdk/android-sdk_eng.root_linux-x86。

    因為它比較常用,我們給它高優先級:

    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,執行:

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

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

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

    配置AndroidSDK環境變量。終端中執行gedit ~/.bashrc
    在文件最后添加下面三行:
    # set android environment
    export ANDROID_SDK_HOME=/usr/bin/ AndroidSDK
    export PATH=$ANDROID_SDK_HOME/tools:$PATH
    保存文件。在終端中執行source ~/.bashrc

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

    打開終端,執行android腳本:

    $android

    出現下圖所示窗口:

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

    NameAVD的名稱,隨便取,但只能包含字母和數字以及點、下劃線和連字符, 這里取名test

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

    SD CardSD卡。暫且不填,待需要時再設置。

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

    Hardware:使用默認即可

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

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

    emulator –avd test emulator @test

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 中文字幕亚洲人妻系列| 亚洲午夜无码久久久久蜜臀av| 国产精品情侣呻吟对白视频| 久热这里只有精品12| A男人的天堂久久A毛片| 亚洲欧美日韩中文字幕一区二区三区| 国产精品中文字幕二区| 又黄又硬又湿又刺激视频免费| 亚洲中文字幕国产综合| 免费国产VA在线观看视频| 99久久99久久免费精品小说| 午夜男女爽爽影院在线| 亚洲日韩一区精品射精| 九九在线精品国产| 无码国产69精品久久久久孕妇| 亚洲图片自拍偷图区| 亚洲春色在线视频| 欧美国产日韩在线三区| 国产精品高清中文字幕| 亚洲 另类 日韩 制服 无码| 国产精品一区在线蜜臀| 内射毛片内射国产夫妻| 男女高潮喷水在线观看| 四虎永久精品免费视频| 无码少妇高潮浪潮AV久久| 欧美一本大道香蕉综合视频| 污污污污污污WWW网站免费| 一本大道中文日本香蕉| 国产中文字幕日韩精品| 天干天干天啪啪夜爽爽AV| 无码人妻斩一区二区三区| 亚洲人成电影网站色mp4| 国产成人欧美日韩在线电影| 国语精品自产拍在线观看网站| 午夜无码区在线观看亚洲| 又粗又大又黄又硬又爽免费看 | V一区无码内射国产| 国产精品普通话国语对白露脸 | 男女爽爽无遮挡午夜视频| 久天啪天天久久99久孕妇| 久久综合九色综合欧洲98|