- Android移動開發案例教程:基于Android Studio開發環境
- 張光河
- 1063字
- 2020-10-23 15:56:10
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系統實現了底層硬件與上層軟件之間的抽象。
- Instant Zepto.js
- Vue.js快速入門與深入實戰
- 算法基礎:打開程序設計之門
- 面向對象程序設計(Java版)
- Python面向對象編程:構建游戲和GUI
- Android Native Development Kit Cookbook
- Gradle for Android
- R大數據分析實用指南
- BIM概論及Revit精講
- Swift細致入門與最佳實踐
- Visual Basic程序設計上機實驗教程
- Java高并發核心編程(卷1):NIO、Netty、Redis、ZooKeeper
- Practical Game Design with Unity and Playmaker
- Getting Started with Polymer
- Application Development with Swift