StackDoc

StackDoc

當前位置: 主頁 > 編程語言 > .NET >

Android源碼下載與編譯之emulator與adb

時間:2012-05-18 23:42來源:Internet 作者:Internet 點擊:
    最近碰到一個問題,就是Android的emulator只能打開16個,在網上找到文章有說adb連接數量是16個的,但是沒說這個avd也只能16個(當然是在一台電腦上)。於是
    最近碰到一個問題,就是Android的emulator只能打開16個,在網上找到文章有說adb連接數量是16個的,但是沒說這個avd也只能16個(當然是在一台電腦上)。於是,看看官方文檔,自己從源碼裏找原因吧。不過先說明的是官方對於avd的數量說是沒有限制的,自己可以看看。後面我也會簡單記錄一下我所了解到的和簡單的分析情況。下面主要介紹自己下載Android源碼與單獨編譯emulator和adb的過程。
    Android源碼是我在出差的時候下的,直接把Android源碼的全部同步下來,反正是晚上開了就沒有管。記得原來在Windows下用Git單獨下的時候,那個麻煩的,而且如果對Android源碼樹沒有很好的了解的話,即使那样下載下來,用起來也是個問題。再說還有編譯呢,不是說不可以,但是這個工作量還不如你直接上Linux,所以建議安裝個虛擬機(如果直接Linux那就更方便了,官方建議Ubuntu10.04,更高也可以)還是老老實實下載,官方给出了詳細的下載文檔,懶得找的話,我给個鏈接:http://source.android.com/source/downloading.html;簡要說明一下步驟:
   1.(1)repo目錄
    創建運行repo(其實就是包裝好的git)的目錄,執行如下命令(弱弱的說下,可以把目錄建在自己想要的地方)
    $ mkdir ~/bin
    $ PATH=~/bin:$PATH
    (2)下載repo
    (弱弱的補充下,沒安裝curl可以先apt-get下,注意repo的目錄)
    $ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
    $ chmod a+x ~/bin/repo
    (3)創建源碼目錄並下載
    $ mkdir WORKING_DIRECTORY
    $ cd WORKING_DIRECTORY


    $ repo init -u https://android.googlesource.com/platform/manifest
    ($ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1 選擇執行,如果你已經確定自己想要下載的版本)
    $ repo sync
    (好吧,看着多線程下載!估計要等很久了)
    2.編譯環境搭建
    (1)按照官網安排是先搭建環境,再下源碼的。不過咱們編譯的時候再搭建環境也不錯啊。Python、git等的版本不說,首先提的是JDK版本(JDK 6 if you wish to build Gingerbread or newer; JDK 5 for Froyo or older. 如果只是想我這篇文章的目的,主要是adb和emulator的話,那麼建議直接下載JDK6,如果確實需要編譯整個目錄而且還是2.1及以前的,那麼按推薦JDK1.5)就用1.6吧,然後運行安裝(chmod +x 包名.bin),環境變量設置在~/.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:$J上面的路徑換掉,然後試下source ~/.bashrc和java
    (2)下載必要包
    看到官方文檔說是建議在64位系統上編譯,這個。。。。。。。,我沒有條件,只好現在我的虛擬機上繼續了。然後是安裝必要的包,說實話,具體需要哪些我是真的不知道,看着原來有人發的文章(参考1),編譯2.1的,就照着人家给的下載了:
    apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
    因为,我是需要在Linux下編譯windows下用的adb等,所以需要mingw32,這個看官方推薦的包和参考2可以知道。目前來看,還不用下官方推薦的那麼多,可能還沒有編譯Android系統內部源碼的原因。
    (3)編譯
    一般的文章說到這裏,都是在源碼目錄下 . build/envsetup.sh和choosecombo兩個命令,(當然後面是要運行的,而且默認的就可以)然後make,我這裏當然不用這样啦。我只是要那兩部分,也就是說兩個模塊,直接模塊編譯。執行上面那兩條命令。好了,准備工作好了,我們
    make USE_MINGW=y emulator 就可以了。再來個 
    make USE_MINGW=y emulator-arm 和(先運行make adb不然會出現No rule to make target `out/host/linux-x86/bin/acp'的問題。)
    make Use_MINGW=y adb

    可以再out目錄host下找到生成的.exe文件和兩個.dll文件,自己拿去tools下覆蓋(或者是plateform-tools)試試啦。我要說的是那麼這個模塊的名稱你是怎麼找到的???LOCAL_MODULE,還有那個参數自己在.mk文件夾下看看搜搜,其實我本來也是不知道的,人家寫了,自己找找,不過還是希望那些知道的人把怎麼知道的說出來,先謝謝啦!

    要上圖麼,好吧,要來真相,只给生成的目錄下的圖片:


    最後注明,本文出處:http://blog.csdn.net/w7849516230/article/details/7580947 聯系郵箱w.7849516230@163.com,因为發現搜索的時候,轉載我的網站比我的原文好找,而且還沒有出處,我比較討厭這样,自己看別人的文章的時候也希望找到出處,最好還能討論下的。

参考文:

1.Ubuntu 10.04環境下載&編譯Android-2.1_r2源代碼【20110527更新說明】 http://blog.csdn.net/jackyu613/article/details/5778646
2.在Linux下編譯Windows版本的adb和fastboot http://kaiyuan.blog.51cto.com/930309/555422


From:CSDN
頂一下
(0)
0%
踩一下
(0)
0%
------分隔線----------------------------
發表評論
請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
評價:
表情:
驗證碼:點擊我更換圖片
欄目列表
推薦內容