由Google所推出的Android作業系統之所以能在這短短幾年內迅速崛起,挾其開放性和眾多的手機平台硬體支援,是使其發展如此迅速的主要因素。
但是,這樣的Android生態系統(Ecosystem)中,背後潛藏的問題在Android不斷改版的情況下逐漸浮出檯面,也就是為人所知Android Fragmentation的不一致性。本文將針對此問題深入探討,並提出其對系統開發者、應用程式開發者,甚至使用者的影響。
手機市場上,蘋果(Apple)iOS與Google Android的戰場,在過去幾個月以來延燒至平板裝置市場。對於誰會主宰這個新興市場一直有不同的立場出現。
認為iPad會出線的分析都認為,Android Fragmentation的特性會是讓製造商對於開發Android裝置裹足不前的主因。
舉例來說,在手機遊戲市場中最熱門的一款遊戲Angry Bird,其研發公司Rovio日前於其官方網站公告一個針對Android手機使用者的道歉信函中提出,對無法支援許多Android手機的部分深感抱歉,並會針對這些裝置提出一個新版本以供使用者使用。甚至,連Apple的執行長史帝夫.賈伯斯(Steve Jobs)都出招抨擊Android的這項致命傷。這些例子都是因為Android不一致特性衍生出的不利消息。
不一致性讓相容度打折扣
由軟體平台的角度來看,不一致性通常指的是當有別於原始版本的其他各種版本急劇擴增時,將不同版本合併或是並存後所衍生出來的問題。平台的不一致性將導致各軟硬體的相容性大打折扣,因為專為某一版本設計出來的軟體極有可能無法在其他版本中運行。
Linux平台由於模組化和原始碼開放的特性,使其特別容易造成不一致性的問題發生。所幸,在個人電腦(PC)上發行Linux套件(Distribution)的組織通常在版本發布前已經做過各種相容性測試、套件管理以及軟體版本整合等等,所以在個人電腦平台上的應用程式發展較不會因此受限。
然而,相對於個人電腦平台較為複雜的手機平台上,不一致性的問題則顯而易見。不同的顯示解析度、有無實體鍵盤等因素,都是軟體設計能否相容於不同硬體的變數。
不過,Linux的開放加上手機平台的特性所造成的不一致性影響並不大,例如在MeeGo平台中此問題則不曾被嚴重抱怨過。
造成Android不一致性如此明顯的原因在於,過低的門檻讓幾乎所有手機製造商和系統商的競相投入研發人力。為了有別於其他競爭業者的產品,各家廠商會在自行在Android裝置加上許多客製化的調整,各家廠商各有專有的介面或軟體,例如宏達電的HTC-Sense、三星(Samsung)的Touch-Wiz和摩托羅拉(Motorola)的Moto-Blur等。隨著產品及版本的衍生,越來越多的硬體相容、軟體效能等不一致性的問題也逐一產生。
由於實際產品研發速度永遠快於產品上市時間,這樣的版本相容性問題在科技產品中是無從避免的。任何產品在上市後的一段時間,即會面臨淘汰或改版的現實。
然而,會在Android裝置上被突顯出來的另一個主要的原因,在於Android的改版發行速度太快。手機製造商或系統商所要面臨的挑戰即是,其軟體研發部門除了要將最新版本的Android整合在未來產品中,同時還要盡可能地為已出貨的產品提供軟體升級服務。
由圖1中可知其更新版本之迅速,短短兩年內至少已經有六個主要版本的更新,這在其他作業系統的版本發行中是較為罕見的現象,遂導致一個奇怪的現象發生:當廠商推出一款新機上市時,出貨的Android OS版本已經比實際上的最新版本舊了好幾版。
|
圖1 Android現行版本發行歷史 |
不一致性已影響消費選擇
由Android官方網站所提供有關Android版本分布的最新資料(圖2~3)可知,主流版本在市面上只占五成左右的市場。由此得知,仍有非常多的廠商所發行的Android產品是無法跟上Google實際發行Android的腳步。其原因就在於手機廠商須要衡量本身的研發經費,通常主要都放在最新產品的研發與整合。然而,在Android產品上,由於市場上流動的產品需求,就必須花費額外的研發人力做軟體的更新服務,對廠商而言,這是筆龐大額外的研發經費。
|
資料來源:developer.android.com 圖2 Android版本分布現況 |
|
資料來源:developer.android.com 圖3 Android歷史版本分布 |
Android因版本發布步調所產生的不一致性問題,其實已影響到整個生態系統的每一個環節。製造商與系統商只能盡量跟上Android最新版本的發布速度,減少舊有版本維護的研發人力。
而Android Market上所有應用程式開發者,為了避免測試不完的平台,只能取捨市場上最受歡迎的少數機種,例如從宏達電、三星及摩托羅拉中各取一款內建Android 2.2的手機作為其發展及測試平台;而對於最終端的消費者,為了避免成為廠商的免費測試人員,最好的選擇其實也與App開發商一樣,購買市場上的主流產品。
Google推CDD加以因應
面對以上的種種問題,Google所提出的解決方案為相容性定義文件(Android Compatibility Definition Document, CDD),一個定義相容標準平台的文件,Google利用此文件來管控Android Market中的裝置廠商,產品必須要符合此相容定義的規範,才能獲得加入Android Market的授權。
舉例來說,在這個文件中明白指出任何的Android產品必須具有以下硬體元件:觸控面板、藍牙接收器、相機及全球衛星定位系統(GPS)。任何產品若不含其中任何一項硬體元件,即不相容於Android,亦即不能在Android Market中上市。
另外,Google提供一套工具程式--相容性測試套件(Compatibility Test Suite, CTS),用內建超過兩萬個的各種測試項目在產品上實際運作,以檢測是否能在Android上相容。廠商在產品發展過程中執行此工具程式,盡可能地及早發現並更正任何的程式臭蟲(Bug),以期在產品上市時能夠將各種問題減少到最低。
Google提出的這些相容性規格清楚地交代手機製造商在產品研發過程中所須遵循的規範,跨平台的硬體相容性問題的確會因此而減少,可以說橫向的不一致性因此會有效收斂。但是縱向來看,過多的發行版本,還是讓廠商無所適從。
一年一版才是根本之道
雖然有Android的支持者認為這是Android開發的必要「過程」而非「不一致」,也有Google的人員發布「Android Fragmenation並不是個問題」的部落格文章,試圖澄清外界的疑惑。但是,卻有更多來自各地的聲音不斷地突顯這個問題。
支援平板裝置的Android 3.0(Honeycomb)在今年的美國國際消費性電子展(CES)展中大放異彩,獲得一致的好評,但背後可以看到大部分的平板裝置製造商為了搶先上市,不得不先推出非為平板裝置設計的先前版本,例如Android 2.2或Android 2.3。Android的大老闆Andy Rubin曾經提及,將來的版本會邁向一年一個版本的目標,可以預料的是,如果這樣的計畫不盡早實現的話,加入平板裝置戰局的Android將會面臨來自各界更大的挑戰。