android froro 編譯

來源:互聯網
上載者:User

 

本次編譯過程主要參考官方文檔(http://source.Android.com/download)

 

1、安裝一些環境

  1. sudo apt-get install build-essential  
  2.  sudo apt-get install make  
  3.  sudo apt-get install gcc  
  4.  sudo apt-get install g++  
  5.  sudo apt-get install libc6-dev  
  6.    
  7.  sudo apt-get install patch  
  8.  sudo apt-get install texinfo  
  9.  sudo apt-get install libncurses-dev  
  10.    
  11.  sudo apt-get install git-core gnupg  
  12.  sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl  
  13.  sudo apt-get install ncurses-dev   
  14.  sudo apt-get install zlib1g-dev  
  15.  sudo apt-get install valgrind  
  16.  sudo apt-get install python2.5 

安裝java環境

  • sudo apt-get install sun-java5-jre sun-java5-plugin sun-java5-fonts sun-java5-jdk 
  • 如果安裝失敗,可以去JAVA官網下載JDK1.5的安裝包(http://java.sun.com/javase/downloads/5u22/jdk
    )

     

    2、設定環境變數 (如果是安裝JAVA官網的JDK,可以跳過了)

    vim ~/.bashrc 

    在.bashrc中新增或整合PATH變數,如下

    1. #java 程式開發/啟動並執行一些環境變數 
    2. JAVA_HOME=/usr/lib/jvm/java-5-sun  
    3. JRE_HOME=${JAVA_HOME}/jre  
    4. export Android_JAVA_HOME=$JAVA_HOME  
    5. export CLASSPATH=.:${JAVA_HOME}/lib:$JRE_HOME/lib:$CLASSPATH  
    6. export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin  
    7. export JAVA_HOME;  
    8. export JRE_HOME;  
    9. export CLASSPATH;  
    10. HOME_BIN=~/bin/  
    11. export PATH=${PATH}:${JAVA_PATH}:${JRE_PATH}:${HOME_BIN};
       
    12. #echo $PATH; 

    最後,同步這些變化:

    source ~/.bashrc

     

    3、編譯Android源碼,並得到~/project/Android/cupcake/out 目錄

    進入Android源碼目錄:

    make

    這一過程很久(2個多小時)

     

     

    4、在模擬器上運行編譯好Android

     

         Android SDK的emulator程式在Android-sdk-linux_x86-1.0_r2/tools/下,emulator是需要載入一些image的,預設載入Android-sdk-linux_x86-1.0_r2/tools/lib/images下的kernel-qemu(核心) ramdisk.img  system.img  userdata.img

     

        編譯好Android之後,emulator在~/project/Android/cupcake/out/host/linux-x86/bin下, ramdisk.img  system.img  userdata.img則在~/project/Android/cupcake/out/target/product/generic下

    cd ~/project/Android/cupcake/out/host/linux-x86/bin

     

    增加環境變數

    vim ~/.bashrc

     

    在.bashrc中新增環境變數,如下

    直接make Android源碼時,並沒有make linux kernel。因此是在運行模擬器,所以不用編譯 linux kernel。如果要移值Android,或增刪驅動,則需要編譯 linux kernel

    linux kernel的編譯將在以後的文章中介紹。

     

    6、編譯模組

    Android中的一個應用程式可以單獨編譯,編譯後要重建system.img

    在源碼目錄下執行

    . build/envsetup.sh (.後面有空格)

     

    就多出一些命令:

  • - croot:   Changes directory to the top of the tree.  
  • - m:       Makes from the top of the tree.  
  • - mm:      Builds all of the modules in the current directory.  
  • - mmm:     Builds all of the modules in the supplied directories.  
  • - cgrep:   Greps on all local C/C++ files.  
  • - jgrep:   Greps on all local Java files.  
  • - resgrep: Greps on all local res/*.xml files.  
  • - godir:   Go to the directory containing a file.

    可以加—help查看用法

    我們可以使用mmm來編譯指定目錄的模組,如編譯連絡人:

     

     

    mmm packages/apps/Contacts/

     

    編完之後產生兩個檔案:

  • out/target/product/generic/data/app/ContactsTests.apk  
  • out/target/product/generic/system/app/ Contacts.apk 

     

    可以使用make snod重建system.img

    再運行模擬器

     

    make sdk

     

     

    7、編譯SDK(我是使用JAVA JDk 安裝包)

    1. #java 程式開發/啟動並執行一些環境變數  
    2. export Android_PRODUCT_OUT=~/project/Android/cupcake2/out/target/product/generic  
    3. Android_PRODUCT_OUT_BIN=~/project/Android/cupcake2/out/host/linux-x86/bin  
    4. export PATH=${PATH}:${Android_PRODUCT_OUT_BIN}; 

    最後,同步這些變化:

    1. source ~/.bashrc  
    2. emulator -image system.img -data userdata.img -ramdisk ramdisk.img 

    最後進入Android案頭,就說明成功了。

    out/host/linux-x86/bin下產生許多有用工具(包括Android SDK/tools的所有工具),因此,可以把eclipse中Android SDK的路徑指定到out/host/linux-x86/bin進行開發

     

    補充:如果在windows下使用SDK,則需要在windows中轉變原有的SDK資料。詳細請查考。

     http://blog.csdn.net/happyhell/archive/2010/07/13/5732062.aspx

     

     

     

    8、編譯linux kernel --- 進行中中。

  • 聯繫我們

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