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、AMR、JGP、PNG、GIF。
7. GSM電話(依賴於硬體)。
8. 藍芽(Bluetooth)、EDGE、3G、WiFi(依賴於硬體)。
9. 照相機、GPS、指南針和加速度計(依賴於硬體)。
10. 豐富的開發環境包括裝置模擬器、除錯工具、記憶體及效能分析圖表和Eclipse整合的開發環境外掛。
Google提供了Android開發包SDK,其中包含了大量的類庫和開發工具,並且針對Eclipse的視覺化開發外掛ADT。
二、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核心也同時作為硬體和軟體棧之間的硬體抽象層。
相關文章
- Android平臺架構的介紹和原始碼分析Android架構原始碼
- SaaS架構:開放平臺架構設計架構
- 美團容器平臺架構及容器技術實踐架構
- 速度提升50%!宜信區塊鏈Blockworm BaaS平臺的架構與特性解析區塊鏈BloCWorm架構
- SAP雲平臺架構概述架構
- 開放平臺架構指南架構
- Hadoop 3.0 新特性原理及架構深度剖析Hadoop架構
- Pulsar 入門實戰(2)--特性及架構架構
- Serverless 選型:深度解讀 Serverless 架構及平臺選擇Server架構
- 魅族推薦平臺架構架構
- 微服務平臺技術架構微服務架構
- vivo推送平臺架構演進架構
- SDN平臺架構是什麼樣的?-VeCloud架構Cloud
- 認識物聯網平臺架構架構
- 阿里雲物聯網平臺架構阿里架構
- 宜人貸PaaS資料服務平臺Genie:技術架構及功能架構
- 2024最流行的網站架構----邊緣平臺架構:概念與產品網站架構
- 萬達網路科技的DevOps平臺架構解析dev架構
- PDM的分散式虛擬設計平臺架構分散式架構
- 如虎添翼,低程式碼平臺中的微服務架構微服務架構
- Halodoc的資料平臺轉型之Lakehouse架構架構
- DKHadoop大資料平臺架構詳解Hadoop大資料架構
- 大資料平臺架構設計探究大資料架構
- 研發協同平臺架構演進架構
- 大型直播平臺應用架構淺談應用架構
- 大資料平臺核心架構圖鑑大資料架構
- 平臺工程:從平臺架構師看開發人員控制平面架構
- Android架構合集Android架構
- Android MVP 架構AndroidMVP架構
- Android架構系列-MVP架構的實際應用Android架構MVP
- 大型購物平臺的系統設計與架構架構
- 容器雲平臺微服務架構設計的誤區微服務架構
- Java生鮮電商平臺-統一異常處理及架構實戰Java架構
- 分析視角下銀行業資料平臺架構演進及實現行業架構
- 我的Android重構之旅:架構篇Android架構
- 美圖大資料平臺架構實踐大資料架構
- 滴滴機器學習平臺架構演進機器學習架構
- 大型 SaaS 平臺產品架構設計思路架構
- 工業網際網路平臺架構方案架構