高品質訓練課程供應者

作者:Origin Chen
日期:

Ice Cream Sandwich (Android 4.0)源碼在2011年11月中正式公開,為了讓國內的開發者在最短時間內完成 Android 4.0 Porting 工作,並了解 Android 2.3 與 Android 4.0 的架構差異,仕橙研策科技與MagicLEGO特別於2012.1.11共同舉辦了台灣第一場「Android 4.0移植與框架」講座課程。

本講座從「系統工程」的角度為大家介紹 Android 4.0 Porting,內容上並不是只將 Android 源碼編譯後放到硬體上,能順利開機即可,還涵蓋整個系統的移植,重點包括Android 4.0編譯設定細節、與Android 2.3的差異比較、多核心Multi-threa教學,以及Android繪圖系統的移植要領等。

由於議程架構切合產業需求,這次的報名情況相當踴躍,原本預計名額為 50 人,活動前一週二度加開的 20 個名額,也在 3 天內搶報一空。直到活動前一刻,我們才能確認最後的參加名單:活動當天的實際到場人數達到 100 人。(活動相簿)

如何成功移植Android 4.0

上午時段,仕橙研策技術總監Jollen Chen共剖析了三個重要議題,分別是:如何成功移植Android 4.0、Android 4.0架構與更新,以及移植實務與示範。

Jollen指出,由於 Android 4.0 移植,可以基於 Android 2.3 甚致 Android 3.0 來進行,所以並不需要「從零開始」。基於過去的 Android 移植經驗,可以完成大約 80% 左右的 Android 4.0 移植工作。

從學習的角度來看,因為 2.3 與 4.0 的移植技術很許多相同的地方,例如:Product tree 的製作完全相同,因此實際了解 2.3 與 4.0 的「差異」是比較有效率的作法。

另外,同樣是從學習的角度來看。如果是 Android 移植的入門新手,一開始不太需要區分版本,由 Android 2.3 移植開始,也是一個很好的入門點,這會讓學習更單純,例如:不需要考慮 InputReader 的修改;這個專門針對 Android 4.0 的移植工作,未來再補上即可。(參考資料:Ice Cream Sandwich 移植與框架 課後紀錄:學習建議

  Android 4.0繪圖系統

針對Android繪圖系統,MagicLEGO的Walter Wu指出,在Android系統框架的程式庫(Libraries)中,2D繪圖靠的是SGL,3D繪圖則是靠OpenGL ES。目前3D繪圖的重要性已大幅提升,因此開發者必須熟悉OpenGL ES的架構、語法、介面與相關程式庫。他表示目前在MagicLEGO4210開發板上,Android 3D程式庫已完整建置成功。

(OpenGL ES架構圖)

關於2D及3D畫面的管理,則是由Surface Manager程式庫來管理,其中一個重要程序為SurfaceFlinger,它是由SystemServr產生的。Walter說明了圖形組合的流程以及SurfaceFlinger的rendering步驟。

Walter表示,Android 4.0(ICS)針對2D及3D繪圖都做了強化的功能,例如為2D繪圖提供了硬體加速功能。在使用介面(UI)上,ICS為平板及手機提供了不同的UI風格。另一個重要的功能則是HW Composer,它能強化Layer Composition的表現。在MagicLEGO4210上,可透過三星的FIMD(Fully Interactive Mobile Display interface)模組來建置HW Composer。

Andoid 4.0感測器系統

在行動裝置上,建置了愈來愈多的感測器,也帶來更多樣的操作應用可能性。MagicLEGO的Eason Yen介紹指出,目前Android可支援的感測器類型相當多,除了大家熟知的加速度感測器、陀螺儀、光感測器外,也支援磁場、溫度、壓力、鄰近性、相對濕度等感測器。

Android 4.0為感測系統提供了從硬體底層到應用層的完整架構,Eason除了介紹各層次的重要特性外,也說明了Android感測系統的運作流程。Eason表示,從Android 2.3到4.0,除了支援性更廣外,在感測系統上的支援也更完整了。演講最後,Eason以光及鄰近性(proximity)感測器為例,說明了元件選擇與移植上的重要關鍵。

(Android 4.0 Sensor系統架構圖)

MagicLEGO開發板專案

關於MagicLEGO 開發板專案的發展,從2011年6月專案成立後,在不到4個月的時間內即讓其MagicLEGO 4210達到與Galaxy S2相當的表現。如今則發表MagicLEGO 4×12專案,它支援Android 4.0及Exynos處理器,在應用上則能流暢支援10.1吋平板電腦的多點觸控功能。

該團隊表示,相較於4210為Android 2.3做到最佳化,4×12則為ICS做了最佳化,並提供加值軟體解決方案,適用於智慧手機和平板電腦的開發使用。4210及4×12都是針對ARM Cortex-A9雙核心的產品開發而來,今年下半年起該團隊將會投入Cortex-A15雙核心產品的開發設計,其開發板暫定為MagicLEGO 5xxx。

(MagicLEGO 4×12 Block Diagram)