• 沒有找到結果。

第四章 實驗平台簡介

4.1 實驗系統

此節主要介紹混合型機器人路徑規劃及其實現時,CGO 演算法所需的軟體平 台(Android),以及撰寫機器人控制與溝通所需的硬體平台 Pioneer[26]。

4.1.1 Android

Android 是以 Linux 為基礎的半開放式行動裝置作業系統,是在 2003 年由 Andy Rubin、Rich Miner、Nick Sears 和 Chris White 共同創立,最初是開發智慧 型相機(Digital Cameras),不過礙於當時的市場需求不符所以轉向智慧型手機市場,

於 2005 年被 Google 收購,並於 2007 年 Google 與多家軟硬體廠商和電信公司成 立了開放手持設備聯盟(The Open Handset Alliance)。隨後,Google 開放原始碼許 可授權,發佈了 Android 的原始碼,讓廠商推出搭載 Android 系統的智慧型手機。

在 2008 年 10 月,經由 HTC 首度發表了第一支 Android 手機,至今 Android 成為 智慧型裝置的主流系統平台,2013 年至 2014 年的市占率更是從 61.9%上升至 80.2%,相當可觀。

32

圖 4- 1 Android 系統架構圖[27]

Android 的系統架構如圖 4- 1 Android 系統架構圖[27]所示,主要分為四大層,

分別為:Linux 核心層(Linux Kernel)、中介層包含函式庫(Libraries)、Android 執 行環境(Android Runtime)、應用程式框架層(Application Framework)與應用程式層 (Applications)。以上架構被稱為軟體堆疊架構。

A、 Linux 核心層(Linux Kernel):

Android 作業系統平台採用 Linux 核心,版本為 2.6 至 3.0,負責管 理行動裝置電源、網路、記憶體以及硬體驅動等等…,可以避免在開發 程式時,硬體的不當使用導致系統不安全。

33

B、 中介層:

其中的函式庫(Libraries),主要為一些開放原始碼。例如:Packet Video Media Framework(PVMF) 、 Operating System Compatibility Library(OSCL)、Open GL、SQLite(SQL)和 C/C++的標準函式庫,可供程 式執行時呼叫使用。

另外,Android 執行環境(Android Runtime),負責將我們撰寫的 Java code(.java)格式交給 JVM 編譯,編譯成 Java byte code(.class)格式,最後 再經由暫存器型態的 Java 虛擬機器「Dalvik」轉換成(.dex)格式,而每個 Android 應用程式都有屬於自己的執行緒,且交給虛擬器 Dalvik 來執行。

C、 應用程式框架層(Application Framework):

該層是程式開發者很常使用的一層,框架化的設計化簡了許多元件 的應用,使開發者可以簡單的控制應用程式的各種套件如:視窗、位置、

資源、通知、電話、活動等等,並可以輕易地更換其模組區塊而不影響 其他元件的運作功能。

D、 應用程式層(Applications):

應用程式層為 Android 的系統架構最上層,使用 Java 程式語言[28]

來開發,使系統介面到功能,富有多元的變化。例如:Activity 的前景 (foreground)模式、View 的 ViewGroup、BitMap 等功能。

34

4.1.2 Android SDK

Android SDK 係指:開發 Android 手機應用程式所需的相關 Android APIs 與 核心工具軟體[29],所謂的 Android APIs(Application Programming Interface)係指:

由 Android 官方所提供的一組 Android 手機應用程式,開發者在開發 Android 手 機應用程式時的程式溝通介面,它是做為 Android 應用程式與 Android 作業系統 底層相互溝通之用,裡頭包含一系列核心套件(packages)與類別(classes)及 Android 模擬器等開發元件。Android 手機應用程式開發者可以直接使用這一系列的 Android APIs 進行手機應用程式的設計工作,因此,能使大部份的 Android 手機 應用程式開發者節省了時間與精力來理解 Android 作業系統的底層架構,操作介 面如圖 4- 2 所示。

圖 4- 2 Android SDK 開發環境介面

35

相關文件