Android系統級深入開發——移植與調試
1 Android系統移植開發概述
1.1 Android系統架構和生態系統
1.1.1 Android軟件系統
1.1.2 Android的生態系統
1.2 Android移植的概念和方法
1.3 Android移植的主要工作
2 Android源代碼和開發環境
2.1 開發環境和工具
2.2 Android的代碼庫
2.3 Android系統代碼和編譯
2.3.1 獲取Android源代碼
2.3.2 Android源代碼結構
2.3.3 編譯Android系統源代碼
2.3.4 編譯Android結果
2.4 Android Kernel代碼和編譯
2.4.1 Goldfish內核源代碼
2.4.2 MSM內核源代碼
2.4.3 Omap內核源代碼
2.5 仿真器的運行環境
2.5.1 仿真器的運行
2.5.2 使用附加工具
3 Android系統移植的結構和方法
3.1 Android的Linux操作系統
3.1.1 標准的Linux操作系統
3.1.2 Android對Linux內核的使用
3.1.3 Linux內核空間到用戶空間的接口
3.1.4 平台數據和平台驅動
3.2 Android的硬件抽象層
3.2.1 硬件抽象層的地位和功能
3.2.2 硬件抽象層接口方式
3.3 Android中各個部件的移植方式
3.4 輔助性工作和基本調試方法
3.4.1 移植的輔助性工作
3.4.2 調試的方法
4 Android的GoldFish內核和驅動
4.1 GoldFish內核概述
4.2 GoldFish體系結構移植
4.3 GoldFish的Android專用驅動和組件
4.3.1 wakelock和earlysuspend
4.3.2 staging中的驅動程序
4.3.3 Ashmem驅動程序
4.3.4 Alarm驅動程序
4.3.5 pmem驅動程序
4.3.6 ADB Garget驅動程序
4.3.7 Android Paranoid網絡
4.4 GoldFish的相關設備驅動
4.4.1 Framebuffer的驅動程序
4.4.2 鍵盤的驅動程序
4.4.3 實時時鍾的驅動程序
4.4.4 TTY終端的驅動程序
4.4.5 NandFlash的驅動程序
4.4.6 MMC的驅動程序
4.4.7 電池的驅動程序
4.4.8 EAC音頻的驅動程序
5 Android的MSM內核和驅動
5.1 MSM處理器概述
5.1.1 MSM概述
5.1.2 MSM適用於Android的Linux內核的結構
5.2 MSM體系結構的移植
5.3 MSM的Android專用驅動和組件
5.4 MSM的mahimahip平台的主要設備驅動
5.4.1 顯示的驅動程序
5.4.2 觸摸屏的驅動程序
5.4.3 按鍵和軌跡球的驅動程序
5.4.4 實時時鍾的驅動程序
5.4.5 攝像頭的驅動程序
5.4.6 無線局域網的驅動程序
5.4.7 藍牙的驅動程序
5.4.8 DSP相關的驅動程序
5.4.9 高通特有的組件相關內容
6 Android的OMAP內核和驅動
6.1 OMAP內核概述
6.1.1 OMAP概述
6.1.2 OMAP適用於Android的Linux內核的結構
6.2 OMAP體系結構的移植
6.2.1 OMAP平台部分的移植
6.2.2 OMAP處理器部分的移植
6.3 OMAP的Android專用驅動和組件
6.4 OMAP的主要設備驅動
6.4.1 顯示的驅動程序
6.4.2 攝像頭和視頻輸出的驅動程序
6.4.3 i2c總線驅動程序
6.4.4 鍵盤的驅動程序
6.4.5 觸摸屏的驅動程序
6.4.6 實時時鍾的驅動程序
6.4.7 音頻的驅動程序
6.4.8 藍牙的驅動程序
6.4.9 以太網的驅動程序
6.4.10 DSP的驅動程序
7 顯示系統
7.1 顯示系統結構和移植內容
7.1.1 Donut及其之前顯示系統的結構
7.1.2 Eclair及其之后顯示系統的結構
7.1.3 移植的內容
7.2 移植和調試的要點
7.2.1 Framebuffer驅動程序
7.2.2 Donut及其之前的硬件抽象層
7.2.3 Eclair及其之后的硬件抽象層
7.3 顯示部分模擬器的實現方式
7.3.1 Goldfish的framebuffer驅動程序
7.3.2 默認的Gralloc模塊的實現
7.4 MSM中的實現
7.4.1 MSM的framebuffer驅動程序
7.4.2 MSM的Gralloc模塊的實現
7.5 OMAP中的實現
7.5.1 OMAP的framebuffer驅動程序
7.5.2 OMAP的用戶空間的實現
8 用戶輸入系統
8.1 用戶輸入系統結構和移植內容
8.1.1 用戶輸入系統的結構
8.1.2 移植的內容
8.2 移植的要點
8.2.1 input驅動程序
8.2.2 用戶空間的處理
8.2.3 移植需要注意的情況
8.3 模擬器中的實現
8.3.1 驅動程序
8.3.2 用戶空間的配置文件
8.4 MSM中的實現
8.4.1 觸摸屏,軌跡球和按鍵驅動程序
8.4.2 用戶空間的配置文件
8.5 OMAP中的實現
8.5.1 觸摸屏和鍵盤的驅動程序
8.5.2 用戶空間的配置文件
8.6 虛擬按鍵的實現
9 傳感器系統
9.1 傳感器系統結構和移植內容
9.1.1 傳感器系統的結構
9.1.2 移植的內容
9.2 移植和調試的要點
9.2.1 驅動程序
9.2.2 硬件抽象層的內容
9.2.3 上層的情況和注意事項
9.3 模擬器中的實現
10 音頻系統
10.1 音頻系統結構和移植內容
10.1.1 音頻系統的結構
10.1.2 移植的內容
10.2 移植和調試的要點
10.2.1 Audio驅動程序
10.2.2 硬件抽象層的內容
10.2.3 Audio策略管理的內容
10.2.4 上層的情況和注意事項
10.3 通用的Audio系統實現
10.3.1 用樁實現的Audio硬件抽象層
10.3.2 提供Dump功能的Audio硬件抽象層
10.3.3 通用的Audio硬件抽象層
10.4 MSM系統的實現
10.4.1 Audio驅動程序
10.4.2 Audio硬件抽象層
10.5 基於OSS和ALSA的實現方式
10.5.1 OSS驅動程序
10.5.2 基於OSS的硬件抽象層
10.5.3 ALSA驅動程序
10.5.4 基於ALSA的硬件抽象層
11 視頻輸出系統
11.1 視頻輸出系統結構和移植內容
11.1.1 視頻輸出系統的結構
11.1.2 移植的內容
11.2 移植和調試的要點
11.2.1 驅動程序
11.2.2 硬件抽象層的內容
11.2.3 上層的情況和注意實現
11.3 Overlay硬件抽象層實現的框架
11.4 OMAP系統的實現
11.4.1 OMAP的視頻輸出部分的驅動程序
11.4.2 OMAP Overlay硬件抽象層
12 照相機系統
12.1 照相機系統結構和移植內容
12.1.1 照相機系統的結構
12.1.2 移植的內容
12.2 移植和調試的要點
12.2.1 Video for 4Linux驅動程序
12.2.2 硬件抽象層的內容
12.2.3 上層的情況和注意事項
12.2.4 照相機系統的數據流情況
12.3 Camera硬件抽象層樁實現
12.4 MSM平台的Camera實現
12.4.1 MSM平台的Camera驅動程序
12.4.2 MSM平台的Camera硬件抽象層
12.5 OMAP平台的Camera實現
12.5.1 OMAP平台的Camera驅動程序
12.5.2 OMAP平台的Camera硬件抽象層
13 無線局域網系統
13.1 無線局域網系統結構和移植內容
13.1.1 無線局域網系統的結構
13.1.2 移植的內容
13.2 移植和調試的要點
13.2.1 協議和驅動程序
13.2.2 用戶空間的內容
13.2.3 上層的情況和調試方法
13.3 OMAP系統的無線局域網實現
13.3.1 Linux內核中的內容
13.3.2 用戶空間的實現
14 藍牙系統
14.1 藍牙系統結構和移植內容
14.1.1 藍牙系統的結構
14.1.2 移植的內容
14.2 移植和調試的要點
14.2.1 驅動程序
14.2.2 本地代碼的配置部分
14.2.3 上層的情況和調試方法
14.3 MSM系統的藍牙實現
14.3.1 驅動部分
14.3.2 用戶空間的部分
15 定位系統
15.1 定位系統的系統結構和移植內容
15.1.1 定位系統的系統結構
15.1.2 移植的內容
15.2 移植和調試的要點
15.2.1 驅動程序
15.2.2 硬件抽象層
15.2.3 上層的情況和調試方法
15.3 仿真器的GPS硬件適配層實現
15.4 MSM平台的GPS硬件適配層實現
16 電話系統
16.1 電話系統結構和移植內容
16.1.1 電話系統的系統結構
16.1.2 移植的內容
16.2 移植和調試的要點
16.2.1 驅動程序
16.2.2 RIL實現庫的接口
16.2.3 數據連接部分
16.2.4 調試方法
16.3 電話部分的RIL參考實現
16.3.1 端口初始化
16.3.2 AT命令處理流程
16.3.3 Event模塊
16.3.4 Modem AT命令初始化
16.3.5 請求和響應流程的處理
16.3.6 特定命令類型的實現
17 OpenGL 3D引擎
17.1 OpenGL系統結構和移植內容
17.1.1 OpenGL系統的結構
17.1.2 移植的內容
17.2 移植和調試的要點
17.2.1 OpenGL移植層的接口
17.2.2 上層的情況和OpenGL的調試
17.2 Android軟件OpenGL的實現
17.3 不同系統中的實現
18 OpenMax多媒體引擎
18.1 OpenMax系統結構和移植內容
18.1.1 OpenMax系統的結構
18.1.2 Android OpenMax實現的內容
18.2 OpenMax的接口與實現
18.2.1 OpenMax IL層的接口
18.2.2 OpenMax IL實現的內容
18.2.3 Android中OpenMax的適配層
18.3 OMAP平台OpenMax IL的硬件實現
18.3.1 TI OpenMax IL實現的結構和機制
18.3.2 TI OpenMax IL的核心和公共內容
18.3.3 一個TIOpenMax IL組件的實現
19 多媒體系統的插件
19.1 Android多媒體相關結構與移植內容
19.1.1 多媒體處理過程
19.1.2 移植的內容
19.2 OpenCore引擎的結構和插件
19.2.1 OpenCore的結構
19.2.2 OpenCore的Node插件機制
19.2.3 OpenMax部分的結構、實現和插件結構
19.2.4 關於媒體輸入輸出類MedialO
19.2.5 OpenCore Player的視頻顯示部分插件
19.3 Stagefright引擎的結構和插件
19.3.1 Stagefright系統結構
19.3.2 Stagefright對Android中OpenMax接口的實現
19.3.3 MediaSource插件機制
19.3.4 OpenMax和VideoRenderer插件機制
19.4 OMAP平台實現的插件
19.4.1 OpenCore的OpenMax插件
19.4.2 OpenCore的視頻輸出插件
19.4.3 Stagefright的OpenMax和視頻輸出插件
20 位塊復制系統
20.1 位塊復制結構和移植內容
20.1.1 位塊復制系統的結構
20.1.2 移植內容
20.2 移植和調試的要點
20.2.1 驅動程序
20.2.2 硬件抽象層的內容
20.2.3 上層的情況和注意事項
20.3 MSM平台中的實現
21 警報器——實時時鍾系統
21.1 警報器——實時時鍾結構和移植內容
21.1.1 警報器——實時時鍾系統的結構
21.1.2 移植內容
21.2 移植與調試的要點
21.2.1 RTC驅動程序
21.2.2 Alarm驅動程序
21.2.3 上層的情況和注意事項
21.3 模擬器環境中的實現
21.4 MSM平台的實現
22 光系統
22.1 光系統結構和移植內容
22.1.1 光系統部分的結構
22.1.2 移植內容
22.2 移植與調試的要點
22.2.1 驅動程序
22.2.2 硬件抽象層的內容
22.2.3 上層的情況和注意事項
22.3 MSM中的實現
22.3.1 驅動程序
22.3.2 硬件抽象層
23 振動器系統
23.1 振動器系統結構和移植內容
23.1.1 振動器部分的結構
23.1.2 移植內容
23.2 移植與調試的要點
23.2.1 驅動程序
23.2.2 硬件抽象層的內容
23.2.3 上層的情況和注意事項
23.3 MSM中的實現
24 電池系統
24.1 電池系統結構和移植內容
24.1.1 電池系統部分的結構
24.1.2 移植內容
24.2 移植和調試的要點
24.2.1 驅動程序
24.2.2 上層的情況和注意事項
24.3 模擬器中的實現
思維導圖
防止博客圖床圖片失效,防止圖片源站外鏈:
http://www.processon.com/chart_image/5e5b3ef2e4b02bc3ad6a2540.png)
思維導圖在線編輯鏈接: