Android-x86 2.0 初體驗
在釋出 Android-x86 1.6 版之後,接下來我們的重點工作都擺在 merge Android 2.0 branch,也就是代號為 Eclair 的版本上。
看版號也可以猜到,從 1.x 到 2.0 想必變動相當的大。的確,這讓我們在 merge 上吃足了苦頭。光是想辦法通過編譯,就已經十分困難。部分的修改只好暫時拿掉,日後再想辦法加上。包括在 frameworks/base 的 ethernet、部分 wifi 程式碼,以及電池狀態等。
好不容易通過編譯後,接下來開機起來就遇到問題。先是 mediaserver 會 crash。Yi 追蹤到最後,發覺是 android 的 linker 有問題,在處理 weak symbols 上似乎有瑕疵。但儘管找到了修正的方法,我們仍不明白,為何先前的 1.6 版不會產生同樣問題?
解決了 linker 的問題,在啟動 zygote 時又發覺 preloaded-classes 找不到的問題。所幸這問題比較容易,就照先前的方法,將 PhoneWindow 改為 MidWindow 即可。如此,終於讓我在 virtual box 上見到 Eclair 的第一個畫面。呵呵!
Eclair on Virtual Box
Eclair 設定畫面
已將所有修改 push 到 git server 上。取得的方法仍跟從前是一樣:
$ repo init -u git://git.android-x86.org/manifest.git $ repo sync |
在 SourceForge mirror 上也可取得:
$ repo init -u git://android-x86.git.sf.net/gitroot/android-x86/manifest.git $ repo sync |
但這也只是 Android-x86 2.0 的起步而已。事實上我僅在 virtual box 的 uvesafb 模式下成功啟動過。在真正的 Eee PC 上仍舊跑不起來。不過若你是開發者,有興趣一起幫忙 debug,歡迎下載 source code 回去研究。
