天天看點

android開發之android的平台架構及特性

Android平台采用了整合的政策思想,包括底層Linux作業系統、中間層的中間件和上層的Java應用程式。下面我把Android的特性及其架構體系結構總結一下。

一、Android的平台特性

Android平台有如下特性:

1.引用程式架構支援元件的重用與替換。

這樣我們可以把系統中不喜歡的應用程式删除,安裝我們喜歡的應用程式。

2.Dalvik虛拟機專門為移動裝置進行了優化。

Android應用程式将由Java編寫、編譯的類檔案通過DX工具轉換成一種字尾名為.dex的檔案來執行。Dalvik虛拟機是基于寄存器的,相對于Java虛拟機速度要快很多。

3.内部內建浏覽器基于開源的WebKit引擎。

有了内置的浏覽器,這将意味着WAP應用時代即将結束,真正的移動網際網路時代已經來臨,手機就是一台“小電腦”,可以在網上随意遨遊。

4.優化的圖形庫包括2D和3D圖形庫,3D圖形庫基于OpenGL Es 1.0。

強大的圖形庫給遊戲開發帶來福音。在3G最為重要的應用莫過于手機上網和手機遊戲。

5.SQLite用作結構化的資料存儲。

6.多媒體支援包括常見的音頻、視訊和靜态印象檔案格式。

如MPEG4、H.264、MP3、AAC、JGP、PNG、GIF。

7.GSM電話(依賴于硬體)。

8.藍牙(Bluetooth)、EDGE、3G、WiFi(依賴于硬體)。

9.照相機、GPS、指南針和加速度計(依賴于硬體)。

10.豐富的開發環境包括裝置模拟器、調式工具、記憶體及性能分析圖表和Eclipse內建的開發環境插件。

Google提供了Android開發包SDK,其中包括了大量的類庫和開發工具,并且針對Eclipse的可視化開發插件ADT。

二、Android平台架構

android開發之android的平台架構及特性

Android作業系統的體系結構

從上圖我們可以看出,Android作業系統的體系結構可分為4層,由上到下依次是應用程式、應用程式架構、核心類庫和Linux核心,其中第三層還包括Android運作時的環境。下面分别來講解各個部分。

1、應用程式

Android連同一個核心應用程式包一起釋出,該應用程式包括E-mail用戶端、SMS短消息程式、月曆、地圖、浏覽器、聯系人管理程式等等。所有的應用程式都是用Java編寫。

2.應用程式架構

開發者完全可以通路核心應用程式所使用的API架構。該應用程式架構架構用來簡化元件軟體的重用,任何一個應用程式都可以釋出它的功能塊并且任何其他的應用程式都可以使用其所釋出的功能塊(不過得遵循架構的安全性限制)。該應用程式重用機制使得元件可以被使用者替換。

  以下所有的應用程式都由一系列的服務和系統組成,包括:

  1)一個可擴充的視圖(Views)可以用來建立應用程式,包括清單(lists)、網絡(grids)、文本框(text boxes)、按鈕(buttons),甚至是一個可嵌入的Web浏覽器。

  2)内容管理器(Content Providers)使得應用程式可以通路另一個應用程式的資料(如聯系人資料庫),或者共享它們自己的資料。

  3)一個資料總管(Resource Manager)提供非代碼資源的通路,如本地字元串、圖形和分層檔案(layout files)。

  4)一個通知管理器(Notification Manager)使得應用程式可以在狀态欄中顯示客戶通知資訊。

  5)一個活動類管理器(Activity Manager)用來管理應用程式生命周期并提供常用的導航回退功能。

3.Android程式庫

Android包括一個被Android系統中各種不同元件所使用的C/C++集庫。該庫通過Android應用程式架構為開發者提供服務。

  以下是一些主要的核心庫:

  1)系統C庫:一個從BSD繼承來的标準C系統函數庫(libc),專門為基于Embedded Linux的裝置定制。

  2)媒體庫:基于PacketVideo OpenCORE;該庫支援錄放,并且可以錄制許多流行的音頻視訊格式,還有靜态映像檔案包括MPEG4、H.264、MP3、AAC、JPG、PNG。

  3)Surface Manager:對顯示子系統的管理,并且為多個應用程式提供2D和3D圖層的無縫融合。

  4)LibWebCore:一個最新的Web浏覽器引擎,用來支援Android浏覽器和一個可嵌入的Web視圖。

  5)SGL:一個内置的2D圖形引擎。

  6)3D libraries:基于OpenGL ES 1.0 APIs實作;該庫可以使用硬體3D加速(如果可用)或者使用高度優化的3D軟加速。

  7)FreeType:位圖(bitmap)和向量(vector)字型顯示。

  8)SQLite:一個對于是以應用程式可用、功能強勁的輕型關系型資料庫引擎。

4.Android運作庫

Android包括了一個核心庫,該核心庫提供了Java程式設計語言核心庫的大多數功能。

  每一個Android應用程式都在它自己的程序中運作,都擁有一個獨立的Dalvik虛拟機執行個體。Dalvik是針對同時高效地運作多個VMs實作的。Dalvik虛拟機執行.dex的Dalvik可執行檔案,該格式檔案針對最小記憶體使用做了優化。該虛拟機是基于寄存器的,所有的類都是經由Java彙編器編譯,然後通過SDK中的DX工具轉化成.dex格式由虛拟機執行。

  Dalvik虛拟機依賴于Linux的一些功能,比如線程機制和底層記憶體管理機制。

5.Linux核心

Android的核心系統服務依賴于Linux核心,如安全性、記憶體管理、程序管理、網絡協定棧和驅動模型。Linux核心也同時作為硬體和軟體棧之間的硬體抽象層。