【Android 系统开发】Android框架 与 源码结构
一. Android 框架
Android框架層級 : Android 自下 而 上 分為 4層;
-- Linux內核層;
-- 各種庫 和 Android運行環境層;
-- 應用框架層;
-- 應用層;
1. Linux內核層
Android 的 Linux 內核層 組成 : Linux 內核 和 驅動程序;
Linux內核 : Android 2.x 是基于 Linux 2.6 內核;
驅動程序 :?
-- Display Driver (顯卡驅動) : Linux 的幀緩沖 驅動;
-- Flash Memory Driver (Flash 內存驅動) : 基于 MTD 的 Flash 驅動程序;
-- Camera Driver (相機驅動) : 基于 Linux v4l 驅動;
-- Audio Driver (音頻驅動) : 基于 ALSA 驅動;
-- Wifi Driver (Wifi驅動) : 基于 IEEE 801.31 標準的驅動程序;
-- KeyBoard Driver (鍵盤驅動) : 作為輸入設備的鍵盤驅動;
-- Bluetooth Driver (藍牙驅動) : 基于 IEEE 801.35.1 標準的無線傳輸技術;
-- Binder IPC Driver : Android 特有的驅動程序, 有單獨的設備節點, 提供進程通信的功能;
-- Power Management (電源管理) : 管理電池電量等信息;
解析驅動 :?
--?Frame Buffer (幀緩沖) : 視頻輸出設備 中包含 有 完整幀數據的 視頻緩沖區, 使用該緩沖區 驅動視頻顯示設備;
--?v4l (Video for linux) : Linux 中的 攝像頭驅動;
--?ALSA (Advanced Linux Sound Architecture) : 高級 Linux 聲音體系驅動, 該組件 提供了 聲卡驅動;
2. 庫 和 Android 運行環境
該層分兩部分 : Android 運行環境 和 各種 庫;
各種庫介紹 : 這些庫以系統中間件形式提供, 與移動設備平臺的應用有密切的關系;
-- C標準庫 : Android 系統最底層的庫, 該標準庫調用 內核的系統調用實現所需的功能;
-- Media Framework (多媒體框架) : Android 多媒體核心部分, 是基于 PacketVideo 的 OpenCore框架, 功能一 音頻視頻回放, 功能二 音頻視頻記錄;
-- SGL : 2D的引擎;
-- SSL (Secure Socket Layer) : 主要 為 TCP/IP 協議 與 應用層協議 之間的數據通信 提供安全支持;
-- OpenGL ES : 3D引擎;
-- Surface Management (界面管理工具) : 管理顯示子系統的功能;
-- SQLite : 嵌入式數據庫;
-- WebKit : 網絡瀏覽器內核;
-- FreeType : 提供位圖 和 矢量字體功能;
Dalvik虛擬機 與 JVM 區別 :?
-- 執行文件 : JVM 執行 .class 標準字節碼文件, Dalvik 虛擬機執行 .dex 文件;
-- 最大區別 : JVM 是基于棧 (Stack-based) 的虛擬機, Dalvik 虛擬機 是基于寄存器 (Register-based) 的虛擬機, 后者可以根據硬件實現更好的優化;?
3. 應用程序框架層
應用框架層 : 該層 提供了 應用程序使用的 API, 包括 各種 UI 組件 和 其它組件, 包括下面的組件;
-- Activity : 主要活動界面;
-- BroadcastReceiver : 廣播接收者;
-- Service : 服務;
-- ContentProvider : 內容提供者;
4. 應用程序層
該層主要是 apk 安裝程序;
二. Android 源碼結構?
基于?android-2.3.4_r1 版本的源碼進行分析;
Android 源碼結構分類 :?
-- 核心部分 : 該部分是建立Android 系統的基礎, 被保存在根目錄的文件中;
-- 擴展工程 : 使用其它開源項目的部分;
-- 包部分 : 提供了 Android 應用程序, 四大組件 等, 在 package 目錄中;
1. 根目錄 (/)
bionic : 基礎庫的源碼, C 運行時支持庫 libc, libm, libdl, 動態 linker;
bootable/bootloader/legacy?: 內核引導加載器, 加載內核之前運行的程序;
build : 編譯和配置所需要的腳本 和 工具;
dalvik : Android中的 Java 虛擬機, 提供Android應用程序運行基礎;
development : 程序開發所需的模板和工具, 層次較高;
external : 使用的其它的開源的擴展庫;
frameworks : 應用程序框架層, 四大組件等;
hardware : 硬件相關的庫;
kernel : Linux 內核源碼;
packages : Android 各種應用程序;
prebuilt : 各種平臺下的編譯預置腳本;
recovery : 與 Android 系統恢復功能相關;
system : Android 底層庫;
Makefile : 整個 Android 源碼 編譯的 Makefile;
2. development 目錄 (/development)
apps : Android 應用程序模板;
build : 編譯腳本模板;
host : windows 平臺的一些工具;
samples : 示例程序, 簡單的Android程序, 可以作為模板;
3. external 目錄 (/external)
opencore : Android 多媒體框架核心;
webkit : Android 網絡瀏覽器核心;
sqlite : Android 數據庫系統核心;
openssl : Secure Socket Layer, 是一個網絡協議, 為數據通信提供安全支持;
4. frameworks
base : Android 核心框架庫基本內容;
opt : 可選部分;
base 目錄內容 :?
-- cmds : 重要的命令;
-- core : 核心庫;
-- data : 字體聲音數據文件;
-- docs : 文檔;
-- graphics : 圖形相關;
-- include : 頭文件;
-- keystore : 數據簽名證書;
-- libs : 庫;
-- location : 地區庫;
-- media : 媒體相關庫;
-- obex : 藍牙相關的庫;
-- opengl : 3D圖形庫;
-- packages : 設置 TTS VPN 等庫;
-- sax : XML 解析;
-- services : 各種服務;
-- telephony : 電話通信管理;
-- test-runner : 測試工具相關;
-- test : 各種測試;
-- tools : 各種工具;
-- vpn :?
-- wifi :?
5. packages 目錄 (/packages)
Apps : Android 中的各種應用程序;
providers : 保存內容提供者信息;
inputmethod : 輸入法;
wallpapers : 墻紙;
總結
以上是生活随笔為你收集整理的【Android 系统开发】Android框架 与 源码结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 应用开发】Androi
- 下一篇: 【Unity 3D 游戏开发】Unity