Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android框架 與 源碼結構

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 : 牆紙;


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved