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

    Ubuntu環境下 Android平臺源碼的下載及編譯

     tracyf 2013-05-30
    Ubuntu環境下 Android平臺源碼的下載及編譯
    2012-02-02 17:08:56     我來說兩句      
    收藏    我要投稿
    本文介紹Ubuntu環境下Android源碼下載及編譯方法,Android源碼是什么?Android源碼就是指Android平臺和軟件源碼,不單指Linux內核Kernel,我們常說的Linux Kernel在這個Open source project里,只是其中的一個組成部分。那么我們什么時候需用到Andriod源碼呢?添加修改驅動、固化APK應用、定制OS、權限及服務修改或固化等等,大都需要修改到Android源碼,當然了做單純的上層APK開發也可以使用,Android源碼比較大,大概有3G+(不包含Linux內核),所以大家在下載前已經把磁盤空間配置好,免得浪費一個晚上時間。
     
     
    以下是自測環境情況:
     
    Ubuntu 10.10 x86
    Android 2.3
    主要參考網址:
     
    Android源代碼官方網站:http://source.
     
    編譯參考1:http://source./source/initializing.html
     
    編譯參考2:http://source./source/downloading.html
     
    編譯參考3:http://source./source/building.html
     
    編譯參考4:http://source./source/building-devices.html
     
    下面就把android源碼在ubuntu 10.10上下載、編譯過程匯總一下,官方文檔比較詳細的,本文以摘要匯總補充為主,如仍有問題盡量參考官方網頁或留言。
     
    一、初始環境搭建
    1、安裝JDK
    下面是安裝Java 6的命令格式,按照順序在終端中執行:
     
    Java 6(for android 2.1+):
     
    $ sudo add-apt-repository "deb http://archive./ lucid partner"
     
    $ sudo add-apt-repository "deb-src http://archive./ubuntu lucid partner"
     
    $ sudo apt-get update
     
    $ sudo apt-get install sun-java6-jdk
     
    假如你想切換JAVA版本(安裝多個JAVA版本時),輸入如下指令:
     
    sudo update-alternatives --config java
     
    sudo update-alternatives --config javac
     
    使用如下指令查看當前的Java版本號:
     
    java -version
     
    補充:如何在兩個版本的java jdk中切換
     
            
     
    由于開發需要,我得安裝java5和java6在ubuntu上,如何從一個版本的java切換到另外一個版本?update-java-alternatives 可以幫你實現這個功能。
     
    你可以使用update-java-alternatives -l 來查看已經安裝的jdk版本。
     
    dallas@dallas-desktop:~/work$ update-java-alternatives -l
    java-1.5.0-sun 53 /usr/lib/jvm/java-1.5.0-sun
    java-6-sun 63 /usr/lib/jvm/java-6-sun
     然后可以使用update-java-alternatives -s xxx來選擇需要使用的jdk版本
     
    update-java-alternatives -s java-6-sun
     
       
    2、安裝編譯工具
    以下命令,一次執行全部需要的編譯工具安裝
     
    $ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev libx11-dev libreadline5-dev libz-dev libgl1-mesa-dev
     
    天緣在測試時使用上面的配置,似乎沒發現缺少什么,如果缺少某個軟件包,可使用命令再單獨補充安裝,比如安裝libc6-dev-i386,命令如下:
     
    sudo apt-get install libc6-dev-i386
     
    二、下載Android源碼
    3、創建工作目錄
    進入工作目錄(比如works),創建bin目錄:
     
    mkdir ~/works
     
    mkdir ~/works/android_dev
     
    cd ~/works/android_dev
     
    mkdir bin
     
    4、安裝repo版本管理工具(基于git基礎開發,便于git資源管理)
    curl http://android.git./repo > ~/works/android_dev/bin/repo
     
    cd bin
     
    chmod a+x repo
     
    關于repo更多參考:http://source./source/version-control.html
     
    5、準備下載Android源碼
    cd ~/works/android_dev
     
    ./bin/repo init -u git://android.git./platform/manifest.git
     
    這里默認下載最新的的版本(2.3),如果下載其它版本,請使用類似下面命令(后面為版本簡稱):
     
    repo init -u git://android.git./platform/manifest.git -b cuccake
     
    6、配置repo賬戶
    git config --global user.email "[email=abc@gmail.com]abc@gmail.com[/email]"
     
    git config --global user.name "ABc"
     
    7、開始下載android platform的源代碼
    ./bin/repo sync
     
    由于android 的源碼很大,現在新版本的完整源碼已經高達3G 以上,都是從GG官方下載,速度很慢(時間大約要一個晚上),執行后可以回家睡覺或出去通宵均可,有一點需注意在下載之前一定要確保你的磁盤可用空間足夠。
     
    如要下載kernel(即Linux內核源碼):
     
    $repo sync kernel
     
    8、添加公鑰
    $ gpg --import
     
    該命令是交互式導入公鑰,參照Google官方說明,這個公鑰是用來簽名TAGS以表明該版本為RELEASE版本(這里翻譯似乎有點問題,原話是The key is used to sign annotated tags that represent releases)這一步不執行仍時可以正常編譯的,但如編譯Release版本時,建議加上,gpg(GNU Privacy Guard)是個開源加解密軟件,交互導入密鑰參考上文的官方downloading.html這個頁面,還可參考文末地址。
     
    9、選擇版本
    $ git tag -v tagname
     
    只需選擇版本就可以了,是普通版還是精簡版或是其它,直接敲數字和回車就可以了。
     
    三、編譯Android源碼
    10、更新環境變量(選擇編譯目標)
    source build/envsetup.sh
     
    11、選擇編譯目標對象
    命令格式:BUILD-BUILDTYPE,其中BUILD和BUILDTYPE可參考官方網頁【編譯參考3和編譯參考4】。命令如果不支持或打錯會有提示信息。比如:
     
    lunch full-eng
     
    其它命令如,
     
    lunch full_crespo-userdebug
     
    匯總格式如下:
     
    lunch (generic,full,full_crespo,crespo4g,passion)-(user,userdebug,eng)
     
    上面是默認的設置,如果需要針對開發用機,可以選擇使用source build/envsetup.sh命令查看,Android 2.3代碼支持htc,sumsung等三款目標機型。更多請參考上文提及的官方網頁,官方提到Nexus S和Nexus s 4G是Android開源項目的推薦用機,而Nexus One只是試驗用機且不被支持(何意?原生代碼編譯后無法燒到Nexus One??)。
     
    12、編譯Android源碼
    make -j4
     
    注意:該指令是帶杠的jn(起初天緣總是不能運行,就直接用make了,三天后才發現原來丟了個杠杠*_*),按照官方介紹,后面這個-jn是你機子CPU數*核心數*單CPU線程數*(1或2),編譯時間大概40分鐘-2個小時,看機子性能了,最終編譯結果在:
     
    ~/works/android_dev/out
     
    另外,編譯之前建議把/works/android_dev整個目錄備份一下,下次如果重裝系統,可以直接拷貝過來使用,再編譯時可能需要設置一下權限(chmod -R 777 android_dev),否則可能錯誤多多。
     
    四、運行Android虛擬機
    13、先設置環境變量
    指令如下:
     
    export ANDROID_PRODUCT_OUT=/works/android_dev/out/target/product/generic
     
    設置完成后,先logout退出,再login登錄進來即可更新環境變量。
     
    注意,這里的環境變量設置也可以起初放到系統的配置文件里,.bashrc,天緣實測好像就這么一句就OK了,網上有說要設置如下幾個(如果運行有問題時可以嘗試使用,指令中部分路徑可能需替換成你自己的設置):
     
    export ANDROID_DIR=~/works/android_dev
     
    export ANDROID_PRODUCT_OUT=${ANDROID_DIR}/out/target/product/generic
     
    export ANDROID_PRODUCT_OUT_BIN=${ANDROID_DIR}/out/host/linux-x86/bin
     
    export PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}:${ANDROID_PRODUCT_OUT};
     
    14、運行編譯結果
    進入android_dev/out/host/bin/目錄下,然后運行:
     
    emulator --debug-init -skin QVGA-L
     
    或:
     
    ./emulator
     
    即可顯示機器人界面。
     
    補充:
     
    映像編譯成功后會在目錄~/works/android/out/target/product/generic 下產生一些image文件ramdisk.img system.img userdata.img android-info.txt,關于這些映像使用,后面文章會介紹。

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

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 无码人妻斩一区二区三区| 日韩精品人妻av一区二区三区| 色老头在线一区二区三区| 欧美国产日产一区二区| 国产精品电影久久久久电影网 | 亚洲熟妇无码一区二区三区| 男女扒开双腿猛进入爽爽免费看 | 成午夜福利人试看120秒| 无遮挡H肉动漫在线观看| 欧美高清狂热视频60一70| 国产欧美日韩VA另类在线播放| 欧美乱妇高清无乱码免费| 色综合久久久久综合99| 亚洲av免费成人在线| 熟睡人妻被讨厌的公侵犯| 久久精品国产99国产精品严洲| 亚洲国产AV无码一区二区三区| 中文字幕亚洲人妻一区| 无码国产精品一区二区免费式芒果| 亚洲最大成人在线播放| 精品一区二区三区自拍图片区| 国产明星精品无码AV换脸| 国产精品女视频一区二区| 免费播放一区二区三区| 日本一区二区不卡精品| 成熟丰满熟妇高潮XXXXX| 日本XXXX色视频在线观看免费不卡 | 久天啪天天久久99久孕妇| 中文字幕在线精品人妻| 又大又粗又硬又爽黄毛少妇 | 国产欧美日韩亚洲一区二区三区| 黄又色又污又爽又高潮动态图| 欧美老熟妇乱子伦牲交视频| 四虎永久精品在线视频| 日日碰狠狠添天天爽无码| 一二三四免费中文字幕| 国产综合久久99久久| 色屁屁WWW免费看欧美激情| 国产成A人片在线观看视频下载| 日本高清一区免费中文视频| 精品国产成人A区在线观看 |