Android操作系統(tǒng)必須了解的知識
Android操作系統(tǒng)必須了解的知識
Android一詞的本義指“機器人”,最初的Android主要支持手機,后來經(jīng)過開發(fā)改良,逐漸擴展到平板電腦及其他一些領(lǐng)域上,是首個為移動終端打造的真正的開放和完整的移動軟件。接下來是小編為大家收集的Android 操作系統(tǒng)必須了解的知識方法,希望能幫到大家。
Android 操作系統(tǒng)必須了解的知識:
Android 操作系統(tǒng)介紹
Android是Google于2007年11月05日宣布的基于Linux平臺的開源手機操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。它采用軟件堆層(Software Stack,又名軟件疊層)的架構(gòu),主要分為三部分。底層以Linux內(nèi)核工作為基礎(chǔ),由C語言開發(fā),只提供基本功能;中間層包括函數(shù)庫Library和 虛擬機Virtual Machine,由C++開發(fā)。最上層是各種應(yīng)用軟件,包括通話程序,短信程序等,應(yīng)用軟件則由各公司自行開發(fā),以Java作為編寫程序的一部分。
Android一詞的本義指“機器人”,最初的Android主要支持手機,后來經(jīng)過開發(fā)改良,逐漸擴展到平板電腦及其他一些領(lǐng)域上,是首個為移動終端打造的真正的開放和完整的移動軟件。
系統(tǒng)架構(gòu):
Android的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu)。Android分為四個層,從高層到低層分別是應(yīng)用程序?qū)印?yīng)用程序框架層、系統(tǒng)運行庫層和Linux內(nèi)核層。
一、應(yīng)用程序
Android會同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA語言編寫的。
二、應(yīng)用程序框架
開發(fā)人員也可以完全訪問核心應(yīng)用程序所使用的API框架。該應(yīng)用程序的架構(gòu)設(shè)計簡化了組件的重用;任何一個應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性)。同樣,該應(yīng)用程序重用機制也使用戶可以方便的替換程序組件。
三、系統(tǒng)運行庫
Android 包含一些C/C++庫,這些庫能被Android系統(tǒng)中不同的組件使用。它們通過 Android 應(yīng)用程序框架為開發(fā)者提供服務(wù)。
四、Linux內(nèi)核層
Android內(nèi)核是基于Linux 內(nèi)核的修改的內(nèi)核版本,它提供了用于支持Android平臺的設(shè)備驅(qū)動。
系統(tǒng)結(jié)構(gòu):
一、系統(tǒng)內(nèi)核
Android 是運行于Linux kernel之上,但并不是GNU/Linux。因為在一般GNU/Linux 里支持的功能,Android 大都沒有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以Bionic 取代Glibc、以Skia 取代Cairo、再以opencore取代FFmpeg等等。Android 為了達到商業(yè)應(yīng)用,必須移除被GNU GPL授權(quán)證所約束的部份,例如Android將驅(qū)動程序移到 Userspace,使得Linux driver 與 Linux kernel徹底分開。Bionic/Libc/Kernel/ 并非標(biāo)準(zhǔn)的Kernel header files。Android 的 Kernel header 是利用工具由 Linux Kernel header 所產(chǎn)生的,這樣做是為了保留常數(shù)、數(shù)據(jù)結(jié)構(gòu)與宏。
二、硬件抽像層
Android 的HAL(硬件抽像層)是能以封閉源碼形式提供硬件驅(qū)動模塊。HAL 的目的是為了把 Android framework 與 Linux kernel 隔開,讓 Android 不至過度依賴 Linux kernel,以達成 Kernel independent 的概念,也讓 Android framework 的開發(fā)能在不考量驅(qū)動程序?qū)崿F(xiàn)的前提下進行發(fā)展。
三、中介軟件
操作系統(tǒng)與應(yīng)用程序的溝通橋梁,應(yīng)用分為兩層:函數(shù)層(Library)和虛擬機(Virtual Machine)。 Bionic是 Android 改良libc的版本。Android 同時包含了Webkit,所謂的Webkit 就是Apple Safari 瀏覽器背后的引擎。Surface flinger 是就2D或3D的內(nèi)容顯示到屏幕上。Android使用工具鏈(Toolchain)為Google自制的BionicLibc。
Android采用OpenCORE作為基礎(chǔ)多媒體框架。Open CORE可分7大塊:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。
Android 使用skia 為核心圖形引擎,搭配OpenGL/ES。skia與LinuxCairo功能相當(dāng),但相較于Linux Cairo, skia 功能還只是雛形的。2005年Skia公司被Google收購,2007年初,Skia GL源碼被公開,Skia也是Google Chrome 的圖形引擎。
Android的多媒體數(shù)據(jù)庫采用SQLite數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫又分為共用數(shù)據(jù)庫及私用數(shù)據(jù)庫。用戶可通過ContentResolver類(Column)取得共用數(shù)據(jù)庫。
Android的中間層多以Java 實現(xiàn),并且采用特殊的Dalvik 虛擬機(Dalvik Virtual Machine)。Dalvik虛擬機是一種“暫存器型態(tài)”(Register Based)的Java虛擬機,變量皆存放于暫存器中,虛擬機的指令相對減少。
Dalvik虛擬機可以有多個實例(Instance), 每個Android應(yīng)用程序都用一個自屬的Dalvik虛擬機來運行,讓系統(tǒng)在運行程序時可達到優(yōu)化。Dalvik 虛擬機并非運行Java字節(jié)碼(Bytecode),而是運行一種稱為.dex格式的文件。
四、安全權(quán)限機制
Android本身是一個權(quán)限分立的操作系統(tǒng)。在這類操作系統(tǒng)中,每個應(yīng)用都以唯一的一個系統(tǒng)識別身份運行(Linux用戶ID與群組ID)。系統(tǒng)的各部分也分別使用各自獨立的識別方式。Linux就是這樣將應(yīng)用與應(yīng)用,應(yīng)用與系統(tǒng)隔離開。
應(yīng)用組件:
Android開發(fā)四大組件分別是:
一、活動(Activity): 用于表現(xiàn)功能。
二、服務(wù)(Service): 后臺運行服務(wù),不提供界面呈現(xiàn)。
三、廣播接收器(BroadcastReceiver):用于接收廣播。
四、內(nèi)容提供商(ContentProvider): 支持在多個應(yīng)用中存儲和讀取數(shù)據(jù),相當(dāng)于數(shù)據(jù)庫。
Android 操作系統(tǒng)的優(yōu)點:
一、開源
Android不像其他的操作系統(tǒng)那樣封閉。它是開源的,允許第三方修改。所謂的“開源”是用于描述那些源碼可以被公眾使用的軟件,并且此軟件的使用、修改和發(fā)行也不受限制。Android操作系統(tǒng)的開源意味著開放的平臺允許任何移動端的廠商加入到Android聯(lián)盟中來。同時專業(yè)人士也可以利用其開放的源代碼進行二次開發(fā),打造出個性化的Android。
二、給用戶的自由度高
Android操作系統(tǒng)給予了用戶跟高的自由度,熟悉Android的都清楚:用戶可以根據(jù)自己的喜好來設(shè)置手機界面,Android的應(yīng)用市場甚至上還有各式各樣的啟動器來供用戶自己選擇,讓自己的手機與眾不同。
三、選擇多樣化
由于Android的開放性,眾多的廠商為了迎合大眾會推出層出不窮的新產(chǎn)品。迄今為止,以Android為操作系統(tǒng)的機型已經(jīng)達到了幾十上百種。但是這些功能、機型上的差異不會影響到數(shù)據(jù)的同步、軟件的兼容等等。這樣便給了消費者更多地購機選擇。
Android 操作系統(tǒng)的發(fā)展:
Android在正式發(fā)行之前,最開始擁有兩個內(nèi)部測試版本,并且以著名的機器人名稱來對其進行命名,它們分別是:阿童木(AndroidBeta),發(fā)條機器人(Android 1.0)。自Android 1.5發(fā)布的開始谷歌以甜點命名法為Android 命名:紙杯蛋糕(Android 1.5),甜甜圈(Android 1.6),松餅(Android 2.0/2.1),凍酸奶(Android 2.2),姜餅(Android 2.3),蜂巢(Android 3.0),冰激凌三明治(Android 4.0),果凍豆(Jelly Bean,Android4.1和Android 4.2)。
看了“Android 操作系統(tǒng)必須了解的知識”還想看: