一、Android 的沿革介紹及各版本代稱
Android 系統是一個以 Linux 為基礎的半開放原始碼作業系統,主要用於行 Base Station Back Bone
BSA(Basic Service Area)
動設備,由 Google 成立的 Open Handset Alliance(OHA,開放手機聯盟)持續 領導與開發中。Android 系統最初由安迪·魯賓(Andy Rubin)開發製作,最初主 要支援手機,於 2005 年 8 月被美國科技企業 Google 收購。2007 年 11 月,Google 與 84 家硬體製造商、軟體開發商及電信營運商成立開放手持設備聯盟來共同研 發改良 Android 系統,隨後,Google 以 Apache 免費開源許可證的授權方式,發 布了 Android 的源代碼。讓生產商推出搭載 Android 的智慧型手機,Android 作 業系統後來更逐漸拓展到平板電腦及其他領域上,2010 年末數據顯示,僅正式 推出兩年的 Android 作業系統在市場佔有率上已經超越稱霸逾十年的諾基亞 Symbian 系統,成為全球第一大智慧型手機作業系統(摘自維基百科)。
圖 2-4Android 沿革期 表 2-2.Android 系統各版本代表稱號
版本 英文代稱 中文代稱
1.5 Cupcake 紙杯蛋糕
1.6 Donut 甜甜圈
2.0 Éclair 鬆餅
2.2 Froyo 凍酸奶
2.3 Gingerbread 薑餅
3.0 Honeycomb 蜂巢
4.0 Ice Cream Sandwich 冰淇淋三明治
4.1 Jelly Bean 雷根糖
4.2 Jelly Bean 雷根糖
二、Android 特性及優越性
Android 受到網路巨擘 Google 的加持使得讓手持式行動裝置各家廠牌如虎 添翼,讓一些加值服務很多得到免費使用,其主要的特性讓全世界精英開發者所 吸引。
主要特性如下:
1. 應用程式框架(Application framework ):可重複使用,可替換的元件 2. Dalvik 虛擬機:專為行動裝置設備最理想化的虛擬機內嵌式的搜尋引擎:
H.264、MP3、AAC、AMR、JPG、PNG 及 GIF 等
6. GMS 電話、藍芽﹙Bluetooch﹚、EDGE、3G 及 WiFi:都需要硬體支援。
7. 照相攝影功能、GPS 定位系統、電子羅盤、加速度計﹙accelerometer﹚:需 要硬體支援。
8. 嚴謹的開發環境:包含設備模擬器﹙Device Emulator﹚、除錯工具、記憶體 與效率剖析與 Eclipse IDE 的外掛套件。
9. 現在市場上多款智慧手機使用谷歌的 Android 操作系統,頗有流行的勢頭。
和蘋果的 iPhone、微軟的 Windows 7 手機平台相比,Android 似乎略勝一籌。
主要優勢如下: (Applications)、應用程式框架(Application Framework)、Android 執行時期環境
(Android Runtime)、函式庫(Libraries)、Linux 核心(Kernel)(如圖 2-5 所示)。
圖 2-5 Android 系統架構圖
1. 應用程式:
Android 附有一系列以 Java 語言 8 撰寫的核心應用程式,包含郵件程式、簡 訊程式、日歷、地圖、瀏覽器、聯絡人與其它應用程式。
2. 應用程式架構:
開發者可以完整使用與核心應用程式相同的 API,應用程式框架為簡化元件 重用而設計;應用程式可以發佈功能並為其它應用程式所使用(受限於應用程式 框架的安全限制),使用者用同樣的機制用來置換元件。
應用程式底層是一組系統與服務,包含:
豐富且延伸自View用以建立應用程式,包含lists, grids, text boxes, buttons, 甚至是嵌入式的瀏覽器。
Content Providers使應用程式可以存取或分享資料給其它應用程式(如聯 絡人)。
Resource Manager提供存取非程式碼資源如本地化字串、圖形或布局檔案
Notification Manager讓應用程式得以在狀態列顯示自訂的警示。
Activity Manager管理應用程式生命週期並提供一般性的回溯導航 (navigationbackstack )
3. 函式庫:
包含一組系統元件使用的 C/C++ 函式庫,使用者透過應用程式框架使用這 些功能,部分核心函式庫列示如下:
系統C函式庫引用BSD標準系統C函式庫(libc),調整為嵌入式Linux裝置。
媒體函式庫建立在PacketVideo's OpenCORE 之上;該函式庫支援聲音的播放 與錄製、影片格式、與靜態影像格式,包含MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF。
Surface Manager 管理顯示次系統存取、與來自多重程式2D與3D組合圖層的 串流。
Dalvik 被設計成單一裝置可有效率地使用多個虛擬機器, Dalvik 虛擬機器執行 Dalvik 執行檔(附檔名為.dex,最佳化使用記憶體的格式),虛擬機器為登記制,
並執行"dx"工具編譯並轉換格式的 class 檔案。
5.Linux 核心:
Android 依靠 Linux2.6 版的核心系統服務如安全性、記憶體管理、行程管理、
網路堆疊與趨動程式模型。該核心同樣是作為硬體與軟體積木間的抽象層。
四、Android 的 Activity 生命週期
Activity 是 Android 最基本的應用程式元件,而在該應用程式中,一個 Activity 通常就是一個獨立的螢幕,用來表現資料與操作者進行交流互動。
Android 將 Activity 區分為五大模式,分別是前景模式(foreground process)、
可見模式(visible process)、背景模式(background process)、空白模式(empty process) 和服務模式(service process),Android 給於不同的模式產生 Activity 不同的生命 週期。
Activity 運作流程:
由實際運行的記錄來看,我們可以歸納出所有 Android 應用程式都遵循的
動作流程:
一般啟動:啟動一個 Activity 的基本流程是,分配資源給這個 Activity
(Create 狀態),然後將 Activity 內容顯示到螢幕上(Start 狀態)。在一 切就緒後,取得螢幕的控制權(Resume 狀態),使用者可以開始使用這個程 式。
呼叫另一個 Activity:這是個先凍結原本的 Activity,再交出直接存取螢 幕能力(Pause 狀態)的過程。 直到 Activity 2 完成一般啟動流程後,
Activity 1 才會被停止。
回原 Activity:點 Back 按鈕可以回到原本的 Activity。
退出結束:如果程式中有直接呼叫「finish」函式來關閉 Activity的話,系 統假設我們很確定我們在做什麼,因此會直接跳過先凍結(Freeze)的階段,
暫停(Pause),停止(Stop),然後銷毀(Destroy)。
回收後再啟動:被回收掉的 Activity 一旦又重新被呼叫時,會像一般啟動 一樣再次呼叫 Activity 的 onCreate 函式。 當我們使用「Android」手機 一陣子,在手機上已經執行過多個應用程式。只要按下「Back」(返回)鍵,
「Android」就會開啟最近一次開啟過的 Activity。
基於如此本研究以目前最普遍最常見搭載 Android 應用系統之 MobileAPP 為研究工具做考量。
資料庫服務對應實體機器為 Microsoft SQL server 資料伺服器,提供上述兩 種作業所需要的儲存空間。屬於標準的三層式架構,在機器不足的情況下也可以 合併實體機器,如圖 2-6 所示。