- Android應用開發教程(第2版)
- 羅文主編
- 3221字
- 2021-10-27 15:03:52
1.1 Android簡介

01 Android簡介
說到Android,不得不首先提一下Linux操作系統和智能手機。例如,某用戶想購買一臺智能手機,但是對于不同版本的Android手機有何區別還不甚清楚,下面將針對一些基本概念進行說明。
1.1.1 Linux操作系統
操作系統除了常見的Windows之外,值得一提的還有Linux。
芬蘭人Linus Torvalds在學生時代出于自己的興趣愛好設計了一個可以在低檔機上使用的系統核心Linux 0.01,以替換在教學過程中使用得不盡如人意的MINIX操作系統。后來借助Internet讓使用者參與修改。隨著參與修改的愛好者越來越多,以至于Linux周邊的程序越來越多,Linux本身也就逐漸發展壯大起來。
運行Linux并不需要很高的配置,其也支持眾多的PC周邊設備。Linux的顯著特點是完全免費,其源代碼完全公開,任何人都能拿來使用。基于Linux開放源碼的特性,越來越多大中型企業及政府投入更多的資源來開發Linux。Linux的廣泛使用不僅節省了大量成本,也降低了對封閉源碼軟件潛在的安全性的憂慮。
一個典型的Linux發行版包括Linux內核(Linux kernel)、一些GNU程序庫和工具、命令行shell、圖形界面X Window系統和相應的桌面環境(如KDE或GNOME),并包含從辦公套件、編譯器、文本編輯器到科學工具的數千種應用軟件。
比較著名的發行版本有:Debian,紅帽(Redhat)、Ubuntu、SUSE、Open SUSE、Mandriva(原Mandrake)、CentOS、Fedora、紅旗Linux等。
1.1.2 智能手機
“智能手機”的說法主要是針對“功能手機(Feature phone)”而言的。所謂的智能手機就是一臺可以隨意安裝和卸載應用程序的手機(就像計算機那樣),然而功能手機是不能隨意安裝和卸載應用程序的。Java的出現使后來的功能手機具備了安裝Java應用程序的功能,但是Java程序的操作友好性、運行效率及對系統資源的操作都比智能手機差很多。
智能手機的誕生是掌上電腦(Pocket PC)演變而來的。最早的掌上電腦不具備手機的通話功能,但是隨著用戶對掌上電腦的個人信息處理功能依賴的提升,同時用戶也不習慣于隨身攜帶手機和掌上電腦兩個設備,所以廠商將掌上電腦的系統移植到了手機中,于是才出現了智能手機。智能手機同傳統手機的外觀和操作方式類似,可以包含觸摸屏,也可包含非觸摸屏下的數字鍵盤或全尺寸鍵盤。傳統手機使用的是生產廠商自行開發的封閉式操作系統,所能實現的功能非常有限,所以不具備智能手機的擴展性。
目前最熱門的智能手機是5G智能手機,其基本要求是:
? 高速度處理芯片。智能手機不僅要支持打電話、發短信,還要支持處理音頻、視頻,甚至要支持多任務處理,這需要一顆功能強大、低功耗、具有多媒體處理能力的芯片。
? 大容量存儲芯片和存儲擴展能力。GPS導航圖、大量的音視頻和多種應用都需要存儲空間,足夠的內存存儲空間或擴展存儲空間,才能真正滿足越來越多樣化的應用。5G智能手機要求8GB以上的RAM及256GB以上的ROM。
? 面積大、標準化、可觸摸的顯示屏。智能手機可以執行各種應用,為改善用戶體驗,屏幕分辨率一般要達到4K~8K,屏幕尺寸27in(折疊)以上。
? 支持播放式的手機電視。以現在的技術,如果手機電視完全采用電信網的點播模式,網絡很難承受,而且為了保證網絡質量,運營商一般對于點播視頻的流量都有所控制,因此,廣播式的手機電視是手機娛樂的一個重要組成部分。
? 支持GPS導航。GPS導航不但可以幫助用戶很容易找到想找的地方,而且還可以幫助用戶找到周圍的興趣點;未來的很多網絡服務,也會和位置結合起來。
? 操作系統必須支持新應用的安裝。
? 配備大容量電池,并支持電池更換。電池容量為7000~10000mA。
? 良好的人機交互界面。
1.1.3 智能手機操作系統
智能手機的一個典型標志就是其擁有獨立的操作系統,NOKIA的Symbian(塞班)操作系統開創了智能手機操作系統的先河,并一度使NOKIA成為智能手機的代名詞。隨后眾多的智能手機操作系統如雨后春筍般發展起來。曾經出現的比較有名的全球五大智能手機操作系統有谷歌Android、蘋果iOS、微軟Windows Phone、Blackberry(黑莓)和Symbian(塞班)。隨著市場的發展,由于沒有持續的創新,不能滿足市場新的需求,部分智能手機操作系統逐漸退出市場,甚至被市場所淘汰。目前主流的智能手機操作系統僅有Android和iOS。
? Android(安卓):以開源為特征,截至2019年3月數據統計,Android占據全球智能手機操作系統市場份額的75.3%,成為全球第一大智能操作系統。
? iOS(iPhone OS):以閉源為特征,只有蘋果相應產品才能使用iOS操作系統。截止至2019年3月,iOS已經占據了全球智能手機操作系統市場份額的22.4%,為全球第二大智能操作系統。
Android是基于Linux內核的軟件平臺和操作系統。
2005年,Google公司并購了成立僅22個月的高科技企業Android,展開了短信、手機檢索、定位等業務,同時基于Linux的通用平臺也進入了開發階段。
2007年11月5日Google公司公布了一款手機操作系統,命名為Android。其早期由Google開發,后由開放手機聯盟(Open Handset Alliance)繼續開發。其底層以Linux內核為基礎,以Java作為編寫程序的主要語言,只提供基本功能,其他的應用軟件則由各公司自行開發。
2008年,Google公司的Android工程合作伙伴總監(Director of Android Partner Engineering)Patrick Brady做題為“Anatomy&Physiology of an Android”的演講時提出Android HAL架構圖。HAL以.so文件的形式存在,可以把Android framework與Linux內核區分開。
2010年1月,Google公司推出了Nexus One,這是Google公司自行推出的第一款Android手機。
Android最早的一個版本發布于2007年11月,版本代號為Android 1.0 beta,其后發布了多個更新版本。這些更新版本都在前一個版本的基礎上修復了漏洞,并且添加了前一個版本所沒有的新功能。2009年4月起,Android操作系統改用甜點名作為版本別名。這些版本按照大寫字母的順序來進行命名:紙杯蛋糕(Cupcake)、甜甜圈(Donut)、閃電泡芙(éclair)、凍酸奶(Froyo)、姜餅(Gingerbread)、蜂巢(Honeycomb)﹑冰激凌三明治(Ice Cream Sandwich)、雷根糖(Jelly Bean)、奇巧(KitKat)、棒棒糖(Lollipop)、棉花糖(Marshmallow)、牛軋糖(Nougat)、奧利奧(Oreo)、餡餅(Pie)等。此外,Android操作系統還有兩個預發布的內部版本,分別是鐵臂阿童木(Astro)和發條機器人(Bender)。
Android和傳統PC操作系統相比有以下明顯的差異。
? 系統內核:Android系統基于Linux內核,與PC操作系統的架構完全不同。
? 代碼開源程度:Android完全開源,使用免費,PC操作系統需要授權。因此Android更受程序員和手機廠商歡迎,同時可以有效降低手機成本。
? 組件和功能不同:PC操作系統的擴展能力強,Android則是更注重于手機功能。目前在應用程序數量上Android弱于PC操作系統,但差距在逐漸縮小。由于Android開源的特點,其應用程序數量呈幾何級數增長,不久的將來,勢必成為操作系統的主流。
1.1.4 Android平臺架構
Android應用程序以Java為編程語言,使Android從接口到功能都有層出不窮的變化,Android的體系結構如圖1-1所示。

