Android系統架構,android系統

來源:互聯網
上載者:User

Android系統架構,android系統

 Android的系統架構採用了分層架構的思想,1所示。從上層到底層共包括四層,分別是應用程式程式層、應用程式框架層、系統庫和Android運行時和Linux核心。

      圖1:Android系統架構圖

      每層功能簡要介紹如下:

      一 應用程式層

      

      該層提供一些核心應用程式套件組合,例如電子郵件、簡訊、日曆、地圖、瀏覽器和連絡人管理等。同時,開發人員可以利用Java語言設計和編寫屬於自己的應用程式,而這些程式與那些核心應用程式彼此平等、友好共處。

     二 應用程式架構層


     該層是Android應用開發的基礎,開發人員大部分情況是在和她打交道。應用程式架構層包括Active Manager、視窗管理器、內容提供者、視圖系統、包管理器、電話管理器、資源管理員、位置管理器、通知管理器和XMPP服務十個部分。在Android平台上,開發人員可以完全訪問核心應用程式所使用的API架構。並且,任何一個應用程式都發行就緒自身的功能模組,而其他應用程式則可以使用這些發行的功能模組。基於這樣的重用機制,使用者就可以方便地替換平台本身的各種應用程式組件。

      

          a) Activity Manager(Active Manager)

              管理各個應用程式生命週期以及通常的導航回退功能

         b) Window Manager(視窗管理器)

              管理所有的視窗程序

         c)  Content Provider(內容提供器)

              使得不同應用程式之間存取或者分享資料

         d) View System(視圖系統)

              構建應用程式的基本組件

         e) Notification Manager(通告管理器)

              使得應用程式可以在狀態列中顯示自訂的提示資訊

         f) Package Manager(包管理器)

              Android系統內的程式管理

         g)Telephony Manager(電話管理器)

              管理所有的行動裝置功能

         h)Resource Manager(資源管理員)

              提供應用程式使用的各種非代碼資源,如本地化字串、圖片、布局檔案、顏色檔案等

         i)Location Manager(位置管理器)

             提供位置服務

         j)XMPP Service(XMPP服務)

             提供Google Talk服務

 

     三 系統庫和Android運行時

     系統庫包括九個子系統,分別是圖層管理、媒體庫、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。Android運行時包括核心庫和Dalvik虛擬機器,前者既相容了大多數Java語言所需要調用的功能函數,又包括了Android的核心庫,比如android.os、android.net、android.media等等。後者是一種基於寄存器的java虛擬機器,Dalvik虛擬機器主要是完成對生命週期的管理、堆棧的管理、線程的管理、安全和異常的管理以及記憶體回收等重要功能。

            

 a)系統庫

              系統庫是應用程式架構的支撐,是串連應用程式架構層與Linux核心層的重要紐帶。其主要分為如:


              Ø  Surface Manager:

                  執行多個應用程式時候,負責管理顯示與存取操作間的互動,另外也負責2D繪圖與3D繪圖進行顯示合成。

             Ø  Media Framework:

                  多媒體庫,基於PacketVideo OpenCore;支援多種常用的音頻、視頻格式錄製和回放,編碼格式包括MPEG4、MP3、H.264、AAC、ARM。

              Ø  SQLite:

                  小型的關係型資料庫引擎

              Ø  OpenGL|ES:

                  根據OpenGL ES 1.0API標準實現的3D繪圖函數庫

              Ø  FreeType:

                  提供點陣字與向量字的描繪與顯示

              Ø  WebKit:

                  一套網頁瀏覽器的軟體引擎

              Ø  SGL:

                  底層的2D圖形渲染引擎

              Ø  SSL:

                  在Andorid上通訊過程中實現握手

              Ø  Libc:

               從BSD繼承來的標準C系統函數庫,專門為基於embedded linux的裝置定製 


  b)Android運行時

             Android應用程式時採用Java語言編寫,程式在Android運行時中執行,其運行時分為核心庫和Dalvik虛擬機器兩部分。

 

             Ø  核心庫

                 核心庫提供了Java語言API中的大多數功能,同時也包含了Android的一些核心API,如android.os、android.net、android.media等等。


             Ø  Dalvik虛擬機器

                 Android程式不同於J2me程式,每個Android應用程式都有一個專有的進程,並且不是多個程式運行在一個虛擬機器中,而是每個Android程式都有一 個Dalivik虛擬機器的執行個體,並在該執行個體中執行。Dalvik虛擬機器是一種基於寄存器的Java虛擬機器,而不是傳統的基於棧的虛擬機器,並進行了記憶體資源使用的最佳化          以及支援多個虛擬機器的特點。需要注意的是,不同於J2me,Android程式在虛擬機器中執行的並非編譯後的位元組碼,而是通過轉換工具dx將Java位元組碼轉成dex格式的中間碼。

  

     四 Linux核心

  Android核心系統服務依賴於Linux2.6核心,如安全性、記憶體管理、進程管理、網路通訊協定棧和驅動模型。Linux核心也是作為硬體與軟體棧的抽象層。驅動:顯示驅動、藍牙堆疊、Flash記憶體驅動、Binder IPC驅動、USB驅動、鍵盤驅動、WiFi驅動、音頻驅動、能源管理等。

              

顯示驅動(Display Driver):常用基於Linux的幀緩衝(Frame Buffer)驅動。
Flash記憶體驅動(Flash Memory Driver)
照相機驅動(Camera Driver):常用基於Linux的v4l(Video for )驅動。
音頻驅動(Audio Driver):常用基於ALSA(Advanced Linux Sound Architecture,進階Linux聲音體系)驅動。
WiFi驅動(Camera Driver):基於IEEE 802.11標準的驅動程式
鍵盤驅動(KeyBoard Driver)
藍牙堆疊(Bluetooth Driver)
Binder IPC驅動: Andoid一個特殊的驅動程式,具有單獨的裝置節點,提供進程間通訊的功能。
Power Management(能源管理)



 總結:

     1 Android的系統架構採用分層架構的思想,架構清晰,層次分明,協同工作。

     2 Android的系統架構不僅從宏觀上認識了Android系統,同時,也給我們的學習與實踐指明了方向。若是從事Android應用開發,那應該研究Android的應用程式框架層和應用程式層;若是從事Android系統開發,那應該研究Android的系統庫和Android運行時;若是從事Android驅動開發,那應該研究Android的Linux核心。總之,找准切入點,實踐出真知。


聯繫我們

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