Android 操作系統(tǒng)-新手必知 Android 操作系統(tǒng)-新手必知 Android 操作系統(tǒng)介紹 Android是Google于2007年11月05日宣布的基于Linux平臺(tái)的開源手機(jī)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。它采用軟件堆層(Software Stack,又名軟件疊層)的架構(gòu),主要分為三部分。底層以Linux內(nèi)核工作為基礎(chǔ),由C語(yǔ)言開發(fā),只提供基本功能;中間層包括函數(shù)庫(kù)Library和 虛擬機(jī)Virtual Machine,由C++開發(fā)。最上層是各種應(yīng)用軟件,包括通話程序,短信程序等,應(yīng)用軟件則由各公司自行開發(fā),以Java作為編寫程序的一部分。 Android一詞的本義指“機(jī)器人”,最初的Android主要支持手機(jī),后來經(jīng)過開發(fā)改良,逐漸擴(kuò)展到平板電腦及其他一些領(lǐng)域上,是首個(gè)為移動(dòng)終端打造的真正的開放和完整的移動(dòng)軟件。 系統(tǒng)架構(gòu): Android的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu)。Android分為四個(gè)層,從高層到低層分別是應(yīng)用程序?qū)印?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層和Linux內(nèi)核層。 一、應(yīng)用程序 Android會(huì)同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA語(yǔ)言編寫的。 二、應(yīng)用程序框架 開發(fā)人員也可以完全訪問核心應(yīng)用程序所使用的API框架。該應(yīng)用程序的架構(gòu)設(shè)計(jì)簡(jiǎn)化了組件的重用;任何一個(gè)應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性)。同樣,該應(yīng)用程序重用機(jī)制也使用戶可以方便的替換程序組件。 三、系統(tǒng)運(yùn)行庫(kù) Android 包含一些C/C++庫(kù),這些庫(kù)能被Android系統(tǒng)中不同的組件使用。它們通過 Android 應(yīng)用程序框架為開發(fā)者提供服務(wù)。 四、Linux內(nèi)核層 Android內(nèi)核是基于Linux 內(nèi)核的修改的內(nèi)核版本,它提供了用于支持Android平臺(tái)的設(shè)備驅(qū)動(dòng)。 系統(tǒng)結(jié)構(gòu): 一、系統(tǒng)內(nèi)核 Android 是運(yùn)行于Linux kernel之上,但并不是GNU/Linux。因?yàn)樵谝话鉍NU/Linux 里支持的功能,Android 大都沒有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以Bionic 取代Glibc、以Skia 取代Cairo、再以opencore取代FFmpeg等等。Android 為了達(dá)到商業(yè)應(yīng)用,必須移除被GNU GPL授權(quán)證所約束的部份,例如Android將驅(qū)動(dòng)程序移到 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ū)動(dòng)模塊。HAL 的目的是為了把 Android framework 與 Linux kernel 隔開,讓 Android 不至過度依賴 Linux kernel,以達(dá)成 Kernel independent 的概念,也讓 Android framework 的開發(fā)能在不考量驅(qū)動(dòng)程序?qū)崿F(xiàn)的前提下進(jìn)行發(fā)展。 三、中介軟件 操作系統(tǒng)與應(yīng)用程序的溝通橋梁,應(yīng)用分為兩層:函數(shù)層(Library)和虛擬機(jī)(Virtual Machine)。 Bionic是 Android 改良libc的版本。Android 同時(shí)包含了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收購(gòu),2007年初,Skia GL源碼被公開,Skia也是Google Chrome 的圖形引擎。 Android的多媒體數(shù)據(jù)庫(kù)采用SQLite數(shù)據(jù)庫(kù)系統(tǒng)。數(shù)據(jù)庫(kù)又分為共用數(shù)據(jù)庫(kù)及私用數(shù)據(jù)庫(kù)。用戶可通過ContentResolver類(Column)取得共用數(shù)據(jù)庫(kù)。 Android的中間層多以Java 實(shí)現(xiàn),并且采用特殊的Dalvik 虛擬機(jī)(Dalvik Virtual Machine)。Dalvik虛擬機(jī)是一種“暫存器型態(tài)”(Register Based)的Java虛擬機(jī),變量皆存放于暫存器中,虛擬機(jī)的指令相對(duì)減少。 Dalvik虛擬機(jī)可以有多個(gè)實(shí)例(Instance), 每個(gè)Android應(yīng)用程序都用一個(gè)自屬的Dalvik虛擬機(jī)來運(yùn)行,讓系統(tǒng)在運(yùn)行程序時(shí)可達(dá)到優(yōu)化。Dalvik 虛擬機(jī)并非運(yùn)行Java字節(jié)碼(Bytecode),而是運(yùn)行一種稱為.dex格式的文件。 四、安全權(quán)限機(jī)制 Android本身是一個(gè)權(quán)限分立的操作系統(tǒng)。在這類操作系統(tǒng)中,每個(gè)應(yīng)用都以唯一的一個(gè)系統(tǒng)識(shí)別身份運(yùn)行(Linux用戶ID與群組ID)。系統(tǒng)的各部分也分別使用各自獨(dú)立的識(shí)別方式。Linux就是這樣將應(yīng)用與應(yīng)用,應(yīng)用與系統(tǒng)隔離開。 應(yīng)用組件: Android開發(fā)四大組件分別是: 一、活動(dòng)(Activity): 用于表現(xiàn)功能。 二、服務(wù)(Service): 后臺(tái)運(yùn)行服務(wù),不提供界面呈現(xiàn)。 三、廣播接收器(BroadcastReceiver):用于接收廣播。 四、內(nèi)容提供商(ContentProvider): 支持在多個(gè)應(yīng)用中存儲(chǔ)和讀取數(shù)據(jù),相當(dāng)于數(shù)據(jù)庫(kù)。 Android 操作系統(tǒng)的優(yōu)點(diǎn): 一、開源 Android不像其他的操作系統(tǒng)那樣封閉。它是開源的,允許第三方修改。所謂的“開源”是用于描述那些源碼可以被公眾使用的軟件,并且此軟件的使用、修改和發(fā)行也不受限制。Android操作系統(tǒng)的開源意味著開放的平臺(tái)允許任何移動(dòng)端的廠商加入到Android聯(lián)盟中來。同時(shí)專業(yè)人士也可以利用其開放的源代碼進(jìn)行二次開發(fā),打造出個(gè)性化的Android。 二、給用戶的自由度高 Android操作系統(tǒng)給予了用戶跟高的自由度,熟悉Android的都清楚:用戶可以根據(jù)自己的喜好來設(shè)置手機(jī)界面,Android的應(yīng)用市場(chǎng)甚至上還有各式各樣的啟動(dòng)器來供用戶自己選擇,讓自己的手機(jī)與眾不同。 深圳安卓學(xué)習(xí)實(shí)訓(xùn),小班授課,實(shí)操為主,詳情聯(lián)系郭老師QQ754634522 三、選擇多樣化 由于Android的開放性,眾多的廠商為了迎合大眾會(huì)推出層出不窮的新產(chǎn)品。迄今為止,以Android為操作系統(tǒng)的機(jī)型已經(jīng)達(dá)到了幾十上百種。但是這些功能、機(jī)型上的差異不會(huì)影響到數(shù)據(jù)的同步、軟件的兼容等等。這樣便給了消費(fèi)者更多地購(gòu)機(jī)選擇。 更多學(xué)習(xí)單片機(jī)嵌入式 ARM PCB FPGA DSP Linux c 的童鞋請(qǐng)咨詢郭老師QQ1962426343 TEL:15737137972 深圳 廣州 鄭州 長(zhǎng)沙 南寧同步學(xué)習(xí)中。。 |