圖1-1 Android體系結構示意圖
1.Linux Kernel(Linux內核)
Android是在Linux 2.6的內核基礎之上運行的,提供的核心系統服務有安全、內存管理、進程管理、網絡組、驅動模型。
2.Android Runtime(Android運行時)
內核之上是核心庫和一個叫作Dalvik的Java虛擬機。核心庫提供了Java語言核心庫中包含的大部分功能,虛擬機負責運行程序。
3.Libraries(庫)
Android提供了一組C/C++庫,它們為平臺的不同組件所使用。開發人員通過Application Framework使用這些庫所提供的不同功能。
4.Application Framework(應用程序框架)
無論是Android提供的應用程序還是開發人員自己編寫的應用程序,都需要使用到Application Framework。Application Framework不僅可以大幅度簡化代碼的編寫,而且提高了程序的復用性。
5.Application(應用程序)
Android提供了一組應用程序,包括Email客戶端、SMS程序、日歷、地圖、瀏覽器、通信錄等。這部分程序均使用Java語言編寫。本書所述的開發技術即指此層的應用程序。
在Android體系結構中,每個Android應用程序都運行在自己的進程上,享有Dalvik虛擬機為它分配的專有實例。Dalvik虛擬機執行的是Dalvik格式的可執行文件(.dex:該格式經過優化,將內存消耗降到最低)。Java編譯器將Java源文件轉為class文件,class文件又被內置的dx工具轉化為dex格式文件,dex文件在Dalvik虛擬機上注冊并運行。
Android應用程序都是運行在Dalvik虛擬機之上的Java軟件,而Dalvik虛擬機是運行在Linux上的,在一些底層功能如線程和低內存管理方面,Dalvik虛擬機是依賴Linux內核的。因此可以說Android是運行在Linux之上的操作系統,但其本身不能算是Linux的某個版本。
1.1.5 Android市場
Android市場是Google公司為Android平臺提供的在線應用商店,Android用戶可以在該市場中瀏覽、下載和購買第三方人員開發的應用程序。
對于開發人員,有兩種盈利方式:第一種方式是出售應用程序,開發人員可以獲得該應用程序售價的70%,其余30%作為其他費用;第二種方式是加廣告:將自己的應用程序定位為免費的,在應用程序中增加廣告鏈接,靠點擊率掙錢。