日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 系统架构

發布時間:2023/12/18 Android 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 系统架构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android 系統從下至上分為四層:Linux 內核、Android 核心庫及Android 運行時環境(Android Runtime)、

應用程序框架以及應用程序等。

Linux 內核(Linux Kernel)
Android 的核心系統服務依賴于Linux 2.6,例如,安全、內存管理、進程管理、網絡堆棧、驅動模型。
Linux Kernel 也作為硬件和軟件之間的抽象層,它隱藏具體硬件細節而為上層提供統一的服務。
除了標準的 Linux 內核以外,Android 系統還增加了內核的驅動程序,例如,顯示驅動、藍牙驅動、
相機驅動、閃存卡驅動、Binder IPC 驅動、輸入設備驅動、USB 驅動、WiFi 驅動、音頻系統驅動、電源管
理等,為Android 系統的運行提供基礎性支持。
這樣分層的好處就是使用下層提供的服務而為上層提供統一的服務,屏蔽本層及以下層的差異,當本
層及以下層發生了變化時,不會影響到上層。也就是說,各層各盡其職,各層提供固定的SAP(Service Access
Point),即高內聚、低耦合。

Android 核心庫(Libraries)
Android 包含一個C/C++庫的集合,以供Android 系統的各個組件使用。這些功能通過Android 的應用
程序框架(Application Framework)展現給開發者。下面列出一些核心庫:
? 1、系統 C 庫——由BSD 繼承衍生的標準C 系統函數庫(libc),調整為基于嵌入式Linux 設備的庫。
? 2、媒體庫——基于 PacketVideo 的OpenCORE。這些庫支持播放和錄制多種流行的音頻和視頻格式,
以及多種媒體格式的編碼/解碼格式,包括MPEG4、 H.264、 MP3、AAC、AMR、JPG、PNG。
?3、 界面管理——顯示子系統的管理器,管理訪問顯示子系統和無縫組合多個應用程序的二維和三維
圖形層。
??? 4、LibWebCore——新式的Web 瀏覽器引擎,驅動Android 瀏覽器和可嵌入的Web 視圖。
?5、 SGL——Skia 圖形庫,基本的2D 圖形引擎。
?6、 3D libraries——基于OpenGL ES APIs 的實現。該庫使用硬件3D 加速或使用高度優化的3D 軟加
速。
?7、 FreeType ——位圖(Bitmap)和矢量(Vector)字體渲染。
?8、 SQLite ——所有應用程序都可以使用的強大而輕量級的關系數據庫引擎。

Android 運行時環境(Android Runtime)
在 Linux 內核層上還有一個Android 運行時層,該層包括Dalvik 虛擬機及Java 核心庫,提供了Java
編程語言核心庫的大多數功能。
Dalvik 虛擬機是Android 使用的Java 虛擬機。每一個Android 應用程序是Dalvik 虛擬機中的實例,運
行在它們自己的進程中。Dalvik 虛擬機設計成在一個設備上可以高效地運行多個虛擬機。Dalvik 虛擬機可
執行的文件格式是.dex,.dex 格式是專為Dalvik 設計的一種壓縮格式,適合內存和處理器速度有限的系統。
大多數虛擬機(包括JVM)都是基于棧的,而Dalvik 虛擬機則是基于寄存器的。兩種架構各有優劣,
一般而言,基于棧的機器需要更多的指令,而基于寄存器的機器指令更大。DX 是一套工具,可以將
Java .class 轉換成 .dex 格式。一個.dex 文件通常會有多個.class。由于.dex 有時必須進行最佳化,會使文
件大小增加1~4 倍,以ODEX 結尾。
Dalvik 虛擬機依賴于Linux 內核提供基本功能,如線程和底層內存管理。

Android 應用程序框架(Application Framework)
位于 Android 程序庫和運行時上面的是應用程序框架層。通過提供開放的開發平臺,Android 使開發
者能夠訪問核心應用程序所使用的API 框架,這樣使得組件的重用得以簡化,任何應用程序都能發布它的
功能且任何其他應用程序可以使用這些功能(需要服從框架執行的安全限制)。從而使開發者可以編制極
其豐富和新穎的應用程序,自由地利用設備硬件優勢、訪問位置信息、運行后臺服務、設置鬧鐘、向狀態
欄添加通知等。
每個應用程序其實是一組服務和系統,包括:
? 視圖(View)——豐富的、可擴展的視圖集合,用來構建應用程序。包括列表(ListView)、網格
(Grid)、文本框(EditText/TextView)、按鈕(Button)等,甚至是可嵌入的網頁瀏覽器(WebView)。
? 內容提供器(Content Providers)——使應用程序可以訪問其他應用程序(如通訊錄)的數據,或
共享自己的數據。
? 資源管理器(Resource Manager)——提供對于非代碼資源的訪問,如本地化字符串、圖形和布局
文件。
? 通知管理器(Notification Manager)——使應用程序能夠在狀態欄顯示自定義的提示信息。
? 活動管理器(Activity Manager)——管理應用程序生命周期,并提供常用的導航回退功能

Android 應用程序
Android 裝配一個核心應用程序集合,連同系統一起發布,這些應用程序包括電子郵件客戶端、SMS
程序、日歷、地圖、瀏覽器、聯系人和其他設置等。而所有應用程序都是用Java 語言編寫的,由用戶開發
的Android 應用程序和Android 核心應用程序是同一層次的。

轉載于:https://www.cnblogs.com/running-mydream/p/4418585.html

總結

以上是生活随笔為你收集整理的Android 系统架构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。