Android 測試學習筆記(1)——Android系統及其層次結構

一、什麼是Android系統?

答:Android 是基於Linux平臺的、開源的、智能操作系統,主要使用於移動設備,如智能手機 和平板電腦。具有強大的靈活性,可以被移植到不同的硬件平臺上,除手機外,還有電視、機頂盒、嵌入式設備等。


二、安卓系統的層次結構是怎樣的呢?

答:1. Application 應用程序層:用Java語言編寫的運行在虛擬機的程序。用戶直接使用的功能,其基本應用比如:電話、聯繫人、短信、郵件等,還有無數第三方應用。


2. Application Framework 應用架構層:編寫Google發佈的核心應用程序的API框架。開發應用程序使用的基礎組件,相當於供應用程序調用的API、Java開發,包括:豐富的界面控件、Content Provider,數據存儲組件,應用程序可以通過Content Provider分項數據給其他應用,也可以訪問其他程序的數據,A Resource Manager,資源管理器,幫助應用程序訪問圖片,佈局文件等資源,A Notification Manager,提示信息管理器,An Activity Manager,主要負責管理應用程序的生命週期和調用棧等。


3. Android Runtime 系統運行庫層:包括兩個部分,一是運行環境:應用程序的運行空間,包括一個實現Java語言大多數功能的核心庫,以及一個類似Java虛擬機的Dalvik虛擬機,所有應用程序都是運行在虛擬機中。二是庫文件界面:一系列的C/C++庫,相當於Android系統在Linux核心系統上的功能擴展,爲Application Framework層的許多功能提供支持。

包括兩個部分,一是運行環境:應用程序的運行空間,包括一個實現Java語言大多數功能的核心庫,以及一個類似Java虛擬機的Dalvik虛擬機,所有應用程序都是運行在虛擬機中。二是庫文件界面:一系列的C/C++庫,相當於Android系統在Linux核心系統上的功能擴展,爲Application Framework層的許多功能提供支持。系統C庫:(libc)從BSD繼承過來的標準的C系統函數庫,專門是爲基於嵌入式Linux的設備定製的庫。 多媒體庫:基於PackerVideo的OpenCore;該庫支持多種常用的音頻、視頻格式回放和錄製,支持多種媒體格式的編和解碼格式。 Suface Manager:顯示子系統管理器,並且爲多個應用程序提供2D和3D圖層的無縫融合。 LibWebCore:一個最新的Web瀏覽器引擎,支持Android瀏覽器,以及一個可嵌入式的Web視圖。 SGL:Skia圖形庫,底層的2D圖形引擎。 3D libraries:基於OpenGL ES1.0 API的實現;該庫可以使用硬件3D加速(如果可用),或者使用高度優化的3D軟加速。 FreeType:位圖(bitmap)和矢量(vector)字體顯示。 Android運行環境(ANDROID RUNTIME):提供了Java編程語言核心庫的大多數功能,由Dalvik Java虛擬機和基礎的Java類庫組成。 Dalvik是Android中使用的Java虛擬機,每個Android應用程序都在自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。Dalvik被設計成一個可以同時高效運行多個虛擬機實例的虛擬系統。執行後綴名爲.dex的Dalvik可執行文件,該格式的文件針對小內存使用做出了優化。同時虛擬機是基於寄存器的,所有的類都是有Java編譯器編譯,然後通過SDK中的“dx”工具轉化爲.dex格式由虛擬機執行。Dalvik虛擬機依賴於Linux內核的一些功能,比如線程機制和底層內存管理機制。

4. Linux Kernel 核心層:

Linux 核心,由C語言實現,Android的基礎,基於2.6的版本,基本的操作系統組件,包括安全性、內存管理,進程管理,存儲管理,網絡棧,驅動模型等等。除了標準的Linux內核外,Android還增加了內核的驅動程序:Binder(IPC)驅動、顯示驅動、輸入設備驅動、音頻系統驅動、攝像頭驅動、WiFi驅動、藍牙驅動、電源管理。

Android建立在Linux內核之上,但是Android不是Linux,它沒有支持本地窗口系統,沒有支持glibc運行庫,沒有包含完整的Linux內核。

Android系統特點

1. 開放性

2. 應用程序無限性:Android上的應用程序可以通過標準API訪問核心移動設備功能,通過互聯網,應用程式可以聲明它們的功能可供其他應用程序使用。

3. 應用程序是在平等條件下創建的:移動設備上的應用程序可以被替代或擴展。

4. 應用程序可以輕鬆嵌入網絡

5. 應用程序可以並行運行:在後臺運行時,應用程序可以生成通知來引起用戶注意。

Linux文件系統結構

Android系統基於Linux,因此,做Android測試掌握一定的Linux知識是必要的。Linux文件系統結構是用戶空間和內核中與文件系統相關的主要組件之間的關係:

用戶空間包含一些應用程序和GUN C庫,它們爲文件系統調用提供用戶接口。

VFS是底層文件系統的主要接口,這個組件導出一組接口,然後將它們抽象到各個文件系統。

有兩個針對文件系統對象的緩存:inode cache 和 dentry,它們緩存最近使用過的文件系統對象。

緩衝區緩存會緩存文件系統和相關塊設備之間的請求。

Linux文件系統採用階層式樹狀目錄結構,最上層是"/",然後再下邊創建其他的目錄,如/bin。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章