- Android底層開發實戰
- 周慶國
- 3085字
- 2018-12-31 21:06:24
1.1.2 基于Android的嵌入式系統構成
1.嵌入式系統架構概述
嵌入式系統由軟件和硬件構成。硬件部分包括微處理器、內存、閃存/硬盤、外部設備等;軟件部分則包括引導器、操作系統、文件系統、用戶程序等。對于簡單嵌入式系統來說,硬件部分通常只是一塊單片機芯片,集成了所需的全部硬件資源,而軟件部分則只是一個單一的二進制文件,包含全部的代碼、常數、存儲分配結構等。本書的研究對象是基于ARM處理器和Android操作系統的復雜嵌入式系統。
2.Android系統的發展與版本演變
Android一詞的本義指“機器人”,該平臺由操作系統、中間件、用戶界面和應用軟件組成。Android操作系統最初由Andy Rubin開發完成,是一種基于Linux內核的自由及開放源代碼的操作系統,主要應用于移動設備,如智能手機和平板電腦。2005年8月由Google收購并注資。2007年11月,Google與34家硬件制造商、軟件開發商及電信運營商組建開放手機聯盟,共同研發改進Android系統,并且以Apache開源許可證的授權方式,發布了Android的源代碼。第一部Android智能手機HTC G1發布于2008年10月。隨后Android操作系統逐漸擴展到平板電腦及其他領域,如電視、數碼相機、游戲機等。2011年第一季度,Android在全球的市場份額首次超過塞班系統,躍居第一。
2008年,在Google I/O大會上,Google提出了Android HAL架構圖,在同年8月18日,Android獲得了美國聯邦通信委員會的批準。在2008年9月,Google正式發布了Android 1.0系統,這也是Android系統最早的版本。
2009年4月,Google發布了Android 1.5版本,并開始以甜品的名字對各個版本進行命名,Android 1.5命名為Cupcake。該版本與1.0版相比有了很大的改進。
2009年9月,Google發布了Android 1.6的正式版,并且推出了搭載Android 1.6正式版的HTC G3手機。憑借著出色的外觀設計以及全新的Android 1.6操作系統,HTC G3成為當時全球最受歡迎的手機。Android 1.6也有一個有趣的甜品名稱,即Donut。
2010年2月,Linux內核開發者Greg Kroah-Hartman將Android的驅動程序從Linux內核staging tree上除去。從此,Android與Linux開發主流分道揚鑣。同年5月,Google正式發布了Android 2.2操作系統,并將其命名為Froyo。
2010年10月,Google宣布Android系統達到了第一個里程碑,即在電子市場上獲得官方數字認證的Android應用數量已經達到了10萬個,Android系統的應用增長非常迅速。在2010年12月,Google正式發布了Android 2.3操作系統Gingerbread。
2011年1月,Google宣布每日新增的Android設備用戶數達到30萬部,到2011年7月,這個數字增長到55萬部,Android系統設備的用戶總數更是達到了1.35億。Android系統已經成為智能手機市場占有量最高的系統。
2011年8月2日,Android手機已占據全球智能機市場48%的份額,并在亞太地區市場占據統治地位,終結了塞班系統的霸主地位,躍居全球第一。
2011年9月份,Android系統的應用數目已經達到了48萬,而在智能手機市場,Android系統的占有率已經達到了43%,繼續排在移動操作系統首位。全新的Android 4.0操作系統于2011年9月23日發布,這款系統被Google命名為Ice Cream Sandwich。
2012年1月6日,Google Android Market已有10萬開發者推出超過40萬活躍的應用,大多數的應用程序為免費的。Android Market應用程序商店目錄在新年首個周末突破40萬基準,距離突破30萬僅用了一個月。在2011年早些時候,Android Market應用從20萬增加到30萬花了4個月。
2013年9月,Google證實,已有超過10億Android設備被激活,應用下載次數超過480億次。Android系統不僅支持手機和平板電腦,還成功進軍相機、電視、手表甚至是冰箱等消費品領域。同年10月發布了Android 4.4,代號為KitKat(奇巧巧克力)。新的Android 4.4操作系統為開發者提供了兩種編譯模式,一種仍是默認的Dalvik模式,另外一種則是ART模式。ART模式發行的應用在用戶安裝時就進行預編譯操作,將原本在程序運行中的編譯動作提前到應用安裝時,在省去解釋代碼這一過程之后,應用的運行效率更高。Android被人所詬病的虛擬機解釋編譯時代一去不復返。
2014年,隨著更多的手機生產商的加入,Android智能手機總出貨量為13億臺,這意味著Android智能手機占全年手機銷售量的81.2%。
2014年10月16日,Google正式發布Android 5.0,并將系統鏡像發布到Nexus 4、5、7和10的設備上。主要更新包括:支持64位處理器,支持藍牙4.1,采用全新的Material Design界面,全面由Dalvik虛擬機轉用Android RunTime(ART)編譯虛擬機等。
2015年4月22日,Google發布最新版本Android 5.1.1,在Android 5.0基礎上主要增加了新功能和完全性,例如多SIM卡和高清語音的支持、快速設置WiFi和藍牙等
3.Android系統的優勢
(1)開放性
Android平臺最大的優勢就是其開放性。開放的平臺允許任何移動終端廠商加入Android聯盟中來。顯著的開放性可以使其擁有更多的開發者,隨著用戶數量的增多和應用的日益豐富,一個嶄新的平臺也將很快走向成熟。
(2)運營商的鼎力支持
在國內,三大運營商卯足了力量推出Android智能機。聯通的“0元購機”,電信的千元3G,移動的索愛A8i定制機等,都顯示了運營商對Android智能機的期望。在美國,T-Mobile、Sprint、AT&T和Verizon全部推出了Android手機。此外,KDDI及NTT DoCoMo(日本)、Telecom Italia(意大利電信)、T-Mobile(德國)、Telefónica(西班牙)等眾多運營商都是Android的支持者。有這么多的運營商支持Android,自然會使它占據巨大的市場份額。相對于Android的運營商聯盟,只有AT&T一家運營商銷售iPhone。
(3)豐富的硬件選擇
基于Android平臺的開放性,眾多廠商推出了多種產品。這些產品雖然功能上各有特色,卻不會影響數據同步,以及軟件的兼容。例如將一款諾基亞塞班風格的手機更換為蘋果iPhone,不僅可以將塞班中優秀的軟件移植到iPhone上繼續使用,而且聯系人等資料也可以方便地轉移。現在,世界絕大部分智能手機廠商都加入了Android陣營,并推出了一系列的Android智能機。摩托羅拉、三星、HTC、LG、Lumigon等廠商都與Google建立了Android平臺技術聯盟。加盟的廠商越多,手機終端就越多,其市場潛力就越大。Android智能機最近6個月在美國市場的占有率足以說明這一點。
(4)開發商不受任何限制
隨著Android的推廣與普及,應用程序的數量呈指數級增長,Android應用在可預見的未來是有能力與蘋果競爭的。而來自Android應用商店最大的優勢是,不對應用程序進行嚴格的審查,開發不受限制。
(5)無縫結合Google的應用
如今互聯網的Google已經走過10年的歷程,從搜索巨人發展到全面的互聯網滲透,Google服務如地圖、郵件、搜索等已經成為連接用戶和互聯網的重要紐帶,Android平臺則將這些優秀的Google服務無縫結合到系統中。
4.基于Android的嵌入式系統硬件構成
為了支持Android系統的正常運行,一個典型的系統應具備ARM嵌入式處理器、內存、閃存、電源管理系統、音頻子系統、顯示屏和觸摸屏。
圖1-5以基于全智科技A10應用處理器的嵌入式系統為例介紹了一個無線IP電話硬件系統的構成。Android操作系統運行在基于ARM核心的A10處理器上,GPU部分運行圖像加速算法。ARM處理器控制片上外設,片上外設控制系統中的其他設備,比如音頻控制器、背光控制器等。A10SOC通過USB等接口對外實現有線和無線通信。

圖1-5 Android嵌入式系統的硬件
5.Android嵌入式系統軟件構成
嵌入式系統軟件包含引導器、操作系統、文件系統和用戶程序等,如圖1-6所示。以Android系統為例,系統引導器(通常是U-Boot)在系統通電之后首先運行,該程序負責處理器、內存、閃存的初始化,對系統內核實行解壓縮操作,然后將控制權交給操作系統。操作系統包含內核和用戶態程序。Android系統的內核是Linux,Linux在加載完成后掛載文件系統,并從中加載用戶態程序。Android的用戶態程序包含啟動管理、Java虛擬機、系統庫函數等。在完成Android系統的加載后,Android會自動加載默認的桌面應用程序。至此,Android系統完成啟動過程。

圖1-6 Android系統軟件構成
引導器包含設備相關的、與底層打交道的代碼,這部分常用匯編語言和C語言編寫。Linux內核部分包含部分設備相關代碼,比如CPU的優化指令等,以及大量的外設驅動。這部分將是移植Android系統的重點。Android虛擬機和Linux用戶態庫文件提供應用程序與Linux內核溝通的機制,并實現大量的擴展功能。如果要開發自定義的Android系統,就少不了開發指定的用戶態庫文件。如果Android系統是用于特定目的,一般還要為應用程序(APK)開發對應的底層庫文件及JNI庫。這也是Android系統移植的重點。最高層是應用程序框架,該部分提供應用程序可以調用的Java包,它們實現了多數的Android API,是應用開發的重點。最上層是應用程序,該部分由第三方開發,與系統移植無關。
- pcDuino開發實戰
- Modern Web Testing with TestCafe
- Kali Linux滲透測試全流程詳解
- FreeRTOS實時內核應用指南
- Linux網絡內核分析與開發
- macOS效率手冊
- Windows 7中文版從入門到精通(修訂版)
- 巧學活用Windows 7
- Android物聯網開發細致入門與最佳實踐
- 突破平面3ds Max動畫設計與制作
- Application Development in iOS 7
- 完美應用RHEL 8
- INSTANT Migration from Windows Server 2008 and 2008 R2 to 2012 How-to
- NetDevOps入門與實踐
- Windows 10從新手到高手