Android 系統(tǒng)開發(fā)】Android框架 與 源碼結(jié)構(gòu)

      網(wǎng)友投稿 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)程序;

      【Android 系統(tǒng)開發(fā)】Android框架 與 源碼結(jié)構(gòu)

      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)容。

      上一篇:張小白o(hù)penGauss2.1.0 for openEuler 21.09安裝手記
      下一篇:程序員之路:Linux入門常識(shí)
      相關(guān)文章
      亚洲一区二区三区四区在线观看| 久久亚洲精品无码播放| 亚洲国产精品自产在线播放| 在线综合亚洲中文精品| 亚洲欧洲精品视频在线观看| 亚洲av无码乱码国产精品| 国产亚洲精品资源在线26u| 相泽亚洲一区中文字幕| 亚洲无码高清在线观看| 亚洲国产精品专区在线观看| 亚洲国产人成中文幕一级二级| 亚洲国产欧美一区二区三区| 亚洲一卡2卡3卡4卡5卡6卡 | 亚洲AⅤ视频一区二区三区| 青青青亚洲精品国产| 精品亚洲成a人在线观看| 朝桐光亚洲专区在线中文字幕| 亚洲日韩在线中文字幕综合| 美国毛片亚洲社区在线观看| 亚洲?v女人的天堂在线观看| 国产亚洲精品2021自在线| 亚洲av区一区二区三| 亚洲精品无码久久久久AV麻豆| 亚洲综合另类小说色区色噜噜| 国产日产亚洲系列最新| 国产aⅴ无码专区亚洲av麻豆| 亚洲精品狼友在线播放| 久久久久久a亚洲欧洲AV| 久久久久亚洲精品天堂| 亚洲另类古典武侠| 亚洲综合激情五月色一区| 亚洲成a∧人片在线观看无码| 国产亚洲综合视频| 久久久久亚洲精品无码网址 | 亚洲精品电影在线| 国产91在线|亚洲| 亚洲A∨精品一区二区三区下载| 亚洲高清偷拍一区二区三区| 国产成人亚洲综合| 亚洲va久久久噜噜噜久久天堂| 337p日本欧洲亚洲大胆艺术|