Android架構簡要介紹,android簡要介紹

來源:互聯網
上載者:User

Android架構簡要介紹,android簡要介紹

1.      Android架構直觀圖

展示了Android系統的主要組成部分:

                              

   整體上而言,Android系統結構由5個部分組成,從上到下,別人是Applications (Android應用程式層)、ApplicationFramework (Android應用程式架構層)、Libraries、Android Runtime (Anroid運行時)、Linux Kernel (Linux核心)。其中,Libraries和Android Runtime處於Android架構的同一層。下面簡要介紹這5個部分。

2.      Applications層

Android裝配的一個核心應用程式集合,包括電子郵件用戶端、SMS應用程式、日曆、地圖、瀏覽器、連絡人和其他設定。所有應用程式,不管是使用者開發的,還是系統內建的應用程式都在該層。

3.      Application Framework層

Android應用程式的架構層,所有的應用程式都是在該架構的基礎上開發出來的。該架構通過提供開放的開發平台,使開發人員能夠編製出極其豐富和新穎的應用程式。例如,開發人員可以自由地利用裝置硬體優勢、訪問位置資訊、運行後台服務、設定鬧鐘、向狀態列中添加通知等。同時,開發人員可以利用核心應用程式所使用的架構APIs。此外,由於應用程式的體繫結構旨在簡化組件的重用,任何應用程式都能發布它的功能且任何其他的應用程式都能使用這些功能,同時這一機制還允許使用者替換Android的組件。

實際上,所有應用程式是一組服務和系統,它們包括:

      ● 視圖(View): 豐富的、可擴充的視圖集合,用於構建一個應用程式,包括列表、網路、文字框、按鈕,以及內嵌的網頁瀏覽器。

     ● 內容提供者(ContentProviders): 使應用程式能夠訪問其他應用程式的資料,或者共用自己的資料。

      ● 資源管理員(Resource Manager): 使應用程式能夠訪問非代碼資源。如本地化字串、圖形映像,以及介面布局檔案。

      ● 通知管理器(Notification Manager): 使所有的應用程式能夠在狀態列顯示自訂的警告。

      ● Active Manager(Activity Manager): 管理應用程式的生命週期,提供通用的導航回退功能。

4. Libraries層

   Android包含一個C/C++庫的集合,供Android系統的各個組件使用。這些功能通過Android的應用程式架構(application framework)暴露給開發人員。下面列出一些核心庫:

● 系統C庫: 標準C系統庫(libc)的BSD衍生,調整為基於嵌入式Linux裝置

● 媒體庫: 基於PacketVideo的OpenCORE。這些庫支援播放和錄製許多流行的音頻和視頻格式,以及靜態影像檔,包括MPEG4、 H.264、 MP3、 AAC、 AMR、JPG、 PNG

● 介面管理: 管理訪問顯示子系統和無縫組合多個應用程式的二維和三維圖形層

● LibWebCore: 新式的Web瀏覽器引擎,驅動Android 瀏覽器和內嵌的web視圖

● SGL: 基本的2D圖形引擎

● 3D庫: 基於OpenGL ES 1.0 APIs的實現。庫使用硬體3D加速或包含高度最佳化的3D軟體光柵

● FreeType: 位元影像和向量字型渲染

● SQLite: 所有應用程式都可以使用的強大而輕量級的關聯式資料庫引擎

5. Android Runtime 層

   Android 包含一個核心庫的集合,提供大部分在Java程式設計語言核心類庫中可用的功能。每一個Android應用程式是Dalvik虛擬機器中的執行個體,運行在他們自己的進程中。Dalvik虛擬機器設計成,在一個裝置中可以高效地運行多個虛擬機器。Dalvik虛擬機器可執行檔格式是.dex,dex格式是專為Dalvik 設計的一種壓縮格式,適合記憶體和處理器速度有限的系統。

大多數虛擬機器包括JVM都是基於棧的,而Dalvik虛擬機器則是基於寄存器的。兩種架構各有優劣,一般而言,基於棧的機器需要更多指令,而基於寄存器的機器指令更大。dx 是一套工具,可以將Java.class 轉換成 .dex 格式。一個dex檔案通常會有多個.class。Dalvik虛擬機器依賴於Linux核心提供準系統,如線程和底層記憶體管理。

6.Linux Kernel層

  Android基於Linux 2.6提供核心系統服務,例如:安全、記憶體管理、進程管理、網路堆棧、驅動模型。Linux Kernel也作為硬體和軟體之間的抽象層,它隱藏具體硬體細節而為上層提供統一的服務。

如果你學過電腦網路知道OSI/RM,就會知道分層的好處就是使用下層提供的服務而為上層提供統一的服務,屏蔽本層及以下層的差異,當本層及以下層發生了變化不會影響到上層。也就是說各層各司其職,各層提供固定的SAP(Service Access Point),專業點可以說是高內聚、低耦合。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.