寫到這裡,已經忙了兩天的編譯android sources有點疲倦了
過程不斷的錯誤、除錯、google、問學長、被噹
直在是有苦難言阿
簡單說一下這幾天的編譯過程
前兩篇多多少少有一些錯誤
0xdroid這是我第一份看的資料,有點簡單所以很多步驟都省略了就是
第一步安裝java5,找不到套件嗎,增加來源到etc/apt/sources.list就行了
以下是按確定就能安裝java5的權限圖
$ sudo update-alternatives --config java
這行是如果你的系統內有兩個或以上的java且不同版本的話,用此選擇java5
第二步
Getting git:
$ sudo apt-get install git-core
安裝git-core
第三步
Getting repo:
$ curl -o ~/bin/repo http://android.git.kernel.org/repo
$ chmod a+x ~/bin/repo
會有錯誤訊息應該是沒創bin這個資料夾的緣故
第四步
Download the 0xdroid source code:
$ mkdir beagle-donut
$ cd beagle-donut
$ repo init -u git://gitorious.org/0xdroid/manifest.git -b BRANCH_NAME
$ repo sync
這邊主要是創個資料夾,然後是下載程式碼, BRANCH_NAME 這個阿是要讓你替換的
網站有提供幾個供讀者選擇。
下面的圖呢,由於我犯傻沒換,所以換來白眼與無言
基本上我是用下面這個
$ repo init -u git://gitorious.org/0xdroid/manifest.git -b beagle-eclair 成功的
至於另一個
$ repo init -u git://gitorious.org/0xdroid/manifest.git -b BRANCH_NAME -m mirror.xml
我會卡在87
這上篇提過就不提了,試過很多種方法出了很多錯,最後最後
$ repo init -u git://gitorious.org/0xdroid/manifest.git -b beagle-eclair
這行成功了。
第五步
Build 0xdroid from source
$ echo "TARGET_PRODUCT := beagleboard" > buildspec.mk
$ echo "INSTALL_PREBUILT_DEMO_APKS := true" >> buildspec.mk
這兩行會形成一個buildspec.mk的檔案。
NOTE: If you want to build DevKit8000 instead of Beagleboard,
replace the context "TARGET_PRODUCT := beagleboard" to "TARGET_PRODUCT := devkit8000".
由於我們的板子跟devkit8000差不多,所以也要改一下。
還有在make之前,需要光碟裡面diff檔抓到beagle-donut裡面來,還得作一下處理。
大概作一下處哩,詳請請google patch,簡單來說就是更新而已
第六步
$ make
但是但是,很不爭氣的他又卡住了
卡住的訊息為:target Dex: framework
這個馬上google大神幫了我一個忙,讓我得以安心make
他說呢,問題出在 Android 裡頭 Dalvik VM 的 dx 工具,
在進行 Java stack-based bytecode轉換為 Dalvik register-based dex 時,
透過 SSA form 作若干優化動作需使用大量的記憶體,在您的狀況來說,
很可能就是 host 端 JVM 耗盡系統資源,
致使 Linux 記憶管理機制得將相關 process 所中止。
解決方法可以是關閉同時使用的程式、加大 swap 來延緩問題,
或者修改 dx script:out/host/linux-x86/bin/dx 仔細看看 defaultMx 的設定,做出適度的調整,如 "-Xmx256M"
即可
最後make請耐心等待
留言列表