• 沒有找到結果。

第二章 背景知識

2.1 Android

Android 是一個基於 Linux 核心(Kernel)的開放原始碼作業系統。

Android 平台支援各種先進的網路、繪圖、3D 處理能力,方便使用者開 發各種應用程式[3]。Android 應用程式開發使用 Java 語言,Google 免費 提供了跨平台的開發環境(Windows,Linux, Mac)、模擬器(Emulator)和 系統開發工具(SDK)。

對於設備製造商來說,Android 是一個免費的平台。假如他們採用 Android 作業系統就可以避免在製造手機時,被手機作業系統商收取費用;

對硬體開發廠商來說,只要有能力可以在 Android 平台上加入想要的特有 裝置或功能,一樣不受手機作業系統廠商限制。對於手持裝置應用程式 開發者而言,Android 是個生意的平台,透過 Android Market,可將自己 設計的應用程式銷售給世界各地的使用者,是個很好的獲利方式。對使 用者來說,Android 是一個用於手機的作業系統,當更換不同廠牌的手 機,只要同樣使用 Android 作業系統,仍可繼續使用以前習慣使用的軟體。

2.1.1 Android 系統架構

Android 基本上就是一種嵌入式 Linux 系統,再加上一些重要的手機 應用開發軟體。Android 採用 Linux 系統,可以讓每個開發人員能夠在自 己熟悉的環境下,可以很方便做自己的開發程式,也使 Android 能夠在市 場上以多種面貌出現,如果深入看其架構,它總共包含四個主要層次,

如圖 2.1 所示。

圖 2.1 Android 的系統架構[4]

Android 作業系統的最底層的部分是 Linux 核心,這裡是特別為手機 或行動裝置所設計的電源管理系統,所以我們需要一個 OS(Operating System)來管理所有的周邊及硬體裝置,這樣我們可以避免硬體資源被不 當使用。它的系統核心為 Linux2.6 系統,它負責了硬體的驅動程式、網 路、電源、系統安全以及記憶體的管理等系統的功能。

第二層的部分是函式庫(Library)部分,它是在系統內執行的函式庫,

可供程式在執行時呼叫。其中大多數由開放原始碼的函式庫所組成。它 提供了 Android 系統中許多不同的組件以供使用,像第二層左邊函式庫部 分顯示的有標準的 C 函式庫 Libc、Open-SSL、SQLite…等等。還有網頁 函式庫 WebKit,它是負責 Android 網頁瀏覽器的運作。其它還有像是多

媒體播放(支援各種影音圖形檔)、使用者介面、字型…等。值得一提的是,

它還另外提供了以往在嵌入式系統並不常見的 3D 圖形(Open GL)函式 庫。

和第二層函式庫並行的 Android 執行環境(Run-time),它分成二個重 要的元件來執行:Android 特有的 Java 核心函式庫以及可轉換 Java 執行 碼(Bytecode)為 Android 專屬的 Dalvik Executable(.dex)檔案格式的 Dalvik 虛擬機器。透過這兩個元件,可以讓我們撰寫 Java 語言的 Android 應用 程式,並可在 Android 平台上同時執行多個 Java 應用程式。

第三層的部分為應用軟體框架 (Application Framework),它包含了顯

示功能(裡面是一些基本原件,像常用的訊息方塊、條列訊息、按鈕等

2.1.2 名詞解釋

在進行 Android 程式設計前,先了解一些相關的名詞,會有助於 Android 應用程式的開發 [6]:

1. Android package(.apk)

它是一個 Android 應用程式套件,程式寫好後可以將它打包成一 個.apk 檔,透過 Android Development Kit 可以將 apk 套件安裝到 Android 手機或模擬器上。

2. Task

Task 就是「應用程式本身」,也就是 Android 手機上的圖示,可點 擊圖示啟動 task。Task 由一個或多個 activities 所組成。

3. Process

Process 在作業系統的定義上,是一個正在執行的程式,一個 apk 套 件裡的所有程式,構成一個 process。

4. Activity(android.app.Activity)

簡單來說,這是一個與使用者互動的物件。可以將它看成一個 UI (User Interface),它通常不會是只有一個。以一個簡單的 Email 的程 式為例,它可能就包含了 3 個 Activity :(1)郵件列表的 activity,(2) 顯示郵件內容的 activity,(3)寫新郵件或回覆郵件的 activity。

5. View(android.app.View)

簡單來說,android.app.View 類別就是手機的 UI。View 負責繪製 UI 與處理事件(event)等與畫面顯示有關的部份。

上面我們介紹了 Activity 與 View 的觀念,將它們整合起來就是執

相關文件