開發框架簡介

Android應用程序使用Java做爲編程語言進行編寫,單不是用傳統的Java虛擬機執行,而是用一個定製的稱爲Dalvik的虛擬機執行。前端

每一個Android應用程序都運行在它本身的Dalvik實例的一個進程中,它把內存管理和進程管理的全部工做都交給Android運行時進行處理,Android運行時庫在必要的時候會暫停和結束進程,從而更有效地管理資源。android

Dalvik和Android運行時位於一個Linux內核之上,由該Linux內核來處理低級的硬件交互,包括驅動程序和內存管理,同時有一套API來提供全部對底層服務、功能和硬件訪問。web

開發包中(SDK)的資源:數據庫

  Android API 像開發人員提供了對Android棧進行訪問的方法,Google也使用相同的庫來開發本地應用程序編程

  開發工具 讓Android源碼變成可執行的Android應用程序,SDK提供了多個開發工具供編譯和調試程序使用瀏覽器

  Android模擬器 Android模擬器是一個徹底交互式的Android設備模擬器,並有多個皮膚可供選擇。經過使用模擬器,能夠看到應用程序在一個真正的設備中的運行狀況。全部的Android應用程序都是運行在Dalvik VM中,因此軟件模擬器是一個很是好的環境--事實上,因爲它的硬件無關性,因此它提供了一個比任何單獨的硬件實現都優秀的測試環境。安全

  完整的文檔cookie

  示例代碼網絡

  在線支持架構

Android軟件棧就是將一個Linux內核和一個C/C++ 庫集合提供給整個應用程序框架,而該應用程序框架爲運行時和應用程序提供服務,並對它們進行管理。由下圖元素組成

Linux內核:核心服務(包括硬件驅動服務、進程和內存管理、安全、網絡和電源管理)都由一個Linux內核管理。內核還在硬件和軟件棧的其它部分之間提供了一層抽象

庫:運行在內核之上,Android包含了各類C/C++核心庫,如libc和SSL,以及:

  用來回放音頻和視頻媒體的媒體庫

  提供管理顯示的外觀管理器

  包含2D和3D的SGL和OpenGL的圖形庫

  本地數據庫支持的SQLite

  集成了Web瀏覽器和Internet安全的SSL和WebKit

Android運行時 :Android運行時可讓一個Android手機從本質上與一個移動Linux實現的手機區分開來。因爲Android運行時包含了核心庫和Dalvik虛擬機,所以它是像應用程序提供動力的引擎,它和庫一塊兒造成了應用程序框架的基礎。

  核心庫:雖然Android開發使用的是Java語言,單Dalvik並非一個Java虛擬機。Android核心庫提供了Java核心庫以及Android特定庫可用的大部分功能。

  Dalvik虛擬機:Dalvik是一個基於寄存器的虛擬機,它以及被優化從而保證一個設備能夠高效地運行多個實例。它依賴於Linux內核進行線程和底層內存管理。全部的Android硬件和系統服務訪問都是使用做爲中間層的Dalvik來管理的。經過使用一個VM來承載應用程序的執行,開發人員就能夠得到一個抽象層來保證它們永遠都不須要考慮特定的硬件實現。DalvikVM執行Dalvik可執行文件,優化後的格式能夠保證能最小限度的佔用內存。使用SDK提供的工具,能夠把Java語言編譯的類轉換爲.dex可執行文件。

應用程序框架:提供了用來建立Android應用程序的類。它還對硬件訪問和對用戶界面及應用程序資源的管理提供了通常抽象

應用層:全部的應用程序,包括本地的和第三方的,都使用相同的庫來構建於應用層之上。應用層運行在Android運行時以內,而且使用了應用程序框架中可用的類和服務

Android應用程序架構:

  鼓勵組件重用,運行在規定的安全限制的訪問管理下像其它應用程序發行和共享活動、服務和數據

  使用能夠替換聯繫人管理器或者電話撥號器的機制,能夠公開本身的應用程序組件,讓其它開發人員建立新的UI前端和功能擴展,或者在它們的基礎上構建應用程序。

  下面的應用程序服務是全部Android應用程序的架構基礎,它們提供了經常使用軟件都會使用到的框架:

    活動管理器(Activity Manager),控制活動的生命週期

    視圖(View),用來爲活動構建用戶界面

    通知管理器(Notification Manager)提供了一種一致的和非打斷性的機制來通知用戶

    內容提供其(Content Providers)讓應用程序能夠在程序間共享數據

    資源管理器(Resource Manager)支持像字符串和圖形這樣的非代碼資源的具體化

 

Android庫:

  android.util:核心實用程序包,包含了低級類,例如專用容器、字符串格式化和XML解析程序

  android.os:操做系統包,提供了對基本操做系統服務的訪問,例如消息傳遞、進程間通訊、時鐘函數和調試

  android.graphics 圖形API提供了支持畫布、顏色和繪畫原語的低級圖形類,讓你能夠在畫布上畫圖

  android.text 用來顯示和解析文本的文本處理工具

  android.database 當使用數據庫的時候、提供處理遊標所要求的低級類

  android.content 內容API經過提供處理資源、內容提供器和包的服務,來管理數據訪問和發佈

  android.view 核心用戶界面類。全部的用戶界面元素都是使用一系列View來構建的,用來提供用戶交互組件

  android.widget:構建在View包的基礎上,是已經建立好的用戶界面元素,可直接在應用程序中使用。它們包含列表、按鈕盒佈局

  com.google.android.maps:一個高級API,提供了對本地地圖控件的訪問,能夠在應用程序中使用這些控件。它包含MapView控件以及用來對嵌入的地圖進行註釋和控制的Overlay和MapController類

  android.app:提供了對應用程序模型進行訪問的 高級包。包含活動(Activity)和服務(Service)API,它們造成了全部的Android應用程序的基礎

  android.provider:爲了方便開發人員對某些標準的內容提供器進行訪問,provider包提供了一些類,從而提供對全部的Android發行版中包含的標準數據庫的訪問

  android.telephony:容許直接與設備的電話棧進行交互,讓你能夠接打電話、監控電話狀態以及收發SMS信息

  android.webkit:提供了與基於web的內容相關的API,包括一個WebView控件,能夠在活動或者cookie管理器中嵌入一個瀏覽器

除了Android API以外,Android棧還包含了一個可供應用程序框架使用的C/C++庫集合,包括:

  OpenGL:用來支持3D圖形

  Free Type:支持位圖和矢量字體渲染

  SGL:提供2D圖形引擎的核心庫

  libc:爲基於Linux的嵌入式設備而優化的標準C庫

  SQLite:用來存儲數據的輕量級關係數據庫引擎

  SSL:用來支持使用安全套接字(Secure Sockets Layer)加密協議的安全Internet通訊

高級Android庫:

  android.location:基於位置服務的API讓應用程序能夠訪問到設備當前的物理位置。無論使用什麼樣的硬件或者技術來肯定位置,基於位置的服務都提供了對位置信息的通用訪問

  android.media:提供了對音頻和視頻文件的回放和錄製的支持,包括流媒體

  android.opengl:建立動態的3D用戶界面

  android.hardware:提供傳感器硬件,包括攝像頭、加速器和羅盤傳感器

  android.bluetooth、android.net.wifi和android.telephony:提供了對硬件平臺的低級訪問,包括藍牙、Wi-Fi和電話硬件

相關文章
相關標籤/搜索