《Android板級支持與硬體相關子系統》是2013年10月1日電子工業出版社出版的圖書,作者是韓超。
基本介紹
- 中文名:Android板級支持與硬體相關子系統
- 作者:韓超
- 出版社:電子工業出版社
- 出版時間:2013年10月1日
- 頁數:407 頁
- 定價:59 元
- 開本:16 開
- ISBN:9787121213489
- 語種:簡體中文
內容簡介,編輯推薦,作者簡介,圖書目錄,
內容簡介
本書以硬體相關的子系統為核心,提供具有完整知識體系Android系統級的開發知識。本書選定了幾個流行的硬體作為參考平台,讀者可以很容易地得到硬體和開原始碼。本書突出了硬體相關的子系統的特點,展示了幾個不同的硬體平台的核心結構,介紹了每個子系統的總體結構和BSP結構、每個子系統的BSP的實現要點,以及具體硬體在Linux核心與Android硬體抽象層相關的實現。
本書適用於各類Android技術群體,也適用於嵌入式Linux的技術人員了解實際系統。作者根據豐富的開發經驗和對Android系統發展5年的總結完成本書,希望為Android系統的開發者和學習者提供切實有效的幫助。
編輯推薦
本書的目的是要為開發者提供切實有效的幫助。針對開發者的現實情況,本書主要具有以下幾個特點:
用框圖描述每一個硬體相關子系統的結構,並區分BSP部分和公用部分。
選用多個流行的硬體平台,對比其中不同的實現和相同的理念。
對比Android 2.3和Android 4.x的實現,展示硬體相關部分的升級。
對龐大的系統去耦合,展示Android一些原始的核心設計思路。
列出每一個部分相關的代碼路徑。
簡要列出代碼的關鍵部分。
根據實際經驗編寫,工程性強。
作者簡介
韓超,中國大陸地區Linux和移動設備領域的資深工程師、架構師。長期從事一線開發工作,兼具開發實踐經驗和完備的教育思維模式。韓超是中國大陸地區較早開發Android系統的人員,曾從事系統框架、晶片移植適配和移動產品等開發領域;也曾經引領各種技術人員進入Android領域,並組織參與技術交流。曾出版《Android系統原理及開發要點詳解》、《Android系統級深入開發——移植與調試》、《Android經典應用程式開發》、《Android核心原理與系統級套用高效開發》等作品。
圖書目錄
第1章 Android的BSP和子系統開發
1.1 Android板級支持工作概述
1.1.1 Android的開放原始碼工程和BSP
1.1.2 Android的系統結構
1.2 Android的開發環境和原始碼
1.2.1 Android的開發環境
1.2.2 原始碼倉庫
1.3 BSP模組和相關子系統
1.3.1 Android的BSP
1.3.2 BSP和硬體相關子系統
1.3.3 不同類型的Android設備
第2章 Android系統BSP部分工作
2.1 Android的BSP部分工作概述
2.2 BSP的全局部分
2.2.1 原始碼工程板級別支持部分
2.2.2 硬體相關的代碼改動
2.3 Android的Linux作業系統
2.3.1 Android中的Linux作業系統的特定內容
2.3.2 Android的Linux的基本支持
2.3.3 Android各個硬體設備的驅動程式
2.4 Android的硬體抽象層
2.4.1 硬體抽象層的地位和功能
2.4.2 硬體抽象層接口方式
2.5 各個子系統的移植方式
2.5.1 Android 2.3中的實現方式
2.5.2 Android 2.2及之前的實現方式
2.5.3 Android 4.x中的實現方式
2.6 與硬體抽象層相關的框架層目錄
2.6.1 一直保持不變的代碼
2.6.2 框架層的本地代碼
2.6.3 音頻視頻相關的代碼
第3章 Android的Linux核心和驅動
3.1 Android的Linux核心概述
3.1.1 幾個核心工程
3.1.2 核心工程的編譯工具鏈
3.1.3 用戶空間關注的內容
3.2 Android專用驅動和組件
3.2.1 電源管理部分
3.2.2 staging中的組件和驅動程式
3.2.3 幾個主要核心模組
3.2.4 輔助的模組和改動
3.3 goldfish平台的核心和驅動
3.3.1 goldfish平台和核心概述
3.3.2 goldfish體系結構移植
3.3.3 goldfish的相關設備驅動
3.4 高通MSM平台的核心和驅動
3.4.1 平台概述
3.4.2 體系結構移植
3.4.3 設備驅動程式
3.5 三星平台的核心和驅動
3.5.1 平台概述
3.5.2 體系結構移植
3.5.3 驅動程式部分
3.6 德州儀器OMAP平台的核心和驅動
3.6.1 平台概述
3.6.2 體系結構移植
3.6.3 驅動程式部分
第4章 顯示系統
4.1 顯示系統概述
4.2 顯示子系統結構
4.2.1 總體結構
4.2.2 核心結構和UI庫
4.2.3 Surface本地部分
4.2.4 Java層的Surface的處理
4.3 顯示BSP的結構
4.3.1 Framebuffer驅動程式
4.3.2 gralloc硬體抽象層
4.4 顯示BSP的實現
4.4.1 模擬器顯示系統的實現
4.4.2 Nexus One系統的實現
4.4.3 Nexus S系統的實現
4.4.4 Galaxy Nexus系統的實現
第5章 用戶輸入系統
5.1 用戶輸入系統概述
5.2 Android 2.3用戶輸入子系統
5.2.1 總體結構
5.2.2 本地框架的幾個部分
5.2.3 JNI
5.2.4 Java層的部分
5.3 Android 4.2的用戶輸入子系統結構
5.3.1 總體結構
5.3.2 InputManagerService的實現
5.4 用戶輸入BSP的結構
5.4.1 Input驅動程式
5.4.2 輸入配置檔案
5.5 用戶輸入BSP的實現
5.5.1 模擬器中的實現
5.5.2 Nexus One系統中的實現
5.5.3 Nexus S系統中的實現
5.5.4 Galaxy Nexus系統中的實現
第6章 感測器系統
6.1 感測器系統概述
6.2 感測器子系統的結構
6.2.1 總體結構
6.2.2 本地框架層
6.2.3 感測器系統的JNI
6.2.4 感測器系統的Java層
6.3 感測器BSP的結構
6.3.1 驅動程式
6.3.2 硬體抽象層的內容
6.4 感測器BSP的實現
6.4.1 仿真器的實現
6.4.2 Nexus One系統實現
6.4.3 Nexus S系統實現
6.4.4 Galaxy Nexus系統實現
第7章 音頻系統
7.1 音頻系統概述
7.2 音頻子系統結構
7.2.1 總體結構
7.2.2 Audio的本地框架層
7.2.3 Audio系統的JNI和Java層
7.3 音頻BSP的結構
7.3.1 Audio驅動程式
7.3.2 硬體抽象層的內容
7.4 音頻BSP的實現
7.4.1 通用的Audio系統實現
7.4.2 基於OSS的實現方式
7.4.3 基於ALSA的實現方式
7.4.4 MSM平台和Nexus One系統的實現
7.4.5 Nexus S系統的實現
第8章 視頻疊加輸出系統
8.1 視頻疊加輸出系統概述
8.2 視頻輸出子系統的結構
8.2.1 Overlay系統的結構
8.2.2 本地框架層
8.3 視頻疊加輸出BSP結構
8.3.1 移植的內容
8.3.2 驅動程式
8.3.3 硬體抽象層的內容
8.3.4 視頻輸出的調用者
8.3.5 使用Overlay的數據流情況
8.4 視頻輸出BSP的實現
8.4.1 骨架實現
8.4.2 OMAP系統的實現
8.4.3 Nexus S系統的實現
第9章 照相機系統
9.1 照相機系統概述
9.2 照相機子系統的結構
9.2.1 照相機系統的結構
9.2.2 Camera的本地層
9.2.3 Camera的JNI和Java層
9.3 照相機BSP的結構
9.3.1 移植的內容
9.3.2 Video for 4 Linux驅動程式
9.3.3 硬體抽象層的內容
9.3.4 照相機系統上下層的關係
9.4 照相機BSP的實現
9.4.1 樁實現
9.4.2 Nexus One系統的Camera實現
9.4.3 Nexus S系統的Camera實現
第10章 OpenGL 3D引擎
10.1 OpenGL系統概述
10.2 OpenGL系統的結構
10.2.1 OpenGL和OpenGL ES的標準結構
10.2.2 總體結構
10.2.3 OpenGL庫的調用者
10.3 OpenGL BSP的結構
10.3.1 移植的內容
10.3.2 OpenGL移植層的接口
10.3.3 OpenGL的調用和測試
10.4 OpenGL BSP的實現
10.4.1 Android軟體OpenGL的實現
10.4.2 Nexus One系統的實現
10.4.3 Nexus S系統的實現
10.4.4 Galaxy Nexus系統的實現
第11章 OpenMax引擎
11.1 OpenMax系統概述
11.2 OpenMax子系統結構
11.2.1 OpenMax系統的結構
11.2.2 Android中OpenMax的適配層
11.3 OpenMax BSP的結構
11.3.1 OpenMax IL層的接口
11.3.2 Android的OpenMax
11.4 OpenMax BSP的實現
11.4.1 OpenMax IL實現的內容
11.4.2 OMAP3的OpenMax IL實現的結構和機制
11.4.3 OMAP4的OpenMax IL實現
第12章 位塊複製
12.1 位塊複製概述
12.2 位塊複製子系統結構
12.2.1 總體結構
12.2.2 copybit的調用者
12.3 位塊複製BSP的結構
12.3.1 驅動程式
12.3.2 硬體抽象層的接口
12.3.3 實現硬體抽象層
12.4 位塊複製的實現
第13章 無線區域網路系統
13.1 無線區域網路系統概述
13.2 無線區域網路子系統的結構
13.2.1 總體的結構
13.2.2 wpa_supplicant工程
13.2.3 WiFi本地適配庫
13.2.4 WiFi的JNI部分
13.2.5 WiFi的Java層
13.3 無線區域網路BSP的結構
13.3.1 協定和驅動程式
13.3.2 用戶空間的內容
13.4 無線區域網路BSP的實現
13.4.1 基於BCM49的方案(Nexus One和Nexus S)
13.4.2 OMAP平台的一個典型實現
13.4.3 Galaxy Nexus的實現
第14章 藍牙系統
14.1 藍牙系統概述
14.2 藍牙子系統的結構
14.2.1 藍牙系統的結構
14.2.2 BlueZ
14.2.3 bluedroid庫
14.2.4 藍牙的JNI部分
14.2.5 藍牙的Java部分
14.3 BSP的結構
14.3.1 協定和驅動程式
14.3.2 本地代碼的配置部分
14.4 Android 4.2的藍牙系統
14.4.1 系統結構
14.4.2 藍牙硬體模組
14.4.3 藍牙系統的本地層部分
14.4.4 BlueTooth包
14.5 BSP的實現
14.5.1 Nexus One系統的藍牙實現
14.5.2 Nexus S系統的藍牙實現
14.5.3 Galaxy Nexus系統的藍牙實現
第15章 定位系統
15.1 定位系統的概述
15.2 定位子系統的結構
15.2.1 總體結構
15.2.2 JNI部分
15.2.3 Java部分
15.3 定位BSP的結構
15.3.1 驅動程式
15.3.2 硬體抽象層的接口
15.3.3 實現硬體抽象層
15.4 定位BSP的實現
15.4.1 仿真器的GPS實現
15.4.2 Nexus One系統的實現
15.4.3 Nexus S系統的實現
15.4.4 Galaxy Nexus系統的實現
第16章 電話系統
16.1 電話系統概述
16.2 電話子系統的結構
16.2.1 總體結構
16.2.2 rild層
16.2.3 Java層中的電話部分
16.3 電話BSP的結構
16.3.1 驅動程式
16.3.2 RIL實現庫接口(作為硬體抽象層)
16.4 電話BSP部分的實現
16.4.1 RIL的參考實現
16.4.2 數據連線部分
16.4.3 Mock RIL
第17章 警報器—實時時鐘系統
17.1 警報器—實時時鐘系統
17.2 警報器—實時時鐘子系統的結構
17.2.1 總體結構
17.2.2 JNI部分
17.2.3 Java部分
17.2.4 Android系統時間方面的調用
17.3 警報器—實時時鐘BSP部分的結構
17.3.1 RTC驅動程式
17.3.2 Alarm驅動程式
17.4 警報器—實時時鐘BSP部分的實現
17.4.1 模擬器環境中的實現
17.4.2 MSM平台和Nexus One系統的實現
17.4.3 Nexus S系統的實現
17.4.4 Galaxy Nexus系統的實現
第18章 光系統
18.1 光系統概述
18.2 背光和指示燈子系統的結構
18.2.1 總體結構
18.2.2 JNI部分
18.2.3 Java服務部分和調用部分
18.3 背光和指示燈BSP部分的結構
18.3.1 驅動程式
18.3.2 硬體抽象層的內容
18.4 背光和指示燈BSP部分的實現
18.4.1 Nexus One系統的實現
18.4.2 Nexus S系統的實現
18.4.3 Galaxy Nexus 系統的實現
第19章 振動器系統
19.1 振動器系統概述
19.2 振動器子系統的結構
19.2.1 振動器部分的結構
19.2.2 JNI部分
19.2.3 Java框架部分
19.3 振動器BSP部分的結構
19.3.1 驅動程式
19.3.2 硬體抽象層的內容
19.4 振動器BSP部分的實現
19.4.1 Nexus One系統的實現
19.4.2 Nexus S系統的實現
19.4.3 Galaxy Nexus
第20章 電池信息部分
20.1 電池信息部分
20.2 電池信息子系統的結構
20.2.1 電池系統部分的結構
20.2.2 JNI部分
20.2.3 Java部分
20.3 電池信息BSP部分的結構
20.4 電池信息BSP部分的實現
20.4.1 模擬器中的實現
20.4.2 Nexus One
20.4.3 Nexus S
20.4.4 Galaxy Nexus
第21章 Android 4.x的音頻、視頻系統
21.1 Android 4.x的音頻系統
21.1.1 音頻系統的結構
21.1.2 音頻框架層
21.1.3 音頻BSP部分結構
21.2 Android 4.x音頻的BSP實現
21.2.1 主實現和策略實現
21.2.2 仿真器實現
21.2.3 A2DP實現
21.2.4 Galaxy Nexus的實現
21.3 Android 4.x照相機系統
21.3.1 照相機系統的結構
21.3.2 Camera的框架層
21.3.3 照相機BSP部分結構
21.4 Android 4.x照相機的BSP實現
21.4.1 仿真器實現
21.4.2 Galaxy Nexus的實現
21.5 Android 4.x視頻組合系統
21.5.1 視頻組合系統結構
21.5.2 SurfaceFlinger對視頻組合的使用
21.5.3 視頻組合BSP部分結構
21.6 Android 4.x視頻組合的BSP實現
21.6.1 默認實現
21.6.2 Galaxy Nexus的視頻組合
第22章 Android 4.x近場通信系統
22.1 近場通信系統概述
22.2 近場通信子系統的結構
22.2.1 總體結構
22.2.2 NFC本地庫
22.2.3 Android框架層的NFC相關內容
22.2.4 NFC包
22.3 近場通信BSP的結構
22.3.1 NFC—NCI接口
22.3.2 NFC接口
22.4 近場通信BSP的實現
22.4.1 NCI—NFC的樁實現
22.4.2 NFC的樁實現
22.4.3 Galaxy Nexus 的NFC實現
第23章 Android 4.2的電源控制
23.1 電源控制
23.2 電源控制的結構
23.2.1 總體結構
23.2.2 電源控制的使用
23.3 電源控制BSP的結構
23.4 電源控制BSP的實現
23.4.1 通用的電源控制實現
23.4.2 Galaxy Nexus的電源控制實現
第24章 本地時間
24.1 本地時間子系統結構
24.1.1 本地時間的結構
24.1.2 本地時間的使用
24.2 本地時間BSP的結構
24.3 本地時間BSP的實現
第25章 Android 4.2密鑰
25.1 密鑰概述
25.2 安全和密鑰子系統結構
25.2.1 安全和密鑰的總體結構
25.2.2 keystore守護進程
25.2.3 android.security的內容
25.3 密鑰的BSP部分的結構
25.4 密鑰的BSP實現
25.4.1 通用的軟體密鑰實現
25.4.2 Galaxy Nexus 的密鑰實現
第26章 電源管理
26.1 Android電源管理
26.2 Android核心空間的電源管理
26.2.1 總體結構
26.2.2 wakelock
26.2.3 wakelock的用戶空間
26.2.4 earlysuspend部分
26.2.5 其他
26.3 Android用戶空間的電源管理
26.3.1 電源管理的本地庫
26.3.2 電源管理的JNI庫
26.3.3 電源管理的Java部分
26.4 電源管理的策略
26.4.1 驅動程式的變化
26.4.2 用戶空間的控制
第27章 恢復和升級
27.1 恢復和升級概述
27.1.1 Android的Recovery系統的組成
27.1.2 Android的Recovery系統的功能和運行流程
27.2 recovery系統
27.2.1 編譯系統
27.2.2 init.rc腳本
27.2.3 Recovery可執行程式和相關的庫
27.3 Android系統互動的過程
27.3.1 Java部分
27.3.2 互動的場景