Android Symbia MeeGo Nokia Intel Apple RIM

智慧型手機開放平台眾所矚目
Android/MeeGo各據一方

2010-11-29
現今,百家爭鳴的智慧型手機市場中,手機作業系統(OS)占有舉足輕重的地位。無論是否採用Linux作業系統,開放原始碼發展(Open Source Developement)的嵌入式系統是大趨勢,而其使用平台更是焦點。
圖1 智慧型手機作業系統占有率
圖1為截至2010年第二季依照智慧型手機上的作業系統而統計的的市場分配圖,開放式平台的作業系統約占了六成,而蘋果(Apple)以及RIM等封閉式平台則約有三成的市場占有率。

採Java核心
Andorid加快程式開發

2005年Google購併採用Linux核心的開放性軟體平台Android開發公司,進一步改良Android軟體發展套件(Software Devlopement Kit, SDK)包含相關工具及應用程式介面(API),並使用Java語言在Android平台中開發應用程式。

2007年在眾多硬體廠商與Google共組的開放式手機平台聯盟(Open Handset Alliance, OHA)支持下,Android手機迅速成長。

根據國際研究暨顧問機構Gartner預測,2010年Android市場占有率將在全球排名第二,超越黑莓機(BlackBerry)製造商RIM及蘋果,並在2014年迎頭趕上龍頭諾基亞(Nokia)的Symbain。

Android採用Java-based架構,應用程式能在短時間內設計完成。2010年2月止,Android已有一萬九千多個應用程式上市,儘管數量上仍落後於排名第一的蘋果的十五萬多應用程試,但是其成長速度在市場最為顯著。

圖2為Android的基本系統架構,包含了紅色區塊中的作業系統,綠色區塊及黃色區塊的中介軟體(Middleware)和藍色部分的應用程式。

圖2 Android系統架構

應用程式
  以Java語言編寫的手機應用程式(Application),基礎如電話簿、日曆、簡訊、瀏覽器等,進階如諸多受歡迎的社群軟體Facebook等。

應用程式訊框作業
  訊框作業(Framework)提供應用程式開發者單一介面執行背景程式或重複使用應用程式所需要的服務管理元件。例如存取來自不同應用程式的資料(Content Provider)、狀態通知管理(Notification Manager)等。

函式庫
  Andorid提供許多C/C++的函式庫(Libraries)供開發者呼叫使用,例如標準C函式庫(Libc)與影像媒體播放有關的訊框作業、二維(2D)/三維(3D)圖形介的外觀管理員(Surface Manager)和開放圖庫(OpenGL)函式庫等等。

Android運行函式庫
  Android運行函式庫(Runtime Library)即為Java程式在執行時需要的虛擬機器(Virtual Machine),在此即是黃色區塊Android作業系統上的Java虛擬機器(JVM)--Dalvik。

Linux核心
  Andorid採用Linux核心(Kernel)2.6版本作為作業系統核心,例如最新的Android 2.2版本即以核心2.6.32為基礎。

諾基亞/英特爾撐腰 MeeGo別開生面

MeeGo為2009年由手機市場及個人電腦(PC)硬體市場占有率最大的兩家公司諾基亞及英特爾(Intel)結盟合作,隸屬在Linux下的開放式平台,前身分別是諾基亞的Linux部門Maemo及英特爾的Moblin兩大組織,實力不容小覷。

儘管同為Linux-based的開放式平台,MeeGo與Andorid仍有許多不同處。一般嵌入式系統可大略分為三部分,不同架構差異是在於命名的不同,圖3中MeeGo分為使用者經驗(UX)、中介軟體及作業系統基礎(OS Base)。

圖3 MeeGo系統架構

UX(User Exeprience)
  如同Android應用程式層的藍色區塊架構,值得注意的是,圖中顯示MeeGo並非只定位在手持式裝置上,小筆電也是其應用,甚至下一代的汽車娛樂資訊裝置(In-Vehicle-Infotainment, IVI)也將使用MeeGo作為發展平台。

中介軟體
  MeeGo應用程式介面意即Qt函式庫包含發展應用程式所需的使用者介面,應用程式設計師能透過此統一介面組織不同的中介軟體元件所提供的功能。而中介軟體與Android架構中的綠色區塊相同,提供獨立於硬體的服務與函式庫,此外,圖3的中介軟體元件也顯示許多目前的開放原始碼專案,例如oFono、GUPnP等。

作業系統基礎
  包含硬體抽象層(Hardware Adaptation Software)及Linux核心。

手機應用程式鍾愛Android MeeGo忠於開放原始碼精神

