智能手機操作系統Android

1、Android系統概述

• Android(安卓)本義是「機器人」。
• Android由Google公司開發;
• Android是基於Linux內核的開放源代碼操作系統。
• Android主要用於移勱設備。
• 如,智能手機,平板電腦,汽車導航儀等。

2、Android系統結構

Android系統採用分層結構
在這裏插入圖片描述

(1)應用程序層

• 應用層包括通話、短信、聯繫人等系統應用; • 還包括其他後續安裝的第三方應用程序。 如瀏覽器、微信、地圖等。

• Android應用程序採用Java語言開發。
• Android可以用C/C++開發底層模塊;
• 但是,開發者只能使用C/C++編寫功能類庫,而丌是整個應用程序。
• Android的界面顯示、進程調度等核心機制都通過Java來實現。

(2)應用程序框架

• 活動:用於表現功能;
• 服務:指後臺運行的進程,不提供用戶界面;
• 廣播:用於接收廣播信息;
• 內容:存儲和讀取數據,相當於數據庫。

活動管理器(Activity)
• Android 系統中,所有程序都運行在活動中(進程)。
• 活動一般代表手機屏幕的一屏。
• 一個Android應用由多個活勱組成。
• 多個活勱之間可以相互跳轉。
• 如,按下一個按鈕後,可能會跳轉到其他的屏幕(另一個活動)。
• 跳轉到新屏幕時,之前的屏幕進入暫停狀態。

服務管理器(Service)
• 服務也是一種進程,它只能在後臺運行,沒有用戶界面。
• 如,前臺上網,後臺播放音樂,播放進程由服務控制。

廣播接收器(BroadcastReceiver)
• 廣播是程序之間傳輸信息的機制;
• 可以使用廣播讓應用程序對一個外部事件做出響應。
• 如,電話呼入時,可利用廣播將當前進程切換到電話接入。
• 如,文件下載完成時,可以利用廣播進行提示處理。
• 廣播沒有用戶界面,它通過通知管理器告訴用戶發生了某些事情。

內容提供器(Content Provider)
• 第三斱方應用程序的數據訪問方案。
• 在Android中,應用程序的數據,不允許其他應用程序直接訪問。

(3)系統運行庫

系統運行庫組成:庫函數層(Library)和Dalvik虛擬機。
• Libc是從BSD繼承的標準C函數庫。
• WebKit是用於Web瀏覽器引擎。
• SQLite是多媒體數據庫。
• OpenCORE是基礎多媒體庫。
• FreeType是字體引擎。
• Surface 用於顯示系統管理。
• skia是2D向量圖形處理函數庫。
• OpenGL是3D圖象與業圖形程序接口。
• SSL(安全套接層)提供通信安全和數據完整性檢測。

(4)運行時機制

• 運行時機制組成:Java核心類庫+Java虛擬機(Dalvik)。
• Java核心類庫包括:Java對象庫、文件管理庫、網絡通信庫等。
• Dalvik是Android的Java虛擬機;
• Dalvik負責執行應用程序,分配存儲空間,管理進程等工作。
• Dalvik採用的二進制碼文件爲.dex。
• Android應用程序編譯時,會先生成若干個.class文件,然後統一轉換成.dex文件。
• .dex文件通常比.class文件更精簡。

(5)Linux內核

• Android系統搭建在Linux內核之上;
• Android的Linux內核包括:
安全管理,存儲器管理,程序管理,網絡堆棧,驅動程序模型等。
• Android的硬件抽像層(HAL)是硬件驅勱模塊。
• 目的是將Android與Linux內核隔離開;
• 使Android不至過度依賴 Linux內核。

3、Android應用程序安裝包APK

• 文件後綴名爲apk(Android安裝包)的文件是安卓應用程序安裝包。
• 將APK文件傳送到Android手機後,可選擇安裝或不安裝應用程序。
• apk文件其實是zip格式,並非Java ME字節碼文件。

Android重要文件夾: • 存放系統文件的/system文件夾; • 存放配置文件的/dev文件夾; • SD卡中存放程序和數據的/sdcard文件夾。