官术网_书友最值得收藏!

1.2 Android平臺架構和特點

Android系統的底層是建立在Linux系統之上的,它采用軟件疊層(Software Stack)的方式進行構建。這一方式使得層與層之間相互分離,明確了各層的分工,保證了層與層之間的低耦合,當下層發生改變的時候,上層應用程序無需做任何改變。Android 系統分為4個層,從高到底分別是:應用程序層(Application)、應用程序框架層(Application Framework)、系統運行庫層(Libraries)和Linux內核層(Linux Kernel)。

1.應用程序層(Application)

Android系統包含了一系列核心應用程序,包括電子郵件、短信SMS、日歷、撥號器、地圖、瀏覽器、聯系人等,這些應用程序都是用Java語言編寫。本書僅講解如何編寫Android系統上運行的應用程序,它們與系統核心應用程序類似。

2.應用程序框架層(Application Framework)

Android應用程序框架提供了大量的API供開發人員使用,Android應用程序的開發,就是調用這些 API,根據需求實現功能。應用程序框架是應用程序的基礎。為了便于軟件的復用,任何一個應用程序都可以開發Android系統的功能模塊,只要發布的時候遵循應用程序框架的規范,其他應用程序也可以使用這個功能模塊。

3.系統運行庫層(Libraries)

Android系統運行庫是用C/C++語言編寫的,是一套被不同組件所使用的函數庫組成的集合。一般來說,Android 應用開發者無法直接調用這套函數庫,都是通過它上層的應用程序框架提供的API來對這些函數庫進行調用。

下面對一些核心庫進行簡單的介紹。

Libc:從BSD系統派生出來的標準C系統庫,在此基礎之上,為了便攜式Linux系統專門進行了調整。

Media Framework:基于PacketView的OpenCORE,這套媒體庫支持播放與錄制硬盤及視頻格式的文件,并能查看靜態圖片。

Surface Manager:在執行多個應用程序的時候,負責管理顯示與存取操作間的互動,同時負責2D繪圖與3D繪圖進行顯示合成。

WebKit:Web瀏覽器引擎,該引擎為Android瀏覽器提供支持。

SGL:底層的2D圖像引擎。

3D libraries:基于OpenGL ES 1.0API,提供使用軟硬件實現3D加速的功能。

FreeType:提供位圖和向量字體的支持。

SQLite:輕量級的關系型數據庫。

Android 運行時由兩部分完成:Android 核心庫和 Dalvik 虛擬機。其中核心庫集提供了 Java語言核心庫所能使用的絕大部分功能,Dalvik 虛擬機負責運行 Android 應用程序。雖然 Android應用程序通過Java語言編寫,而每個Java程序都會在Java虛擬機JVM內運行,但是Android系統畢竟是運行在移動設備上的,由于硬件的限制, Android應用程序并不使用Java的虛擬機JVM來運行程序,而是使用自己獨立的虛擬機Dalvik VM,它針對多個同時高效運行的虛擬機進行了優化。每個Android應用程序都運行在單獨的一個Dalvik虛擬機內,因此Android系統可以方便對應用程序進行隔離。

4.Linux內核層(Linux Kernel)

Android系統是基于Linux 2.6之上建立的操作系統,它的Linux內核為Android系統提供了安全性、內存管理、進程管理、網絡協議棧、驅動模型等核心系統服務。Linux內核幫助Android系統實現了底層硬件與上層軟件之間的抽象。

主站蜘蛛池模板: 常山县| 西畴县| 克山县| 乡宁县| 湘乡市| 岳池县| 麦盖提县| 高碑店市| 闵行区| 乐山市| 福鼎市| 高要市| 石阡县| 娱乐| 鸡西市| 平顺县| 马龙县| 双柏县| 延川县| 达州市| 武平县| 崇文区| 新化县| 肥东县| 张北县| 南涧| 徐闻县| 永年县| 合川市| 古田县| 武定县| 兴海县| 菏泽市| 石河子市| 宜昌市| 三江| 龙南县| 吕梁市| 南陵县| 威远县| 兴文县|