• 沒有找到結果。

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

7

相關研究

此章節主要介紹本實驗室於本研究使用到的相關理論與技術。本研究以 MDA 做為多平 台導引精靈程式開發的核心理論,並利用 Eclipse【6】做為系統開發的主要平台,開發 Android 快速導引精靈程式,最後產生與 Android 平台相關的 Android 導引精靈,所以 首先會介紹 Android 平台的特性(包括 Android 組件、Android 佈局、EMF 與 Xtext,還 有模型轉換的相關工具介紹 Xtend)。

2.1 Android 平台介紹

Android 的歷史最早於 2003 年被創立,2005 年被 Google 收購開發了三年時間,並於 2008 年發表第一款以 Android 為核心的手機。為了加速 Android 平台軟體的開發,Google 於 2008 年九月首先釋出第一版的 SDK 1.0 Release 1 供開發人員使用,之後,則規律的 釋出新版本的 SDK。在認識 Android 平台之前,必須了解 Android 的系統架構。

圖 2-1 是 Android SDK 平台的階層元件圖,由上而下可分化為,應用程式層、應用層框 架、函式庫層、Android 執行(Runtime) 層和核心層【37】:

 下層的作業系統源自於Linux的核心,是個支援許多處理器與周邊裝置的開放原始碼 作業系統,其中包含驅動程式、電源管理等。

 中層的函式庫與執行層,提供Java無法處理的CPU運算部分,由於此層的函式庫皆由 C/ C++/ ASM 寫成,並支援硬體編解碼器(Codec),在效率方面不會輸給其他平台的 多媒體框架,具有高效率的特點。舉凡編碼、解碼、解析檔案格式等對中央處理器(CPU)

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

8

造成吃重負擔的作業都在此層處理。另外,由於應用層的Java無法直接和硬體溝通以 及Android Runtime層沒有處理到的硬體介面也可交由函式庫層來實作。此階層分為兩 個部分:

• 函式庫層:包含C/C++所實作基本的系統(libc)、加解密運算(SSL)、向量圖引擎 (SGL)、3D引擎(OpenGL)、字型函式庫(FreeType)、瀏覽器核心(WebKit)、

2D/3D顯示渲染引擎(Surface Manager)、多媒體框架(Media Framework)和嵌入 式資料庫(SQLite)等函式庫。

• Android Runtime層:為由Dalvik VM (DVM) 所建構的Android應用程式執行的環 境,使上層的應用程式可以跨平台的執行。

 上層的應用框架層:實作JNI(Java Native Interface)【36】技術,把易於軟體開發商開 發的最上層Java應用程式及函式庫和便於進行繁重運算的下層原生C/C++函式庫 (Native C/C++ Libraries)分開,讓不同領域的開發者可以在自己擅長的領域進行開發,

而不用擔心被干擾。雖然開發者也可以修改或擴充本層,但由於這會破壞Android分 兩層的原則及降低可攜,通常不建議應用程式開發者修改此層。這一層提供Java API 框架,開發人員可以使用這樣的框架來開發自己的應用程式,這樣便簡化了程序開發 的架構設計,但是必須遵守其框架的開發原則,此層也提供了重複使用機制能使用戶 更方便的替換程序組件。

 最上層的應用程式層:應用程式以Java語言編寫,透過第二層的應用層框架往下溝通。

主要為Android系統中的核心應用,比如Email客戶端,SMS短消息程序,日曆,地圖,

瀏覽器,聯繫人管理和播放程式(Player)或錄影/錄音機(Recorder)等就是指位在此層 的應用程式(App)。支援手機應用所需的各類使用者直接相關的元件,可執行Google 和開發者所提供的應用程式,或者是使用者購買與下載取得的軟體。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

9

圖 2-1:Android 系統架構階層圖。

今日的手機已經被視為是一個豐富的操作平台,除了基本的通訊功能,還逐漸被賦 予更多元的應用,如播放多媒體需求、全球定位系統(GPS)的使用和傳統網頁的瀏覽等。

因此,為了平衡多元化操作造成系統的複雜性、應用程式開發的便利性、以及執行效能 與耗電等問題,Google 除了提供前述系統架構階層之外,還將整個 Android 架構也做了 許多的細部重整。其中最著名的例子就是一套名為 Bionic 的 C 函式庫【38】。Google 忽 略部分標準 C 函式庫中不常用的功能,例如地區化(locales)和寬字元(wide char)的支援,

不予以實作。在 Android 框架下,這些被忽略的部分,都可以被 DVM 所隱藏不致於產 生問題。而藉由精簡而有效率的底層系統,更可降低 Android 系統執行時對記憶體和處 理器計算資源的消耗,以實現嵌入式系統輕量、快速的需求。配合分層的概念,開發人 員可以輕鬆的利用 Java 的知識,開發跨平台的應用程式,不必理會系統底層的差異性。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

10