[安卓基礎] 002.安卓是什麼?

本文從安卓的定義、特性、架構、功能等角度介紹它。您能夠經過這篇文章認識這個風靡全球的手機操做系統。html

安卓是什麼?

  • 安卓是一款手機設備上的軟件棧,它包括了底層的操做系統,中間件和一些關鍵的應用程序。Android SDK(Soft Development Kit)安卓的軟件開發工具包提供了一些工具和必要的API使得可使用java程序語言開始在安卓平臺上開發應用程序。

特性

  • 以下:
    1. Applicationframework應用框架:可重用或替換的組件集合。
    2. Dalvik virtual machine Dalvik虛擬機:在移動設備上已被優化的虛擬機。
    3. Integratedbrowser 集成瀏覽器:基於開源的webKit引擎。
    4. Optimizedgraphics 優化過的圖形處理:採用自定義的2D圖形庫;基於OpenGL ES 1.0的3D圖形庫 (硬件加速可選)
    5. SQLite 支持結構化數據存儲
    6. Mediasupport 媒體支持:支持常見的音頻,視頻,靜止的圖像格式 (MPEG4, H.264, MP3, AAC, AMR,JPG, PNG, GIF)
    7. GSMTelephony (依賴於硬件)
    8. Bluetooth,EDGE, 3G, and WiFi (依賴於硬件)
    9. Camera,GPS, compass, and accelerometer 照相機,全球定位系統,指南針和加速器(依賴於硬件)
    10. Richdevelopment environment 豐富的開發環境:包括設備模擬器,調試工具,內存和性能分析工具, 還有Eclipse IDE的插件。

Android的架構

  • 下圖顯示了安卓系統的主要組成部分。每一個部分在底下會有詳細的描述。

  

應用程序部分

  • 安卓系統集成了不少的核心程序,包括了電子郵件客戶端,SMS程序,日曆,地圖,瀏覽器,聯繫人和其餘。全部的這些應用程序都是用java語言寫的。

應用程序框架

  • 經過提供一個開放的開發平臺,安卓提供給開發者能建立豐富而創新的應用程序的能力。開發者能夠自由的利用硬件設備的優點來作許多事,諸如訪問位置信息,運行後臺服務,設置警報,添加通知到狀態欄等,而且還有不少,不少可做的事情。java

  • 開發者能夠徹底的訪問這些核心應用程序所使用的框架API。應用程序框架的設計就是旨在爲了簡化組件的重用。任何應用程序均可以公佈它的功能而且其餘的程序可使用這些公佈的功能(在框架的安全約束機制的範圍內)。這種機制容許組件被使用者替換。linux

  • 在應用程序下層的是一系列的服務和系統,包括:web

    若是想了解更多的詳細信息而且想有更多應用程序方面的學習,請看 Notepad Tutorial.
    1. 一系列豐富可擴展的可視化控件能夠被使用來構建應用程序,包括list,grids,boxes,buttons,甚至是一個能夠嵌入到應用程序中的瀏覽器。
    2. Content Providers可讓應用程序訪問從其餘應用程序(如聯繫人)來的數據,或者共享它們本身的數據。
    3. 一個Resource Manager,提供訪問不用代碼編寫的資源如本地字符串,圖片和一些layout佈局文件。
    4. 一個Notification Manager,可以讓應用程序在狀態欄上顯示給用戶看的通知。
    5. 一個Activity Manager,它負責管理應用程序的生命週期,並提供一個公共的導航回棧(什麼是導航回棧?我不理解,估計翻譯也不正確)。

  • 安卓包括一系列被安卓系統的各個組件(組成部分)所使用的用C或C++所寫的庫。這些功能經過安卓應用程序框架暴露給開發者。數據庫

  • 一些核心庫列在下面:瀏覽器

    1. SystemC library 一個屬於標準C系統庫的BSD派生的實現,爲嵌入式基於linux的設備而調整的。
    2. MediaLibraries 基於PacketVideo的OpenCORE庫;它支持播放和錄製許多流行的音頻和視頻格式,以及靜態圖像文件,包括MPEG4,H.264,MP3,AAC,AMR,JPG,和PNG。
    3. SurfaceManager能夠控制顯示子系統和多個應用軟件間2D與3D圖層之間完美的聯合。
    4. LibWebCore一個很酷的web瀏覽器引擎,掌控着安卓的瀏覽器和可嵌入的web視圖。
    5. SGL一個基本的二維圖形引擎。
    6. 3DLibraries 一個基於OpenGL ES1.0 APIs的實現。這個庫也使用硬件3D加速(若是可使用)或所包含的,高度已被優化過的3D軟件光柵。
    7. FreeType 位圖和矢量字體渲染。
    8. SQLite一個能夠被應用程序使用的強大又輕量的關係型數據庫引擎。

安卓運行時

  • 安卓提供一系列的核心庫,它們提供了在java語言的核心庫中可使用的許多功能。安全

  • 每個安卓應用程序都運行在它本身的進程,和屬於本身的Dalvik虛擬機實例中。Dalvik被設計使得設備能夠更加有效的運行多個虛擬機。Dalvik虛擬機執行的是Dalvik可執行文件(.dex)。它被優化過,所佔用的內存更小,虛擬機是基於寄存器的,運行.dex文件,這是由被java編譯器編譯過的class文件再根據dx工具轉化成的文件。網絡

  • Dalvik虛擬機依賴於linux內核(提供了基本的功能,如線程和低水平的內存管理。)架構

Linux 內核

  • 安卓依賴於linux2.6版的核心繫統服務如安全性,內存管理,進程管理,網絡協議棧,和驅動模型。內核也做爲一個抽象層在硬件和軟件堆棧層之間。

  

 


 

本站文章爲 寶寶巴士 SD.Team 原創,轉載務必在明顯處註明:(做者官方網站: 寶寶巴士 
轉載自【寶寶巴士SuperDo團隊】 原文連接: http://www.cnblogs.com/superdo/p/4476887.html
框架

相關文章
相關標籤/搜索