Android 系統架構,android系統架構

來源:互聯網
上載者:User

Android 系統架構,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——新式的網頁瀏覽器引擎,驅動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)——使應用程式能夠在狀態列顯示自訂的提示資訊。
Active Manager(Activity Manager)——管理應用程式生命週期,並提供常用的導航回退功能

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.