android 編譯

 1 我的系統是Ubuntu 8.04
    * 2 系統上必須安裝以下工具(摘自網上的資料):
      
       sudo apt-get install build-essential
       sudo apt-get install make
       sudo apt-get install gcc
       sudo apt-get install g++
       sudo apt-get install libc6-dev
      
       sudo apt-get install flex
       sudo apt-get install bison
       sudo apt-get install patch
       sudo apt-get install texinfo
       sudo apt-get install libncurses-dev
      
       sudo apt-get install git-core gnupg  //(gnupg系統可能已自帶)
       sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl
       sudo apt-get install ncurses-dev
       sudo apt-get install zlib1g-dev
       sudo apt-get install valgrind(可選,有21M大,我覺得一般人是用不到的)
       sudo apt-get install python2.5 (實際上不用裝,Ubuntu 8.04 已經自帶)
       sudo apt-get install sun-java5-jdk
      
       注意:
       a. 不要用 sun-java6-jdk, 不然在make sdk, 具體來說是make doc這一步中, 遇到這個錯誤:
         Docs droiddoc: out/target/common/docs/dx
         javadoc: error - In doclet class DroidDoc, method start has thrown an
         exception java.lang.reflect.InvocationTargetException
         com.sun.tools.javac.code.Symbol$CompletionFailure: class file for
         sun.util.resources.OpenListResourceBundle not found
       b. 網上資料說需要設置環境變量, 但我並沒有設置:
        export ANDROID_JAVA_HOME=$JAVA_HOME
       
       c. 網上並沒有提及要安裝ncurses-dev, 但安裝之前我編譯過程中會出現編譯錯誤.
      
    * 3 建立android源碼的存放目錄
       $ mkdir ~/open_src
       $ mkdir ~/open_src/android
       $ cd ~/open_src/android
       $ mkdir bi
    * 4 下載repo腳本,放到~/open_src/android/bin目錄下,加上可執行權

          $ curl http://android.git.kernel.org/repo > repo
          $ sudo mv repo ~/open_src/android/bin
          $ sudo chmod a+x ~/open_src/android/bin/repo

    * 5 在源碼存放目錄android中執行
       $ ~/open_src/android/bin/repo init -u git://android.git.kernel.org/platform/manifest.git
       //中間會提示輸入電子郵件什麼的,如果你打算要提交patch的話,用google accounts註冊過的郵箱
      
    * 6 在android目錄中執行repo sync就可以開始下載源碼了.
       我們也可以從其他地方把源碼複製到android目錄, 而我正是這麼做的.
    * 7 編譯源碼, 並得到~/open_src/android/out 目錄
       在命令行執行make命令:
       $make
       這是一個很漫長的過程, 等吧......
    * 8 測試運行
       8.1 先設置環境變量:
        打開~/.bashrc文件, 並在最後添加下面兩行:
        export PATH=$PATH:~/open_src/android/out/host/linux-x86/bin
        export ANDROID_PRODUCT_OUT=~/open_src/android/out/target/product/generic
      
       8.2 運行模擬器:
        emulator --debug-init -skin QVGA-L  //可能會提示unknown option: --debug-init, 去掉--debug-init即可
        或者直接執行emulator, 這樣使用的是默認的皮膚
      
       如果最後能進入到系統並看到一個大時鐘, 說明就大功告成了.
      
      
    * 9 後續編譯:

           先在android目錄下執行
           $ . build/envsetup.sh
           然後你就會多出幾個可用的命令。在改了Contacts聯繫人項目後,可以簡單的執行一下命令來單獨編譯這個部分:
           $mmm packages/apps/Contacts/
          爲了可以直接測試改動,需要生成新的system.img,在android目錄下執行:
           $ make snod
          當然,如果你改動的是emulator或者其它外圍相關的,而非系統內部的東西,就不只是要重新生成system.img了

發佈了210 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章