Android系統級深入開發——移植與調試


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 模擬器中的實現

思維導圖

Android系統級深入開發——移植與調試

防止博客圖床圖片失效,防止圖片源站外鏈:

http://www.processon.com/chart_image/5e5b3ef2e4b02bc3ad6a2540.png)

思維導圖在線編輯鏈接:

https://www.processon.com/view/5e5b3ef2e4b02bc3ad6a253d


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM