1. 程式人生 > >Android系統架構介紹.

Android系統架構介紹.

Android其本質就是在標準的Linux系統上增加了Java虛擬機器Dalvik,並在Dalvik虛擬機器上搭建了一個JAVA的application framework,所有的應用程式都是基於JAVA的application framework之上。
Android主要應用於ARM平臺,但不僅限於ARM,通過編譯控制,在X86、MAC等體系結構的機器上同樣可以執行。

android分為四個層,從高層到低層分別是應用程式層、應用程式框架層、系統執行庫層和linux核心層
藍色的代表java程式,黃色的程式碼為執行JAVA程式而實現的虛擬機器,綠色部分為C/C++語言編寫的程式庫,紅色的程式碼核心(linux核心+driver)。在Application Framework之下,由C/C++的程式庫組成,通過JNI完成從JAVA到C的呼叫。

1) 應用程式
所有的應用程式都是使用JAVA語言編寫的,每一個應用程式由一個或者多個活動組成,活動必須以Activity類為超類,活動類似於作業系統上的程序,但是活動比作業系統的程序要更為靈活,與程序類似的是,活動在多種狀態之間進行切換。
利用JAVA的跨平臺性質,基於Android框架開發的應用程式可以不用編譯運行於任何一臺安裝有android系統的平臺,這點正是Android的精髓所在。

2) 應用程式框架
應用程式的架構設計簡化了元件的重用;任何一個應用程式都可以釋出它的功能塊並且任何其它的應用程式都可以使用其所釋出的功能塊(不過得遵循框架的安全性限制)。幫助程式設計師快速的開發程式,並且該應用程式重用機制也使使用者可以方便的替換程式元件。
隱藏在每個應用後面的是一系列的服務和系統, 其中包括;
 a.豐富而又可擴充套件的檢視(Views

),可以用來構建應用程式, 它包括列表(lists),網格(grids),文字框(text boxes),按鈕(buttons), 甚至可嵌入的web瀏覽器。
 b.內容提供器(Content Providers)使得應用程式可以訪問另一個應用程式的資料(如聯絡人資料庫), 或者共享它們自己的資料。
 c.資源管理器(Resource Manager)提供非程式碼資源的訪問,如本地字串,圖形,和佈局檔案(layout files)。
 d.通知管理器(Notification Manager)使得應用程式可以在狀態列中顯示自定義的提示資訊。
 e.活動管理器(Activity Manager)用來管理應用程式生命週期並提供常用的導航回退功能。

3) 系統執行庫
 a)程式庫
    Android包含一些C/C++庫,這些庫能被Android系統中不同的元件使用。它們通過Android應用程式框架為開發者提供服務。
    以下是一些核心庫:
    主要包括基本的C庫、以及多媒體庫以支援各種多媒體格式、點陣圖和向量字型、2D和3D圖形引擎、瀏覽器、資料庫支援。
 1.Bionic系統C庫。
 2.媒體庫,基於PacketVideo OpenCORE。
 3.Surface Manager 顧名思義,用於管理Surface。
 4.Webkit,LibWebCore 瀏覽器,基於Webkit引擎。
 5.SGL 底層的2D圖形引擎
 6.3D libraries 基於OpenGL ES 1.0 APIs實現
 7.FreeType 點陣圖(bitmap)和向量(vector)字型顯示。
 8.SQLite 一個對於所有應用程式可用,功能強勁的輕型關係型資料庫引擎。
 
   另外這裡還有一個硬體抽象層。其實Android並非所有的裝置驅動都放在linux核心裡面,有一部分實現在使用者空間,
   這麼做的主要原因是可以避開Linux所遵循的GPL協議,一般情況下如果要將Android移植到其他硬體去執行,
   只需要實現這部分程式碼即可。包括:顯示器驅動,聲音,相機,GPS,GSM等等。
 
  b)Android 執行庫
  Android 包括了一個核心庫,該核心庫提供了JAVA程式語言核心庫的大多數功能。
  每一個 Android應用程式都在它自己的程序中執行,都擁有一個獨立的Dalvik虛擬機器例項。
  Dalvik被設計成一個裝置可以同時高效地執行多個虛擬系統。    
  Dalvik虛擬機器執行(.dex)的Dalvik可執行檔案,該格式檔案針對小記憶體使用做了優化。
  同時虛擬機器是基於暫存器的,所有的類都經由JAVA編譯器編譯,然後通過SDK中的 "dx" 工具轉化成.dex格式由虛擬機器執行。
  Dalvik虛擬機器依賴於linux核心的一些功能,比如執行緒機制和底層記憶體管理機制。
  
4) Linux 核心
Android 的核心繫統服務依賴於 Linux 2.6 核心 ,如安全性,記憶體管理,程序管理, 網路協議棧和驅動模型。 
Linux 核心也同時作為硬體和軟體棧之間的抽象層。其外還對其做了部分修改,主要涉及兩部分修改:
   a)Binder   
  (IPC):提供有效的程序間通訊,雖然linux核心本身已經提供了這些功能,但Android系統很多服務都需要用到該功能,為了某種原因
  其實現了自己的一套。
   b)電源管理:為手持裝置節省能耗。

最後在談談Android所採用的語言,其應用開發採用java語言,我們所說的java一般包含三個部分:
a) java語言:即其語法,其寫程式碼的程式
b) java虛擬機器:為了實現一次編譯到處可以執行的原則,java在編譯連線以後並沒有產生目標機器語言,而是採用了Java bytecode
    這種Java共用指令,這時就需要一個虛擬機器來執行改指令。
c) 庫:跟我們常用的C語言一樣提供一些常用的庫
後兩者結合就是Java Runtime Environment

相關推薦

Android系統架構介紹.

Android其本質就是在標準的Linux系統上增加了Java虛擬機器Dalvik,並在Dalvik虛擬機器上搭建了一個JAVA的application framework,所有的應用程式都是基於JAVA的application framework之上。 Android主

Android 安卓系統架構介紹

圖片 img 多核心 nco 安全性 .com not 狀態 linux android系統架構 從上圖中可以看出,Android系統架構為四層結構,從上層到下層分別是應用程序層、應用程序框架層、系統運行庫層以及Linux內核層,分別介紹如下:

Android系統架構圖及各層介紹

 Android的系統架構採用了分層架構的思想,如圖1所示。從上層到底層共包括四層,分別是應用程式程式層、應用框架層、系統庫和Android執行時和Linux核心。 圖1:Android系統架構圖       每層功能簡要介紹如下:       一 應用程式層

Android系統架構(一)

查詢 核心 手機 例如 ava 模塊 api 操作系統 運行   一、Android系統版本簡介   Android操作系統已占據了手機操作系統的大半壁江山,截至本文寫作時,Android操作系統系統版本及其詳細信息,已發生了變化,具體信息見下表,當然也可以訪問https:

Android系統架構概述

rap 實現 alt tar 事件 部分 opencore 字體渲染 關系型 目錄: 1、Android系統架構 2、Android類庫 3、四大組件 -----------------------------------------------------------

Android系統架構

Android的系統架構分為四層: 應用程式(Application) 和使用者互動的應用 比如:桌面(home),瀏覽器,抖音,微信,資訊…………… 應用開發者做的工作就在應用層 應用程式框架(Application Framework) 給運行

小白學安卓(一):Android系統架構和應用開發特色

一、Android架構 Android大致可以分為四層架構: Linux核心層 系統執行庫層 應用框架層 應用層 Linux核心層 Android系統是基於Linux核心的,這一層為Android裝置的各種硬體提供了底層的驅動,如顯示驅動

Android 系統架構

Android系統架構分為五層,從上到下依次是應用層、應用框架層、系統執行庫層、硬體抽象層和Linux核心層。 應用層(System Apps):系統內建的應用程式以及非系統級的應用程式都屬於應用層,負責與使用者進行直接互動,通常都是用Java進行開發的; 應用框架層(

Android系統架構特點及優劣分析

Android 架構分析 首先要注意到,Android系統有著極短的開發時間,因此Android在架構上有著四處借鑑的特點。 Android分為四個層,從低到高分別是linux核心層、系統執行庫層、應用程式框架層和應用程式層。在最底層,Android使用了L

一:android系統架構特點概述

v  基於linux作業系統,因此藉助LINUX作業系統對豐富硬體的支援,並且開源、成熟、效能穩定,並且是目前嵌入式系統的主流作業系統,具有大量的使用者和開發人員,因此ANDROID底層作業系統使用LINUX作業系統實在是一個明智之舉,即可以滿足廠商對別人程式碼開放及支援豐富

Android系統架構系統原始碼目錄

1.Android系統架構 Android系統架構分為五層,從上到下依次是應用層、應用框架層、系統執行庫層、硬體抽象層和Linux核心層。 應用層 系統內建的應用程式以及非系統級的應用程式都是屬於應用層。負責與使用者進行直接互動,通常都是用Java進行開發的。

Android系統架構詳解(3)-Android Libraries

3.Android Libraries 作者:李利偉不V 今天講解Libraries層 Android的Libraries層對應一般嵌入式系統,相當於中介軟體層次。Android 的各種庫一般是以系統中介軟體的形式提供的,它們均有的一個顯著特點就是與移動裝置的平臺

android系統架構詳解

先放上一張android系統架構圖: 從上圖中可以看出,Android系統架構為四層結構,從上層到下層分別是:應用程式層、應用程式框架層、系統執行庫層以及Linux核心層,分別介紹如下: 1)應用程式層 Android平臺的應用層上包括各類與使用者直接互動的應用程式,

Android基礎1--Android系統架構

Andorid系統是採用分層的架構,分為四層:           第一層是應用層(電話,郵箱,微信,QQ等等),大部分的Android程式設計師都是基於該層來開發的,          

Android系統架構與四大元件

本篇博文主要講解Android的系統架構。 對於Android開發者來說,有必要了解一下Android應用程式是如何執行的。 Android是一個移動作業系統,它大致分為四層,即Linux核心層,庫和執行時,Framework層和應用層。Android的體系架構鼓勵系統元

分散式架構學習之:013--基於Dubbo的分散式系統架構介紹(以第三方支付系統架構為例)

基於Dubbo的分散式應用架構規劃(以第三方支付系統為例) 結合業務場景,對系統的應用型別進行劃分: (1) 服務子系統 ------ 賬戶、交易、對賬、結算、打款、風控…… (2) 內部管理應用

Android系統架構——各層功能簡介

官網給了我們一個Android整體架構圖,從上到下依次是 應用程式層(Application)、應用程式框架層(Application Framework)、系統執行庫層(Libraries&

android系統架構分析

我們對android有了個大致的瞭解,知道如何搭建android的環境及簡單地寫一個HelloWorld程式,而且知道一個android專案包括哪些資料夾和檔案及相應的作用。本篇將站在頂級的高度——架構,來看android。我開篇就說了,這個系列適合0基礎的人且我也是從0開

Android系統架構5層

Android 是一種基於 Linux 的開放原始碼軟體棧,為廣泛的裝置和機型而建立。下圖所示為 Android 平臺的主要元件。  Android 軟體棧 Linux 核心 Android 平臺的基礎是 Linux 核心。例如,Android Runtime (

Android系統架構、JVM和DalvikVM的區別

一、系統框架 1.Anroid大致分為四層結構,五塊區域 1)應用程式層(Applications) 所有安裝在手機上的應用程式都屬於這一層。 2)應用程式框架(Application Fr