在日常學(xué)習(xí)、工作或生活中,大家總少不了接觸作文或者范文吧,通過文章可以把我們那些零零散散的思想,聚集在一塊。那么我們該如何寫一篇較為完美的范文呢?這里我整理了一些優(yōu)秀的范文,希望對大家有所幫助,下面我們就來了解一下吧。
android系統(tǒng)架構(gòu)圖篇一
目前android的linux kernel控制包括安全、存儲器管理、進(jìn)程管理、網(wǎng)絡(luò)堆疊、驅(qū)動(dòng)程序模型等。下載android源碼之前,先要安裝其構(gòu)建工具repo來初始化源碼。repo是android用來輔助git工作的一個(gè)工具。
android系統(tǒng)是基于linux內(nèi)核開發(fā),使用java作編程語言,使界面到功能,都有層出不窮的變化,其中activity等同于j2me的midlet,一個(gè)activity類別負(fù)責(zé)創(chuàng)建視窗,一個(gè)活動(dòng)中的activity就是在foreground(前景)模式,背景執(zhí)行的程序叫做service。兩者之間透過由serviceconnection和aidl連結(jié),達(dá)到復(fù)數(shù)程序同時(shí)執(zhí)行的效果。如果執(zhí)行中的activity全部畫面被其他activity取代時(shí),該activity便被停止,甚至被系統(tǒng)清除。
view等同于j2me的displayable,程序人員可以透過view類別與“xml layout”檔將ui放置在視窗上,并可以利用view打造出所謂的widgets,其實(shí)widget只是view的一種,所以可以使用xml來設(shè)計(jì)layout。至于viewgroup是各種layout的基礎(chǔ)抽象類別,viewgroup之內(nèi)還可以有viewgroup。view的構(gòu)造函數(shù)不需要在activity中調(diào)用,但是displayable的是必須的,在activity中,要通過findviewbyid()來從xml中獲取view,android的view類的顯示很大程度上是從xml中讀取的。view與事件息息相關(guān),兩者之間透過listener結(jié)合在一起,每一個(gè)view都可以注冊event listener,例如:當(dāng)view要處理用戶觸碰的事件時(shí),klistener。另外還有image等同于j2me的bitmap。
操作系統(tǒng)與應(yīng)用程序的溝通橋梁,并用分為兩層:函數(shù)層和虛擬機(jī)器。 bionic是android改良libc的版本。android包含了chrome瀏覽器引擎。surface flinger是就2d或3d的內(nèi)容顯示到螢?zāi)簧稀?libc。
android采用opencore作為基礎(chǔ)多媒體框架。opencore可分7大塊:pvplayer、pvauthor、codec、packetvideo multimedia framework(pvmf)、operating system compatibility library(oscl)、common、openmax。
android使用skia為核心圖形引擎,搭配opengl/es。skia與linux cairo功能相當(dāng),但相較于linux cairo,skia功能還只是陽春型的。2005年skia公司被google收購,2007年初,skia gl源碼被公開,目前skia也是google chrome的圖形引擎。
android的多媒體資料庫采用sqlite資料庫系統(tǒng)。資料庫又分為共用資料庫及私用資料庫。用戶可透過contentprovider類別獲取共用資料庫。
android的中間層多以java實(shí)現(xiàn),4.4版之前使用特殊的dalvik虛擬機(jī)器。dalvik虛擬機(jī)器是一種“暫存器型態(tài)”的java虛擬機(jī)器,變數(shù)皆存放于暫存器中,虛擬機(jī)器的指令相對減少。5.0版起改用android runtime(art)。
dalvik虛擬機(jī)器可以有多個(gè)實(shí)例,每個(gè)android應(yīng)用程序都用一個(gè)自屬的dalvik虛擬機(jī)器來執(zhí)行,讓系統(tǒng)在執(zhí)行程序時(shí)可達(dá)到最優(yōu)化。dalvik虛擬機(jī)器并非執(zhí)行java字節(jié)碼,格式的檔案。
android的硬件抽像層是能以封閉源碼形式提供硬件驅(qū)動(dòng)模塊。hal的目的是為了把a(bǔ)ndroid framework與linux kernel隔開,讓android不至過度依賴linux kernel,以達(dá)成“內(nèi)核獨(dú)立”(kernel independent)的概念,也讓android framework的開發(fā)能在不考量驅(qū)動(dòng)程序?qū)崿F(xiàn)的前提下進(jìn)行發(fā)展,以達(dá)到壟斷gpu市場的目的。
hal stub是一種代理人的概念,stub是以*.so檔的形式存在。stub向hal“提供”操作函數(shù),并由android runtime向hal獲取stub的操作,再回調(diào)這些操作函數(shù)。hal里包含了許多的stub(代理人)。runtime只要說明“類型”,即module id,就可以獲取操作函數(shù)。
android是執(zhí)行于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)(user space driver)這種東西。所有的驅(qū)動(dòng)還是在內(nèi)核空間中,并以hal隔開版權(quán)問題。bionic/libc/kernel/ 并非標(biāo)準(zhǔn)的內(nèi)核頭文件(kernel header files)。android的內(nèi)核頭文件是利用工具由linux內(nèi)核的頭文件所產(chǎn)生的,這樣做是為了保留常數(shù)、資料結(jié)構(gòu)與宏。
android的核心基于linux,除了核心之外,則是中介層、數(shù)據(jù)庫元和用c/c++編寫的api以及應(yīng)用程序框架。android的應(yīng)用程序通常以java數(shù)據(jù)庫元為基礎(chǔ)編寫,運(yùn)行程序時(shí),應(yīng)用程序的代碼會(huì)被即時(shí)轉(zhuǎn)變?yōu)閐alvik dex-code(dalvik executable),然后android操作系統(tǒng)通過使用即時(shí)編譯的dalvik虛擬機(jī)來將其運(yùn)行。
s("content_relate");【android系統(tǒng)架構(gòu)簡介】相關(guān)文章:
1.
智慧健康系統(tǒng)架構(gòu)
2.秒殺系統(tǒng)架構(gòu)分析
3.軟件架構(gòu)是什么-什么是系統(tǒng)架構(gòu)
4.什么是系統(tǒng)架構(gòu)師-如何成為系統(tǒng)架構(gòu)師
5.系統(tǒng)架構(gòu)師概述
6.sap系統(tǒng)架構(gòu)是什么
7.如何搭建系統(tǒng)css架構(gòu)
8.什么是系統(tǒng)架構(gòu)師
【本文地址:http://mlvmservice.com/zuowen/2720602.html】