今日Android平台的應用發展 智慧應用 影音
工研院
Event

今日Android平台的應用發展

  • DIGITIMES企畫

美商美普思科技(MIPS)首席行動架構工程師Amit Rohatgi
美商美普思科技(MIPS)首席行動架構工程師Amit Rohatgi

身為非蘋陣營的主流Android平台,由於平台版本的零散化,侷限了App應用廠商的移植性,微處理器大廠MIPS致力於與Google以及OEM廠商通力合作,迎合Android市集加入完善的計費機制、更安全且符合數位版權防護機制、更開放的多樣化架構選擇,以及僅需撰寫一次程式碼就能在各版本平台執行的便利性,同時MIPS也致力於提供Android裝置生態下另一個低成本、高性價比的新選擇…

平台可移植度成為ISV開發新思維

美商美普思科技(MIPS)首席行動架構工程師Amit Rohatgi,提到當今Android平台已可以支援MIPS、Intel以及ARM等多樣化的處理器架構,有可能達到近100%的Apps程式碼移植性:使用Andorid核心函式庫的Dalvik Virtual Machine(虛擬機器),約有80~85%的Java可以被移植,另外約有15~20%的Java則需要改以Android原生開發套件(Native Development Kit;NDK)重新編譯,即便有0.1%的Java用到Renderscript函式也一樣可以被移植(但這不是今日主題)。依據性能上的需求,有些內容可以在Java虛擬機器執行,有些則是原生碼型態執行。當前Java程式碼開發朝向可移植為思維,每個程序有其獨立專屬的虛擬機器,而轉譯成Dalvik Byte Code(dex)格式的Java程式碼具備無硬體架構相依性,可以完全移植到MIPS、Intel以及ARM等架構。

目前MIPS、Intel或ARM均使用NDK內的標準gcc和仿生的libc做代碼編譯。允許使用C/ C ++函式庫,並藉由Java原生介面(JNI)或直接原生執行的兩種方式加速。GooglePlay市集已建立好自動化的架構過濾機制,讓各種不同架構的智慧手機、平板電腦,只會下載到對應於該架構所開發的Apps。

另外透過Java原生介面(JNI)的方式,原生類別(Native class)的程式碼,可藉由Android Java classes利用System.loadLibrary來呼叫執行,經由checkJNI也可以做偵錯的支援。使用JNI的優點在於程式碼可重複使用,某些情況下會增加效能,缺點則是增加撰寫的複雜度,程式碼也有限定架構的相依性問題。

另一種提昇效能的方式,就是透過Android框架的NativeActivity類別,開發者可以被知會返回呼叫執行週期,開發者也可以負責實作當事件發生(如onCreate()、onStart()、..etc)時的返回呼叫函式;除了廣播收音機這部份之外,其他服務與內容供仍需要用JNI原生程式碼。

今日Android平台開發上的挑戰

Google工程副總裁Andy Rubin的願景,是在Android平台上建立一個統一的App生態系統。但當今Android平台開發上所面臨挑戰,像開發者面對版本零散化(2.3/3.0/4.0),需要有統合一致化(Unification)的API,其次需要計費機制;對SoC供應商與OEM而言,要在某特定平台版本或多樣化的平台版本間取捨,還要兼顧版權防護以及對GPU的了解。隨著新版本Android API,在智慧手機與平板電腦上應用逐漸成熟且賦予可移植性,Google已注意到版本零散化的問題,並領先導向一致化。許多工作坊與培訓課程班被開設,以協助開發人員和OEM達到最大化的可移植性。Android統合設計原則,讓開發者只須寫一次程式碼即可。

Amit提到,以Apps市集營收比較,蘋果iTunes AppStore為100%,亞馬遜AppStore僅89%,而GooglePlay更只有23%。GooglePlay近來改善了一些項目,像阻擋惡意軟件(Malware)、全球涵蓋度提升到130國,發表Apps後續選購擴充的機制(expansion of in-app purchasing),開發者可以自動更新訂閱和一次性付款,同時負責收款的直接運營商,從去年才2個增加到15個。

另外軟體(Apps)、書籍、音樂、視頻等已經被垂直整合到GooglePlay市集,登入頁面也做了變化。MIPS與OEM供應商合作,提供合宜價位高品質的Android設備。市面上已有MIPS架構的7吋平板電腦僅79美元,他給他兩個子女買的都是這種。

MIPS加入創造SoC、OEM的架構多樣性選擇

有MIPS、Intel與ARM等多樣化架構的支援,提供晶片供應商、OEM、運營商和消費者更多的選擇。Android平台允許OEM廠商進行差異化動作,像使用介面(UI)的特製化,多種解析度與多點觸控面板的選用,允許多核心CPU、GPU、GPS多層級硬體的選搭等;而相容測試套件(Compatibility Test Suite;CTS)能確保用戶在多樣性Android設備中也有一致的使用體驗。每個App有專屬的UID,確保每個App有獨立維護權限,避免影響到別的App;為了數據共享,用戶必須明確被告知,例如在App安裝階段。Widevine的和可插拔的DRM數位版權機制,提供統一的關鍵性內容保護的解決方案。Android提供開發者相當豐富多元、可增加用戶體驗的繪圖子系統加速API,在CPU執行的軟體必須最佳化且能順利與GPU工作串聯在一塊。

依IDC 2011年7月針對受訪者對Android平板的成功因素的調查中,62%認為要著重用戶體驗;46%認為需從智慧手機到平板的移植性;45%認為版本過於零散,版本數需要統合;39%認為價格;33%則看中市集中Apps數量;29%用戶看重硬體規格。Android將持續交付出維持硬體架構中立性、允許多樣化、一致性的APIs,並幫助降低裝置成本以快速擴散到市場上。

Amit總結Android態勢,除了平板電腦與智慧手機之外,下一個普及的或許是機上盒與智慧電視。目前有多家廠牌如HTC、Motorola、Samsung、LG、Acer、Asus、Philips等,晶片組供應商則有NVIDIA、高通(Qualcomm)、TI、Ingenic、Rockchip,許多平台OS版本,以及三種CPU架構(MIPS、Intel、ARM)。他鼓勵開發者要擁抱差異化,運用Dalvik或NDK r8達成程式碼移植性。

MIPS對Android平台產業的貢獻

Amit提到MIPS對於Android平台產業的貢獻,在於啟動低成本Android裝置,最佳可授權的微處理器核心執行Android OS,提供大眾市場的吸引力與焦點,使得平板與智慧手機可以人手一機。這也將引導需求創造,開發者將有誘因,將既有內容轉成能為大眾所接受的新內容,目前已有180萬部採用MIPS微處理器技術的平板電腦在市面上,數量正持續快速增長。

目前MIPS針對Android平台所推出的微處理器核心家族,最高階由傳統1074K、74K系列重命名為ProAptiv處理器,具備三線發送的超純量亂序執行CPU架構、高速浮點運算單元,具備1~6核心配置,提供4.4Coremark/Mhz及3.5DMIPS/MHz的單位時脈效能;中階由1004K、34K與24K系列重新命名的interAptiv處理器,具備多線緒(multi-threaded)低功耗核心,1~4核心配置,並達到3.2Coremark/Mhz以及1.7DMIPS/MHz的單位時脈效能;入門部份由M14K系列改名的microAptiv處理器,具備DSP數位訊號處理強化電路與微控制器核心設計,可達3.1Coremark/Mhz以及1.57DMIPS/MHz的單位時脈效能。

Google官方在2012年5月發布的NDK Release 8開始支援MIPS ABI,獲得Android 4.0完整的支持,MIPS程式代碼直接提交並經由Google審核後放置於GooglePlay市集。目前有85% Apps可以在MIPS架構的裝置執行,另外也有像Gameloft、Rovio、Halfbrick、Opera、Marmalade、Xamarin、Unity等工作坊協助Android Apps平台移植的服務。

Android在MIPS架構的時間表,在2009 MIPS首度推出採用Android的類平板電腦,2010年進一步推出採用Android的STB機上盒。

2010年下半Google授權Honetcomb(Android v3.0)給MIPS,隨後2011年12月,跟大陸業者合作推出全球第一部配Android 4.0 ICS的MIPS架構平板電腦,時脈達1GHz,通路零售價僅99美元,2012年Philips也在大陸推出100% CTS驗證的MIPS架構平板電腦。目前MIPS在數位家庭應用上居主導地位,行動裝置的佔有率也逐漸成長。

(本文提供英譯版本,請按此連結閱讀英譯版本內容)