android系統架構圖及各層介紹

此技術文檔主要是從基礎瞭解Android系統架構,便於對之後開發造成一些基本應用架構。php

 

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

      圖1:Android系統架構圖mysql

      每層功能簡要介紹以下:linux

      一 應用程序層android

      該層提供一些核心應用程序包,例如電子郵件、短信、日曆、地圖、瀏覽器和聯繫人管理等。同時,開發者能夠利用Java語言設計和編寫屬於本身的應用程序,而這些程序與那些核心應用程序彼此平等、友好共處。sql

     二 應用程序框架層數據庫

     該層是Android應用開發的基礎,開發人員大部分狀況是在和她打交道。應用程序框架層包括活動管理器、窗口管理器、內容提供者、視圖系統、包管理器、電話管理器、資源管理器、位置管理器、通知管理器和XMPP服務十個部分。在Android平臺上,開發人員能夠徹底訪問核心應用程序所使用的API框架。而且,任何一個應用程序均可以發佈自身的功能模塊,而其餘應用程序則可使用這些已發佈的功能模塊。基於這樣的重用機制,用戶就能夠方便地替換平臺自己的各類應用程序組件。XMPP((Extensible Messaging and Presence Protocol可擴展通信和表示協議,前稱Jabber[1])是一種以XML爲基礎的開放式實時通訊協議,XMPP網絡是基於服務器的(即客戶端之間彼此不直接交談),可是也是分散式的。不像AOL實時通或MSN Messenger等服務,XMPP沒有中央官方服務器。Jabber.org的公衆服務器上有大量的用戶,因此有些人誤解了,覺得它是官方服務器,不過事實上任何人均可以在本身的域名上運行XMPP服務器。編程

Jabber識別符(JID)是用戶登陸時所使用的帳號,看起來一般像一個電子郵件地址,如someone@example.com;前半部分爲用戶名,後半部分爲XMPP服務器域名,兩個字段以@符號區隔。瀏覽器

假設朱麗葉(juliet@capulet.com)想和羅密歐(romeo@montague.NET)通話,他們兩人的帳號分別在Capulet.com及Montague.net的服務器上。當朱麗葉輸入信息並按下發送鈕以後,一連串的事件就發生了:安全

  1. 朱麗葉的XMPP客戶端將她的信息發送到Capulet.com XMPP服務器。
  2. Capulet.com XMPP服務器打開與Montague.net XMPP服務器的鏈接。
  3. Montague.net XMPP服務器將信息寄送給羅密歐。若是他目前不在在線,那麼存儲信息以待稍後寄送。

)

     三 系統庫和Android運行時

     系統庫包括九個子系統,分別是圖層管理、媒體庫、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。Android運行時包括核心庫和Dalvik虛擬機,前者既兼容了大多數Java語言所須要調用的功能函數,又包括了Android的核心庫,好比android.os、android.Net、android.media等等。後者是一種基於寄存器的java虛擬機,Dalvik虛擬機主要是完成對生命週期的管理、堆棧的管理、線程的管理、安全和異常的管理以及垃圾回收等重要功能。--SQLite是遵照ACID關係數據庫管理系統,它包含在一個相對小的C程序庫中;OpenGL-開放圖形庫(英語:Open Graphics Library,縮寫爲 OpenGL)是個定義了一個跨編程語言、跨平臺應用程序接口(API)的規範,它用於生成二維三維圖像。

     四 linux內核

     Android核心系統服務依賴於Linux2.6內核,如安全性、內存管理、進程管理、網絡協議棧和驅動模型。Linux內核也是做爲硬件與軟件棧的抽象層。驅動:顯示驅動、攝像頭驅動、鍵盤驅動、WiFi驅動、Audio驅動、flash內存驅動、Binder(IPC)驅動、電源管理等。

     總結:

     1 Android的系統架構採用分層架構的思想,架構清晰,井井有條,協同工做。

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

 

 

 

一.android系統架構圖及各層介紹

 

1.     應用層:應用是用java語言編寫的運行在虛擬機上的程序,好比Email客戶端,SMS短消息程序,日曆等。

 

2.     應用框架層:這一層是編寫Google發佈的核心應用時所使用的API框架,開發人員一樣可使用這些框架來開發本身的應用,這樣便簡化了程序開發的結構設計,可是必需要遵照其框架的開發原則。

 

3.     系統運行庫(C/C++庫以及Android運行庫)層:當使用Android應用框架時,Android系統會經過一些C/C++庫來支持咱們使用的各個組件,使其更好的爲咱們服務,好比其中的SQLite(關係數據庫),Webkit(Web瀏覽器引擎)。

 

4.     Linux內核層:Android的核心繫統服務基於Linux2.6內核,如安全性、內存管理、進程管理、網絡協議棧和驅動模型等都依賴於該內核,好比Binder IPC(Internet Process Connection進程間通訊)驅動,android的一個特殊驅動程序,具備單獨的設備節點,提供進程間通訊的功能。

 

 

一.框架提供的功能

 

Android系統提供給應用開發者的自己就是一個框架,全部的應用開發都必須遵照這個框架的原則。咱們在開發應用時就是在這個框架上進行擴展,

相關文章
相關標籤/搜索