AndroidOS体系结构
首先上圖一張
對照著圖,我們再來看Android 系統的體系結構就爽多了。我們從底層向上進行分析。
一、Linux 內核層
Linux Kernel 基于linux2.6。其核心系統服務如安全性、內存管理、進程管理、網路協議以及驅動模型都依賴于Linux內核。
那么為什么Android會選用Linux 內核呢?可能有以下原因:
(1)強大的內存管理和進程管理方案
(2)基于權限的安全模式
(3)支持共享庫
(4)經過認證的驅動模型
(5)Linux本身就是開源項目
二、系統運行庫層
?從圖中可以看出,系統運行庫層可以分成兩部分,分別是系統庫和Android運行時,分別介紹如下:
?? ? ? ? a)系統庫
?? ? ? ? ? ? ?系統庫是應用程序框架的支撐,是連接應用程序框架層與Linux內核層的重要紐帶。其主要分為如下幾個:
?? ? ? ? ? ? ????Surface Manager:
?? ? ? ? ? ? ? ? ?執行多個應用程序時候,負責管理顯示與存取操作間的互動,另外也負責2D繪圖與3D繪圖進行顯示合成。?
? ? ? ? ? ? ? ???Media Framework:?
?? ? ? ? ? ? ? ? ?多媒體庫,基于PacketVideo OpenCore;支持多種常用的音頻、視頻格式錄制和回放,編碼格式包括MPEG4、MP3、H.264、AAC、ARM。
?? ? ? ? ? ? ????SQLite:
?? ? ? ? ? ? ? ? ?小型的關系型數據庫引擎?
?? ? ? ? ? ? ????OpenGL|ES:
?? ? ? ? ? ? ? ? ?根據OpenGL ES 1.0API標準實現的3D繪圖函數庫?
?? ? ? ? ? ? ????FreeType:
?? ? ? ? ? ? ? ? ?提供點陣字與向量字的描繪與顯示?
?? ? ? ? ? ? ????WebKit:
?? ? ? ? ? ? ? ? ?一套網頁瀏覽器的軟件引擎
?? ? ? ? ? ? ????SGL:
?? ? ? ? ? ? ? ? ?底層的2D圖形渲染引擎?
?? ? ? ? ? ? ????SSL:
?? ? ? ? ? ? ? ? ?在Andorid上通信過程中實現握手?
?? ? ? ? ? ??????Libc:
?? ? ? ? ? ? 從BSD繼承來的標準C系統函數庫,專門為基于embedded linux的設備定制
?? ? ? ??b)Android運行時
?? ? ? ? ? ??Android應用程序時采用Java語言編寫,程序在Android運行時中執行,其運行時分為核心庫和Dalvik虛擬機兩部分。
?? ? ? ? ? ?????核心庫
?? ? ? ? ? ? ? ??核心庫提供了Java語言API中的大多數功能,同時也包含了Android的一些核心API,如android.os、android.net、android.media等等。
?? ? ? ? ? ?????Dalvik虛擬機
?? ? ? ? ? ? ? ??Android程序不同于J2me程序,每個Android應用程序都有一個專有的進程,并且不是多個程序運行在一個虛擬機中,而是每個Android程序都有一個Dalivik虛擬機的實例,并在該實例中執行。Dalvik虛擬機是一種基于寄存器的Java虛擬機,而不是傳統的基于棧的虛擬機,并進行了內存資源使用的優化以及支持多個虛擬機的特點。需要注意的是,不同于J2me,Android程序在虛擬機中執行的并非編譯后的字節碼,而是通過轉換工具dx將Java字節碼轉成dex格式的中間碼。
??2)應用程序框架層
?? ? ? ??應用程序框架層是我們從事Android開發的基礎,很多核心應用程序也是通過這一層來實現其核心功能的,該層簡化了組件的重用,開發人員可以直接使用其提 ? ?供的組件來進行快速的應用程序開發,也可以通過繼承而實現個性化的拓展。
?? ? ? ? a)?Activity Manager(活動管理器)
?? ? ? ? ? ? ?管理各個應用程序生命周期以及通常的導航回退功能
?? ? ? ? b)?Window Manager(窗口管理器)
?? ? ? ? ? ? ?管理所有的窗口程序
?? ? ? ? c)??Content Provider(內容提供器)
?? ? ? ? ? ? ?使得不同應用程序之間存取或者分享數據
?? ? ? ? d)?View System(視圖系統)
?? ? ? ? ? ? ?構建應用程序的基本組件
?? ? ? ? e)?Notification Manager(通告管理器)
?? ? ? ? ? ? ?使得應用程序可以在狀態欄中顯示自定義的提示信息
?? ? ? ? f)?Package Manager(包管理器)?
?? ? ? ? ? ? ?Android系統內的程序管理
?? ? ? ? g)Telephony Manager(電話管理器)
?? ? ? ? ? ? ?管理所有的移動設備功能
?? ? ? ? h)Resource Manager(資源管理器)
?? ? ? ? ? ? ?提供應用程序使用的各種非代碼資源,如本地化字符串、圖片、布局文件、顏色文件等
?? ? ? ? i)Location Manager(位置管理器)
?? ? ? ? ? ??提供位置服務
?? ? ? ? j)XMPP Service(XMPP服務)
?? ? ? ? ? ??提供Google Talk服務?
? ? 1)應用程序層
?? ? ? ??Android平臺不僅僅是操作系統,也包含了許多應用程序,諸如SMS短信客戶端程序、電話撥號程序、圖片瀏覽器、Web瀏覽器等應用程序。這些應用程序都是??? ? ?用Java語言編寫的,并且這些應用程序都是可以被開發人員開發的其他應用程序所替換,這點不同于其他手機操作系統固化在系統內部的系統軟件,更加靈活和個 ? ?性化。
轉載于:https://www.cnblogs.com/zhouliweiblog/p/3377977.html
總結
以上是生活随笔為你收集整理的AndroidOS体系结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android调试相关的技术常识
- 下一篇: windows剪切板暂存