Google 過去四年來對 Android 應用程式框架的貢獻巨大,可視為「資訊科技整合」的一個代表作,購併 Motorola Mobility Inc 後,除了媒體所討論的專利議題外,Google 更能從 Motorola Mobility 身上,學習到寶貴的軟硬整合經驗,這是更重要的進步。一般認為收購之舉是衝著專利而來。大家比較沒有注意到的是 IBM 也擁有許多作業系統專利,不久前,Google 也「一籃子」收購 IBM 專利,因此,Motorola 嫁進 Google 大門,專利議題應是主因。以下從「非專利」面分享一些個人看法,請不吝指教。
自有能力 vs 重度依賴
台灣硬體廠學習軟體的速度緩慢,對 Google 有很高程度的依賴。在 Google 購併 Motorola Mobility Inc 後,紛紛對 Android 的開放性提出質疑,並且認為 Motorola 將取得更多的 Android 資源,其它廠商或將淪為「二等公民」。
台灣硬廠對軟體的高度依賴性並不是現在才開始。從 Wintel 時代開始,就非常依賴微軟視窗作業系統,不過,由於當初時空背景的關係,微軟作業系統是整個 PC 標準重要環節,大家是一個 Ecosystem,因此沒有建立自有作業系統的必要性。
這個從小到大的習慣,開始帶來壞處。就像一個被寵壞的小孩子一般,硬體廠普遍認為 Google 提供完善的 Android 程式碼是順理成章的事情,有了完整的程式碼,以及適當程度的「保護」後,「大家才願意跟著玩」,這或許不是一個很健康的想法。如何建立自已的軟體技術能力,似乎少有人思考。
回歸自由軟體的精神
Google 對 Android 的投入與貢獻,不該被忽略。Android 的定位很清楚,有一份 AOSP 版本,Google 也不斷在內部開發更棒的新版本。AOSP 是 Google 在開放平臺與自由軟體的重要貢獻之一,這就是 Android Open Source Project 的目的,貢獻源碼,提供自由軟體,「但這並不表示 Google 有責任為硬體廠付出任何責任」,韓國三星電子近期強力要求旗下部門強化軟體競爭力,這才是台灣產業要認真思考的方向。
事實上,AOSP 僅只是 Google 對自由軟體的貢獻之一,而不是唯一。Google 也提供 AJAX 程式庫,也有免費的 CSS 字型,也支持 jQuery 等重要的自由軟體專案,「聽說 Google 將封閉 Android 程式碼」,並不是健康的想法。如果了解 Google 在自由軟體工程領域的貢獻,就會了解,「只是先關起門來把事情做好」,而不是對外關起大門。
朝向開放 API 搭配部份開放源碼
事實上,要取得目前最新版本的 Android 程式碼不是高牆。在 Android ecosystem 裡,Google 很清楚自已所扮演的角色:「Android Product Manager」,因此,Google 有責任了解廠商的「產品理念」,才能扮演好自已的角色。
封閉程式碼,與做好 Product Manager 的工作,格局差異太大,前者並不是大格局做法,實際上目前也未聽聞 Android 有這項計畫。個人看法是,Google 接下來應會加速開放 API 以及部份程式碼的腳步。過去 Android 產品是一種失控的狀態,為避免重蹈覆徹,完全開放源始碼短期可能性應不高。
有了底層的程式碼、HAL 技術架構等,透過軟體工程技術,將開放 API 整合至產品並不困難。開放 API 已足夠,並不需要完全開放源碼才能做產品。早在 Android 1.6 版時代,Google API 就以 Open API(封裝後的二進位程式碼)的形式提供在 AOSP 裡。
看看 Arduino、回頭想想自已
Arduino 是一個開放源碼的 I/O Board,可用來連接外部控制器或週邊裝置,如:馬達。Arduino 是一個知名的開放源碼專案,它做硬體,同時整合軟體並提供一個開發環境。這項硬體技術,對台灣的硬體廠來說,只是小兒科。
Google 於今年五月發表的 Android Open Accessory Development Kit(ADK)就是基於 Arduino 專案及其硬體。台灣的硬體技術水準很高,零件廠夠多夠大,但對 Android 的影響力卻不及 Arduino 專案,很明顯地是經理能力出現問題:缺乏開放平臺觀念、軟體與社群社交等能力。
Lession Learing
這二天有一些合作廠商,因 Google 購併 Motorola Mobility Inc 表現出不安,提出的許多疑問其實也很合理,但 Google 並沒有照顧硬體廠的責任。AOSP 是自由軟體的精神,儘快建立自已的軟體實力,靠自已最實在,就算基於 AOSP 也能做出好東西,一些主要的 Android 手機製造商已經學到這一課。
再者,台灣主要的硬體廠,也都早已取得 Android 3.x 程式碼,並不是無法取得最新的程式碼,只是過去太重度依賴 Google 的 Android 團隊,這是比較大的問題。如果連 Android 3.x 的程式碼都無法取得,封閉之說才有那麼一些道理。
上述想法並沒有任何預設主場,僅只是想法分享。過去幾年為許多台灣硬體廠提供 Android 技術服務,其實大家也都很有學習的企圖心,只是我們還需要一些時間,多一點正面想法,接著拭目以待囉。
Jollen's Blog 使用 Github issues 與讀者交流討論。請點擊上方的文章專屬 issue,或 open a new issue
您可透過電子郵件 jollen@jollen.org,或是 Linkedin 與我連絡。更歡迎使用微信,請搜尋 WeChat ID:jollentw