總體而言,Android和MeeGo的基本架構雷同,主要差異在於Android目前只專注於手持式裝置,而MeeGo定位於所有的嵌入式系統。Android透過Java VM來執行,而MeeGo透過Qt函式庫設計應用程式。Android已從Linux分開由Google自行獨立開發核心,MeeGo卻仍然在Linux的正式發布清單中。

從應用程式層級分析,Android之所以在短時間崛起,完整的應用程式發展介面為重要因素。表1列出兩者在建立「Hello World」程式開發階段的差異。

MeeGo之前為人詬病的繁複開發程序,因加入Qt Creator而有了顯著改善,開發速度已不亞於Andorid,然而手機應用程式開發社群仍獨鍾於Android。主要因素有二,其一為手機製造商的硬體支援,Android開發平台的取得性極高,不同於諾基亞目前只有一個N900平台提供開發者使用。其二則是開發者群組的經營,Google已從個人電腦市場上建立與外界開發者的互動,既有的Java程式便於植移至Android手機,Java開發工程師也成為Android開發者中的最大群組。

Java具有可攜性優勢,程式執行時才透過Java 虛擬機器將程式轉換為機械碼,所以程式編寫完後僅須要編譯一次即可,不必像在MeeGo中的以C/C++所編寫的程式必須針對不同的硬體平台做個別編譯的原始應用程式。

在程式執行效能方面,原始應用程式不須要透過虛擬機器作為中介,執行效能自然比Java好。針對這些先天上的優劣性,兩者其實也都透過各種不同的作法來改善,MeeGo透過Qt函式庫,即圖3的MeeGo應用程式介面將應用程式與硬體完全隔離,並透過單一發布的Code Baseline來維護所有的開放軟體,程式仍須要在不同硬體上編譯但是對於硬體上的相依性(Dependency)少了許多。

Android應用Java Trubo Machine提升了中介轉換的速度,原始開發套件(Native Development Kit, NDK)和Java原始介面(Java Native Interface)的使用,也補足了早期在原始應用程式方面的劣勢。

核心的發展,同樣採用Linux核心2.6版本作為平台開發基準,由於MeeGo的核心是由Linux Fundation負責管理,與Linux核心同步更新批次檔(Patch)。

此外,由Google負責管理發布的Android,雖然是開放原始碼,但已獨立於標準Linux的發布名單中,而且Android採取的是Apache許可證(Licnese)並非開放原始碼中廣泛引用的GPL授權方式,因此開放性不如MeeGo。

上述原因左右目前開放平台中應用程式開發市場(Mobile App Market)發展,儘管大部分手機生態系統廠商關注的不是開放性,而是應用程式以及使用者介面是否影響消費者購買,但是站在研發設計的觀點上,MeeGo還是比較合乎開放原始碼的精神。

與Linux核心同步發布的好處,在於許多Linux個人電腦上的應用程式幾乎可以不經過修改直接植移到MeeGo上,這是MeeGo在應用程式開發上的優勢。好比當程式設計師或駭客針對Andorid裝置進行需要root權限的操作時,須要透過類似iPhone中越獄(Jailbreak)的繁複手段來達成,看似挑戰,其實是其架構上的限制。

MeeGo只要安裝rootsh並於終端器執行sudo gainroot即可取得root權限,權限過於容易取得,似乎有安全性上的質疑,其實不然,需要安全保護的資料會透過其他機制來保障如TrustZone,開發平台的開放性與安全性並不是互相抵觸的兩個特性。

鎖定嵌入式市場 Linaro待顯身手

2010年6月由安謀國際(ARM)及晶片設計商所成立Linaro,瞄準嵌入式系統市場,將提供與MeeGo相同完全開放的Linux系統,採用安謀國際系統單晶片矽智財(SoC IP)授權的晶片,提供另一項全新且具有共通底層架構的Linux設計工具和環境。

有別諾基亞將MeeGo架構著眼於英特爾硬體平台,以及Android的核心只部分開放的特性,Linaro的加入將會是市場上另一股新興勢力。

綜觀智慧型手機開放性平台的發展,最初的宗旨在於發展技術,藉此降低開發和銷售行動裝置及服務的成本,透過一個真正開放的開發平台,讓所有參與的開發廠商,包括晶片製造商、手機製造商、行動系統商等,從硬體驅動程式、作業系統、使用者介面至應用程式中,加速整合的腳步。2009年擁有高成長的智慧型手機,其全球銷售量已經迎頭趕上筆記型電腦市場,開放性平台的議題及影響力也將由原本的個人電腦市場延伸至手機市場,在未來將逐漸在行動通訊市場中扮演關鍵的角色。

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!