1. 程式人生 > >Android系統架構概述

Android系統架構概述

rap 實現 alt tar 事件 部分 opencore 字體渲染 關系型

目錄:

1、Android系統架構

2、Android類庫

3、四大組件

-----------------------------------------------------------------------

1、Android系統架構

從架構圖看出架構分為五個部分,由下往上依次為:

  • Linux Kernel:Android基於Linux提供核心系統服務,例如:安全、內存管理、進程管理、網絡堆棧、驅動模型。Linux Kernel也作為硬件和軟件之間的抽象層,它隱藏具體g硬件細節而為上層提供統一的服務。
  • Android Runtime:Android包含一個核心庫的集合,提供大部分在Java編程語言核心類庫中可用的功能。 每個Android應用程序是Dalvik虛擬機中的實例。 java程序的運行需要java的核心包的支持,然後通過JVM虛擬機來運行我們的應用程序,Android Runtime裏的Core Libraries就相當於java的JDK,是運行android應用程序所需要的核心庫,Dalvik Virtual Machine就相當於JVM,這是Google專為Android開發的運行android應用程序所需的虛擬機。   Dalvik的可文件格式是.dex,dex格式是專為Dalvik設計的一種壓縮格式,適合內存和處理器速度有限的系統。Dalvik依賴於Linux Kernel提供基礎功能,如線程和底層內存管理。
  • Liberaries:Android包含一個C/C++庫的集合,供系統的各個組件使用。這些功能能通過Android的應用程序框架(application framework)暴露給開發者。下面列出一些核心庫:
    • 系統C庫:標準C系統庫(libc)的BSD衍生,調整為基於嵌入式Linuxhe設備。
    • 媒體庫:基於PackerVideo的OpenCORE。這些庫支持播放、錄制許多音頻和視頻h格式,以及靜態文件。
    • 界面管理:管理訪問顯示子系統和無縫組合多個應用程序的2D和3D圖形層
    • LibWebCore:(WebKit是一個開源的瀏覽器網頁排版引擎,包含WebCore排版引擎和JSCore引擎
      )Web瀏覽器引擎,驅動Android瀏覽器和內嵌的web視圖。
    • SGL:基本2D圖形引擎。
    • 3D庫:基於OpenGL ES APIS的實現。庫使用硬件3D加速或包含高度優化的3D軟光柵。
    • FreeType:位圖和矢量字體渲染。
    • SQLite:關系型數據庫引擎。
  • Application Framework:通過開放的開發平臺,開發者可以使用核心應用程序所使用的框架APIs。應用程序的體系結構旨在簡化組件的重用,任何應用程序都能發布他的功能且任何其他應用程序可以使用這些功能(需要服從框架執行的安全限制)。這一機制允許用戶替換組件。   所有的應用程序其實是一組服務和系統,包括:
    • View:視圖集合,包括列表、網格、文本框、按鈕,甚至是內嵌的網頁瀏覽器。
    • Content Providers:內容提供者使得應用程序能訪問其他應用程序的數據(如通訊錄),或共享自己的數據。
    • Resource Manager:資源管理器提供訪問非代碼資源,如本地化字符串、圖形、布局文件。
    • Notifacation Manager:通知管理器使得所有的應用程序能夠在狀態欄顯示自定義警告。
    • Activity Manager:活動管理器管理應用程序生命周期,提供通用的導航回退功能。
  • Application:Androide裝配一個核心應用程序集合,包括電子郵件、日歷、地圖、瀏覽器、通訊錄等。開發者也可以自行開發應用程序。

技術分享圖片

2、Androido常用類庫

  • Android.util:核心工具包
  • Android.os:操作系統包,提供基本操作系統服務的訪問n時間,例如消息傳遞、進程間通信。
  • Android.graphic:圖形API,提供了支持畫布、顏色和繪畫的低級圖形類,讓開發者可以在畫布上畫。
  • Android.database
  • Android.content:內容API,通過處理資源、內容提供器和a包的服務,來管理數據訪問和發布。
  • Android.view:核心用戶界面類。所有的用戶界面元素的都是使用一系列View構造的,用來提供交互組件。
  • Android.widget:構建在View包的基礎上,Widget類是已經創建好的用戶界面元素,可以直接在應用程序中使用,包含列表、按鍵、布局。
  • com.google.android.maps:提供對本地地圖空間的訪問。
  • Android.app:應用程序包,包含活動(Activity)和服務(service)API,形成所有應用程序的基礎。
  • Android.provider:為了方便開發者對某些標註的內容提供器進行訪問,provider包提供了一些類。
  • Android.telephony:允許直接與電話棧進行交互,實現打電話、監控電話狀態、收發SMS消息。
  • Android.webkit:提供與基於Web的內容相關的API,包括一個WebView控件,可以在活動或者cookiea管理器嵌入一個瀏覽器。

3、四大組件

(1)Activity:活動,一種包含用戶界面的組件,用於和用戶進行交互。在Android的程序當中,Activity 一般代表手機屏幕的一屏。如果把手機比作一個瀏覽器,那麽Activity就相當於一個網頁。在Activity 當中可以添加一些Button、Check box 等控件。可以看到Activity 概念和網頁的概念相當類似。
    一般一個Android 應用是由多個Activity 組成的。這多個Activity 之間可以進行相互跳轉,例如,按下一個Button 按鈕後,可能會跳轉到其他的Activity。

    生命周期:
      activity三種狀態:運行(運行在最前端)、停止(不可見,完全被覆蓋)、暫停(可見,但前端還有其他activity)
    生命周期相關的方法:onCreate-onStart-onResume-onPause-onStop-onDestory-onRestart

(2)broadcastReceiver:廣播接受者,沒有用戶界面。

    Broadcast 是一種廣泛運用的在應用程序之間傳輸信息的機制。而BroadcastReceiver 是對發送出來的Broadcast進行過濾接受並響應的一類組件。

    使用broadcastReceiver可以讓應用程序對外部事件做出響應。例如,當電話呼入這個外部事件到來的時候,可以利用BroadcastReceiver 進行處理。

(3)contentProvider:內容提供者,使一個應用程序的指定數據集提供給其他應用程序。這些數據可以存儲在文件系統中、在一個SQLite數據庫、或以任何其他合理的方式。

(4)Service:服務,Service 是android 系統中的一種組件,它跟Activity 的級別差不多,但是他不能自己運行,只能後臺運行,並且可以和其他組件進行交互。Service 是沒有界面的長生命周期的代碼。

Android系統架構概述