亞寵展、全球?qū)櫸锂a(chǎn)業(yè)風(fēng)向標(biāo)——亞洲寵物展覽會(huì)深度解析
956
2022-05-28
一. Android 框架
Android框架層級(jí) : Android 自下 而 上 分為 4層;
-- Linux內(nèi)核層;
-- 各種庫 和 Android運(yùn)行環(huán)境層;
-- 應(yīng)用框架層;
-- 應(yīng)用層;
1. Linux內(nèi)核層
Android 的 Linux 內(nèi)核層 組成 : Linux 內(nèi)核 和 驅(qū)動(dòng)程序;
Linux內(nèi)核 : Android 2.x 是基于 Linux 2.6 內(nèi)核;
驅(qū)動(dòng)程序 :
-- Display Driver (顯卡驅(qū)動(dòng)) : Linux 的幀緩沖 驅(qū)動(dòng);
-- Flash Memory Driver (Flash 內(nèi)存驅(qū)動(dòng)) : 基于 MTD 的 Flash 驅(qū)動(dòng)程序;
-- Camera Driver (相機(jī)驅(qū)動(dòng)) : 基于 Linux v4l 驅(qū)動(dòng);
-- Audio Driver (音頻驅(qū)動(dòng)) : 基于 ALSA 驅(qū)動(dòng);
-- Wifi Driver (Wifi驅(qū)動(dòng)) : 基于 IEEE 801.31 標(biāo)準(zhǔn)的驅(qū)動(dòng)程序;
-- KeyBoard Driver (鍵盤驅(qū)動(dòng)) : 作為輸入設(shè)備的鍵盤驅(qū)動(dòng);
-- Bluetooth Driver (藍(lán)牙驅(qū)動(dòng)) : 基于 IEEE 801.35.1 標(biāo)準(zhǔn)的無線傳輸技術(shù);
-- Binder IPC Driver : Android 特有的驅(qū)動(dòng)程序, 有單獨(dú)的設(shè)備節(jié)點(diǎn), 提供進(jìn)程通信的功能;
-- Power Management (電源管理) : 管理電池電量等信息;
解析驅(qū)動(dòng) :
--?Frame Buffer (幀緩沖) : 視頻輸出設(shè)備 中包含 有 完整幀數(shù)據(jù)的 視頻緩沖區(qū), 使用該緩沖區(qū) 驅(qū)動(dòng)視頻顯示設(shè)備;
--?v4l (Video for linux) : Linux 中的 攝像頭驅(qū)動(dòng);
--?ALSA (Advanced Linux Sound Architecture) : 高級(jí) Linux 聲音體系驅(qū)動(dòng), 該組件 提供了 聲卡驅(qū)動(dòng);
2. 庫 和 Android 運(yùn)行環(huán)境
該層分兩部分 : Android 運(yùn)行環(huán)境 和 各種 庫;
各種庫介紹 : 這些庫以系統(tǒng)中間件形式提供, 與移動(dòng)設(shè)備平臺(tái)的應(yīng)用有密切的關(guān)系;
-- C標(biāo)準(zhǔn)庫 : Android 系統(tǒng)最底層的庫, 該標(biāo)準(zhǔn)庫調(diào)用 內(nèi)核的系統(tǒng)調(diào)用實(shí)現(xiàn)所需的功能;
-- Media Framework (多媒體框架) : Android 多媒體核心部分, 是基于 PacketVideo 的 OpenCore框架, 功能一 音頻視頻回放, 功能二 音頻視頻記錄;
-- SGL : 2D的引擎;
-- SSL (Secure Socket Layer) : 主要 為 TCP/IP 協(xié)議 與 應(yīng)用層協(xié)議 之間的數(shù)據(jù)通信 提供安全支持;
-- OpenGL ES : 3D引擎;
-- Surface Management (界面管理工具) : 管理顯示子系統(tǒng)的功能;
-- SQLite : 嵌入式數(shù)據(jù)庫;
-- WebKit : 網(wǎng)絡(luò)瀏覽器內(nèi)核;
-- FreeType : 提供位圖 和 矢量字體功能;
Dalvik虛擬機(jī) 與 JVM 區(qū)別 :
-- 執(zhí)行文件 : JVM 執(zhí)行 .class 標(biāo)準(zhǔn)字節(jié)碼文件, Dalvik 虛擬機(jī)執(zhí)行 .dex 文件;
-- 最大區(qū)別 : JVM 是基于棧 (Stack-based) 的虛擬機(jī), Dalvik 虛擬機(jī) 是基于寄存器 (Register-based) 的虛擬機(jī), 后者可以根據(jù)硬件實(shí)現(xiàn)更好的優(yōu)化;
3. 應(yīng)用程序框架層
應(yīng)用框架層 : 該層 提供了 應(yīng)用程序使用的 API, 包括 各種 UI 組件 和 其它組件, 包括下面的組件;
-- Activity : 主要活動(dòng)界面;
-- BroadcastReceiver : 廣播接收者;
-- Service : 服務(wù);
-- ContentProvider : 內(nèi)容提供者;
4. 應(yīng)用程序?qū)?/p>
該層主要是 apk 安裝程序;
二. Android 源碼結(jié)構(gòu)
基于?android-2.3.4_r1 版本的源碼進(jìn)行分析;
Android 源碼結(jié)構(gòu)分類 :
-- 核心部分 : 該部分是建立Android 系統(tǒng)的基礎(chǔ), 被保存在根目錄的文件中;
-- 擴(kuò)展工程 : 使用其它開源項(xiàng)目的部分;
-- 包部分 : 提供了 Android 應(yīng)用程序, 四大組件 等, 在 package 目錄中;
1. 根目錄 (/)
bionic : 基礎(chǔ)庫的源碼, C 運(yùn)行時(shí)支持庫 libc, libm, libdl, 動(dòng)態(tài) linker;
bootable/bootloader/legacy?: 內(nèi)核引導(dǎo)加載器, 加載內(nèi)核之前運(yùn)行的程序;
build : 編譯和配置所需要的腳本 和 工具;
dalvik : Android中的 Java 虛擬機(jī), 提供Android應(yīng)用程序運(yùn)行基礎(chǔ);
development : 程序開發(fā)所需的模板和工具, 層次較高;
external : 使用的其它的開源的擴(kuò)展庫;
frameworks : 應(yīng)用程序框架層, 四大組件等;
hardware : 硬件相關(guān)的庫;
kernel : Linux 內(nèi)核源碼;
packages : Android 各種應(yīng)用程序;
prebuilt : 各種平臺(tái)下的編譯預(yù)置腳本;
recovery : 與 Android 系統(tǒng)恢復(fù)功能相關(guān);
system : Android 底層庫;
Makefile : 整個(gè) Android 源碼 編譯的 Makefile;
2. development 目錄 (/development)
apps : Android 應(yīng)用程序模板;
build : 編譯腳本模板;
host : windows 平臺(tái)的一些工具;
samples : 示例程序, 簡單的Android程序, 可以作為模板;
3. external 目錄 (/external)
opencore : Android 多媒體框架核心;
webkit : Android 網(wǎng)絡(luò)瀏覽器核心;
sqlite : Android 數(shù)據(jù)庫系統(tǒng)核心;
openssl : Secure Socket Layer, 是一個(gè)網(wǎng)絡(luò)協(xié)議, 為數(shù)據(jù)通信提供安全支持;
4. frameworks
base : Android 核心框架庫基本內(nèi)容;
opt : 可選部分;
base 目錄內(nèi)容 :
-- cmds : 重要的命令;
-- core : 核心庫;
-- data : 字體聲音數(shù)據(jù)文件;
-- docs : 文檔;
-- graphics : 圖形相關(guān);
-- include : 頭文件;
-- keystore : 數(shù)據(jù)簽名證書;
-- libs : 庫;
-- location : 地區(qū)庫;
-- media : 媒體相關(guān)庫;
-- obex : 藍(lán)牙相關(guān)的庫;
-- opengl : 3D圖形庫;
-- packages : 設(shè)置 TTS VPN 等庫;
-- sax : XML 解析;
-- services : 各種服務(wù);
-- telephony : 電話通信管理;
-- test-runner : 測(cè)試工具相關(guān);
-- test : 各種測(cè)試;
-- tools : 各種工具;
-- vpn :
-- wifi :
5. packages 目錄 (/packages)
Apps : Android 中的各種應(yīng)用程序;
providers : 保存內(nèi)容提供者信息;
inputmethod : 輸入法;
wallpapers : 墻紙;
Android Linux
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。