Android-x86 2.0 測試版

By cwhuang, 2010 年 01 月 16 日

Yi 已經釋出了 Android-x86 的最新測試版,這是基於 Android 2.0 (Eclair)的版本,距離上回的 1.6 版釋出已將近兩個月。之所以會拖這麼久,除了這段時間我們都比較忙碌外,最主要原因還是因為從 1.6 到 2.0 的變動相當大,但 Google 釋出的源碼僅是最後的 snapshot,中間沒有任何的修改歷程(changes log)。這造成我們 merge 上的許多困難。許多原本會動的東西都壞掉了,包括滑鼠、Wifi、Ethernet 和 suspend & wakeup 等,幾乎都得重新來過。

雖然經過兩個月的努力,問題仍未完全解決。比較重要的有:

  • 沒有 i915 的 3D 硬體加速
  • 雖然可連上藍牙耳機,但聲音出不來。
  • 錄影功能無法使用。

不過除此之外,在 Android-x86 1.6 版所擁有的功能在這個測試版應該都具備了。

當然這個版本也加入了一些新的特色。 Read more »

Android 還是開放源碼計劃嗎?

By cwhuang, 2010 年 01 月 10 日

關注 Android 開放源碼計劃(AOSP)的朋友應該會注意到,在 Google 的嚴密掌控下,Android 已經離開放源碼社群愈來愈遠。雖然形式上 Android 的確符合開放源碼的定義。但本質上,它是不折不扣的 Google 計劃,而非一個社群的計劃。從幾件事情上可以看出這樣的傾向:

  • Android 2.0 完全沒有發展歷程(git log / history)。
  • 其實根本沒有 Android 2.0 的源碼。目前 AOSP 上的版本是介於 2.0 到 2.0.1 之間的一個 “snapshot”。更遑論即將上市的所謂 2.1 版了。
  • 絕大部分社群送上去的 patches 都被忽略。從 eclair 之後似乎僅有五個 patches 被接受而已。
  • Project roles 頁面被修改,移掉大部分讓社群參與的字眼 (剛好被人抓包,把舊的頁面 diff 呈現在此)。
  • Google 的工程師不在 android.git.kernel.org 上工作。
  • 愈來愈多衍生的開放源碼計劃(android-x86, embinux, 0xdroid, rowboat, odroid, …),代表許多社群開發者已受不了 Google 的態度。

誠心的建議,Google 應該捫心自問,當初決定開放源碼的初衷是什麼? 到底要走向開放的市集模式,擁抱社群,還是走回更封閉的教堂模式,關起門來自己搞?

如果決定擁抱社群,便應該回歸開放源碼開發模式的基本精神,「儘早釋出、儘快釋出」,讓更多人有機會檢視 Android 的最新源碼,因為「在眾人面前,所有的錯誤都是淺顯的」(Linus 定律)。同時更應重視社群的力量,儘快的 review 社群所提出的修改建議,絕不可放著幾個月都不理。這樣有心貢獻的人心早涼了! 唯有在對的方向做對的事情,才能讓開放源碼的輪子順利轉動,帶起 Android 開放社群的蓬勃進步。

明天下午有機會應邀到台灣 Google 演講,正好把這些觀點與 Google 的工程師討論討論。投影片已公開在 Google docs 上:

參考:

Android-x86 多平台支援

By cwhuang, 2010 年 01 月 03 日

其實在 Android-x86 計劃開始之初,便已考量到儘量支援各式各樣不同的 x86 平台。在 Android build system 中一個 target 是指一項特定的產品。但 x86 平台有千百種產品,這樣的架構似乎並不很適用。只是一開始對 Android build system 系統也不是那麼熟悉,一時沒有更好的解決辦法。只好先沿用原本的 eeepc target,但其實並不是真的針對 eeepc,而包含所有可能的 x86 支援。反正先做再說,邊做邊改。

不過在更多開發者加入後,特別是加入了 q1u 這個 target 之後,這個問題已經到了必須解決的時刻。否則每一個 x86 target 都會有非常類似的檔案,這會造成維護上的很大負擔。

仔細研究 build system 後,發覺 target 之間是可以繼承的。例如大部分的 target 都繼承自 generic.mk 所定義的 generic target。仿照這樣的做法,我們可以定義一個 generic_x86 的 target,讓所有其它的 x86 target 來繼承。這樣做法有兩大優點: Read more »

OfficeFolders theme by Themocracy