Android四层架构
生活随笔
收集整理的這篇文章主要介紹了
Android四层架构
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Andrid系統的體系結構設計為多層結構,這種結構在給用戶提供安全保護的同時還保持了開放平臺的靈活性。如下圖所示:
Google官方提供的Android系統的四層架構圖從上到下進行簡單介紹:
一、應用層 Applications:應用層由運行在Android設備上的所有應用構成,包括預裝的系統應用和自己安裝的第三方應用。大部分是由Java語言編寫并運行在Dalvik虛擬機中,另一部分應用是通過c++/c語言編寫的本地應用。但無論采用何種編程語言,兩類應用運行的安全環境相同,都在應用沙箱中運行。而程序員正是在這層中,通過Android提供的組件和API進行開發,從而編寫出形形色色的app。
二、應用框架層 Application Framework:集中體現Android系統系統的組件設計思想,是Android應用開發的核心,為開發者開發應用時提供基礎的API框架。框架層由多個系統服務組成。我們知道Android應用是由若干個組件構成,組件與組件之間的通信是通過框架層提供的服務集中調度和傳遞消息實現的,而不是組件之間直接進行的。
- View System 主要用于UI設計,包括List、Grid、Text、Button、Webview等。
- Activity Manager Service -AMS 負責管理應用程序中的activity的生命周幾以及提供activity之間切換功能等 Intent相關。
- Windows Manager Service-WMS 用于管理所有的窗口程序,如Dialog、Toast等。
- Recource Manager 提供非代碼資源的管理 如布局文件、圖形、字符串資源文件等。
- Location Manager 負責與定位功能相關功能
- Content Providers 提供了一組通用的數據訪問接口,可用于應用程序間的內容交互,比如獲取手機聯系人數據等。
- Notification Manager 用戶管理手機狀態欄中的自定義信息等。
- Telephony Manager 手機底層功能管理模塊,可用于獲取手機串號或者調用短信功能
- Pacakage Manager Android系統內的包管理模塊,負責管理安裝的應用程序。
- XMPP Service 用于主持XMPP協議的服務,比如與Google Talk通信等
三、類庫層:主要由類庫 Libraries 和Android運行時 Android Runtime 兩部分組成:
1.類庫 Libraries 由一系列的二進制動態庫構成,大部分來源于優秀的第三方類庫,另一部分是系統原生類庫,通常使用c/c++語言開發。(因為java代碼無法直接調用c/c++驅動代碼,所以在這一層,系統通過封裝了一系列的函數庫供上層使用.)以下列舉一些比較重要的類庫的功能,以供了解:
- Surface Manager: 負責管理顯示與存取操作間的互動,另外也負責將2D繪圖與3D繪圖進行顯示上的合成
- Media Framework: 一個開源的多媒體框架,允許我們創造出更高質量與全新的播放器效果
- SQLite: 安卓自帶的數據庫,是一個嵌入式的數據庫
- OpenGL ES: 是 OpenGL 三維圖形 API 的子集,針對手機、PDA和游戲主機等嵌入式設備而設計。3D效果庫
- FreeType: 一個完全免費(開源)的、高質量的且可移植的字體引擎。支持位圖、矢量、字體等
- SGL: 2D圖形引擎庫
- SSL: 位于TCP/IP協議與各種應用層協議之間,為數據通信提供支持。是安全數據通信的支持。
- WebKit: 是一個開源的瀏覽器引擎。
- Libc: c層中最基本的函數庫
2.Android運行時 Android Runtime 是由Java核心類庫(Core Libraries)和Android虛擬機(Dalvik)共同構成。
-
Java核心類庫包括框架層和應用層所用到的基本Java庫。
-
Dalvik是為Android量身打造的Java虛擬機,它與標準Java虛擬機JVM的差別在于Dalvik是基于寄存器設計的,而JVM是基于棧結構設計的;JVM通過解碼class文件(java編譯生成的的:.java---.class 的class文件)中的內容來運行程序;而Dalvik運行時是由java字節碼文件進一步轉化而來的文件,,并被打包成一個DEX可執行文件,Dalvik虛擬機通過解釋DEX文件來執行這些字節碼 ,即android的class 文件實際上只是編譯過程中的中間目標文件,需要鏈接成dex 文件后才能在dalvik 上運行;Dalvik能夠更快的編譯較大的應用程序,允許在有限的內存空間中同時運行多個虛擬機的實例,每一個Dalvik應用作為一個獨立的Linux進程執行,這樣可以防止某一虛擬機崩潰時所有的應用都被關閉。
四、系統內核層 Linux Kernel
Android內核具有和標準的Linux內核一樣的功能,主要實現內存管理、進程調度、進程間通信(Android增加了一種進程間的通信機制IPC Binder)、設備驅動(Display Driver: 顯示驅動;Camera Driver: 照相機驅動;Flash Memory Driver: 閃存驅動;Binder Driver: IPC通訊驅動;KeyPad Driver: 鍵映射驅動;Wifi Driver:Wifi驅動;Audio Driver:音頻驅動;Power Management:電量管理驅動)等
作者:芒果味的你呀
鏈接:https://www.jianshu.com/p/cf260703f8ff
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權并注明出處。
轉載于:https://www.cnblogs.com/yinrw/p/10694178.html
總結
以上是生活随笔為你收集整理的Android四层架构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java开发,月薪30k需要掌握哪些主流
- 下一篇: [Android]文本框实现搜索和清空效