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

《Android系統級深入開發:移植與調試》是電子工業出版社2011 年2月出版的圖書,作者是韓超、梁泉。

基本信息

編輯推薦

封面

從Android開源工程到產品的開發寶典

全面介紹Android中與硬體相關的子系統

按照驅動程式和硬體抽象層兩方面把握移植要點

高效粘合Linux系統經驗和移動設備套用場景

以三種硬體平台為參考,參考開發環境宜於獲得

內容簡介

本書是一本全面介紹android系統級開發的作品,全書以移植和調試為重點。android具有一個龐大的軟體系統,任何開發者都難以掌握系統的每一個細節。因此,如何高效地理解和開發系統,就成了android系統級別工程師面對的主要問題。本書作者以實際的開發經驗為基礎,以軟體工程思想為指導,完成了本書。本書介紹了從android開源工程到一個基於實際硬體產品中的主要工作,一方面讓讀者清晰把握各個子系統的架構,另一方面讓讀者把握移植這個開發核心環節的要點。

本書適合linux開發人員、移動設備開發人員、android系統框架層和底層開發人員、有意圖深入學習android的人員、以及從事手機研發的讀者閱讀

作譯者

本書提供作譯者介紹

韓超,中國大陸資深Linux和移動開發工程師,長期從事一線開發工作,兼具開發實踐經驗和完備的教育思維模式。韓超是中國大陸較早開發Android系統開發的人員,曾從事系統框架、晶片移植適配和移動產品等開發領域;也曾經引領各種技術人員進入Android領域,並組織參與技術交流。

目錄

第1章 android系統移植開發概述 1

1.1 android系統架構和生態系統 1

1.1.1 android軟體系統 1

1.1.2 android的生態系統 3

1.2 android移植的概念和方法 4

1.3 android移植的主要工作 5

第2章 android原始碼和開發環境 8

2.1 開發環境和工具 8

2.2 android的代碼庫 9

2.3 android系統代碼和編譯 9

2.3.1 獲取android原始碼 9

2.3.2 android原始碼結構 12

2.3.3 編譯android系統原始碼 13

2.3.4 編譯android結果 13

2.4 android kernel代碼和編譯 14

2.4.1goldfish核心原始碼 15

2.4.2 msm核心原始碼 15

2.4.3 omap核心原始碼 16

2.5 仿真器的運行環境 16

2.5.1 仿真器的運行 16

.2.5.2 使用附加工具 18

第3章 android系統移植的結構和方法 20

3.1 android的linux作業系統 20

3.1.1 標準的linux作業系統 20

3.1.2 android對linux 核心的使用 22

3.1.3 linux核心空間用戶空間的接口 24

3.1.4 平台數據和平台驅動 34

3.2 android的硬體抽象層 35

3.2.1 硬體抽象層的地位和功能 35

3.2.2 硬體抽象層接口方式 36

3.3 android中各個部件的移植方式 41

3.4 輔助性工作和基本調試方法 41

3.4.1 移植的輔助性工作 42

3.4.2 調試的方法 46

第4章 android的goldfish核心和驅動 56

4.1 goldfish核心概述 56

4.2 goldfish體系結構移植 58

4.3 goldfish的android專用驅動和組件 59

4.3.1 wakelock和earlysuspend 59

4.3.2staging中的驅動程式 61

4.3.3 ashmem驅動程式 66

4.3.4 alarm驅動程式 67

4.3.5 pmem驅動程式 67

4.3.6 adb garget驅動程式 68

4.3.7 androidparanoid網路 68

4.4 goldfish的相關設備驅動 70

4.4.1FrameBuffer的驅動程式 70

4.4.2 鍵盤的驅動程式 70

4.4.3 實時時鐘的驅動程式 71

4.4.4TTY終端的驅動程式 71

4.4.5 nandflash的驅動程式 72

4.4.6 mmc的驅動程式 72

4.4.7 電池的驅動程式 73

4.4.8 eac音頻的驅動程式 73

第5章 android的msm核心和驅動 74

5.1 msm處理器概述 74

5.1.1 msm概述 74

5.1.2 msm適用於android的linux核心的結構 77

5.2 msm體系結構的移植 79

5.3 msm的android專用驅動和組件 80

5.4 msm的mahimahip平台的主要設備驅動 81

5.4.1 顯示的驅動程式 81

5.4.2 觸控螢幕的驅動程式 82

5.4.3 按鍵和軌跡球的驅動程式 82

5.4.4 實時時鐘的驅動程式 83

5.4.5 攝像頭的驅動程式 83

5.4.6 無線區域網路的驅動程式 83

5.4.7 藍牙的驅動程式 84

5.4.8 dsp相關的驅動程式 84

5.4.9 高通特有的組件相關內容 85

第6章 android的omap核心和驅動 87

6.1 omap核心概述 87

6.1.1 omap概述 87

6.1.2 omap適用於android的linux核心的結構 91

6.2 omap體系結構的移植 92

6.2.1 omap平台部分的移植 92

6.2.2 omap處理器部分的移植 94

6.3 omap的android專用驅動和組件 96

6.4 omap的主要設備驅動 97

6.4.1 顯示的驅動程式 97

6.4.2 攝像頭和視頻輸出的驅動程式 98

6.4.3 i2c匯流排驅動程式98

6.4.4 鍵盤的驅動程式 99

6.4.5 觸控螢幕的驅動程式 99

6.4.6 實時時鐘的驅動程式 99

6.4.7 音頻的驅動程式 99

6.4.8 藍牙的驅動程式 100

6.4.9 乙太網的驅動程式 100

6.4.10 dsp的驅動程式 100

第7章 顯示系統 101

7.1 顯示系統結構和移植內容 101

7.1.1donut及其之前顯示系統的結構 102

7.1.2 eclair及其之後顯示系統的結構 102

7.1.3 移植的內容 103

7.2 移植和調試的要點 104

7.2.1 framebuffer驅動程式 104

7.2.2 donut及其之前的硬體抽象層 106

7.2.3 eclair及其之後的硬體抽象層 107

7.3 顯示部分模擬器的實現方式 112

7.3.1 goldfish的framebuffer驅動程式 112

7.3.2 默認的gralloc模組的實現 113

7.4 msm中的實現 119

7.4.1 msm的framebuffer驅動程式 119

7.4.2 msm的gralloc模組的實現 120

7.5 omap中的實現 126

7.5.1 omap的framebuffer驅動程式 126

7.5.2 omap的用戶空間的實現 128

第8章 用戶輸入系統 129

8.1 用戶輸入系統結構和移植內容 129

8.1.1 用戶輸入系統的結構 129

8.1.2 移植的內容 131

8.2 移植的要點 131

8.2.1 input驅動程式 131

8.2.2 用戶空間的處理 134

8.2.3 移植需要注意的情況 139

8.3 模擬器中的實現 141

8.3.1 驅動程式 141

8.3.2 用戶空間的配置檔案 141

8.4 msm中的實現 142

8.4.1 觸控螢幕,軌跡球和按鍵驅動程式 142

8.4.2 用戶空間的配置檔案 144

8.5 omap中的實現 144

8.5.1 觸控螢幕和鍵盤的驅動程式 144

8.5.2 用戶空間的配置檔案 146

8.6 虛擬按鍵的實現 146

第9章 感測器系統 148

9.1 感測器系統結構和移植內容 148

9.1.1 感測器系統的結構 148

9.1.2 移植的內容 150

9.2 移植和調試的要點 150

9.2.1 驅動程式 150

9.2.2 硬體抽象層的內容 151

9.2.3 上層的情況和注意事項 153

9.3 模擬器中的實現 157

第10章 音頻系統 162

10.1 音頻系統結構和移植內容 162

10.1.1 音頻系統的結構 162

10.1.2 移植的內容 164

10.2 移植和調試的要點 164

10.2.1 audio驅動程式 164

10.2.2 硬體抽象層的內容 164

10.2.3 audio策略管理的內容 168

10.2.4 上層的情況和注意事項 169

10.3 通用的audio系統實現 170

10.3.1 用樁實現的audio硬體抽象層 172

10.3.2 提供dump功能的audio硬體抽象層 174

10.3.3 通用的audio硬體抽象層 177

10.4 msm系統的實現 178

10.4.1 audio驅動程式 178

10.4.2 audio硬體抽象層 180

10.5 基於oss和alsa的實現方式 183

10.5.1 oss驅動程式 183

10.5.2 基於oss的硬體抽象層 184

10.5.3 alsa驅動程式 185

10.5.4 基於alsa的硬體抽象層 186

第11章 視頻輸出系統 190

11.1 視頻輸出系統結構和移植內容 190

11.1.1 視頻輸出系統的結構 191

11.1.2 移植的內容 192

11.2 移植和調試的要點 192

11.2.1 驅動程式 192

11.2.2 硬體抽象層的內容 192

11.2.3 上層的情況和注意實現 195

11.3overlay硬體抽象層實現的框架 199

11.4 omap系統的實現 200

11.4.1 omap的視頻輸出部分的驅動程式 200

11.4.2 omap overlay 硬體抽象層 202

第12章 照相機系統 205

12.1 照相機系統結構和移植內容 205

12.1.1 照相機系統的結構 206

12.1.2 移植的內容 207

12.2 移植和調試的要點 207

12.2.1 video for 4linux驅動程式 207

12.2.2 硬體抽象層的內容 210

12.2.3 上層的情況和注意事項 215

12.2.4 照相機系統的數據流情況 219

12.3 camera硬體抽象層樁實現 222

12.4 msm平台的camera實現 226

12.4.1 msm平台的camera驅動程式 226

12.4.2 msm平台的camera硬體抽象層 227

12.5 omap平台的camera實現 228

12.5.1 omap平台的camera驅動程式 228

12.5.2 omap平台的camera硬體抽象層 229

第13章 無線區域網路系統 230

13.1 無線區域網路系統結構和移植內容 230

13.1.1 無線區域網路系統的結構 231

13.1.2 移植的內容 232

13.2 移植和調試的要點 232

13.2.1 協定和驅動程式 232

13.2.2 用戶空間的內容 233

13.2.3 上層的情況和調試方法 233

13.3 omap系統的無線區域網路實現 235

13.3.1 linux核心中的內容 235

13.3.2 用戶空間的實現 236

第14章 藍牙系統 238

14.1 藍牙系統結構和移植內容 238

14.1.1 藍牙系統的結構 239

14.1.2 移植的內容 240

14.2 移植和調試的要點 240

14.2.1 驅動程式 240

14.2.2本地代碼的配置部分 242

14.2.3 上層的情況和調試方法 244

14.3 msm系統的藍牙實現 245

14.3.1 驅動部分 245

14.3.2 用戶空間的部分 247

第15章 定位系統 248

15.1 定位系統的系統結構和移植內容 248

15.1.1 定位系統的系統結構 248

15.1.2 移植的內容 250

15.2 移植和調試的要點 250

15.2.1 驅動程式 250

15.2.2 硬體抽象層 251

15.2.3 上層的情況和調試方法 253

15.3 仿真器的gps硬體適配層實現 256

15.4 msm平台的gps硬體適配層實現 257

第16章 電話系統 260

16.1 電話系統結構和移植內容 260

16.1.1 電話系統的系統結構 260

16.1.2 移植的內容 262

16.2 移植和調試的要點 262

16.2.1 驅動程式 262

16.2.2RIL實現庫的接口 264

16.2.3 數據連線部分 266

16.2.4 調試方法 267

16.3 電話部分的ril參考實現 268

16.3.1 連線埠初始化 268

16.3.2 at命令處理流程 269

16.3.3 event模組 270

16.3.4 modem at命令初始化 272

16.3.5 請求和回響流程的處理 272

16.3.6 特定命令類型的實現 274

第17章 opengl 3d引擎 276

17.1 opengl系統結構和移植內容 276

17.1.1 opengl系統的結構 277

17.1.2 移植的內容 283

17.2 移植和調試的要點 283

17.2.1 opengl移植層的接口 283

17.2.2 上層的情況和opengl的調試 285

17.2 android軟體opengl的實現 288

17.3 不同系統中的實現 290

第18章OpenMax多媒體引擎 292

18.1 openmax系統結構和移植內容 292

18.1.1 openmax系統的結構 293

18.1.2 android openmax實現的內容 297

18.2 openmax的接口與實現 297

18.2.1 openmax il層的接口 297

18.2.2 openmax il實現的內容 302

18.2.3 android中openmax的適配層 302

18.3 omap平台openmax il的硬體實現 304

18.3.1 ti openmax il實現的結構和機制 304

18.3.2 ti openmax il的核心和公共內容 306

18.3.3 一個ti openmax il組件的實現 307

第19章 多媒體系統的外掛程式 310

19.1 android多媒體相關結構與移植內容 310

19.1.1 多媒體處理過程 311

19.1.2 移植的內容 312

19.2opencore引擎的結構和外掛程式 313

19.2.1 opencore的結構 313

19.2.2 opencore的node外掛程式機制 314

19.2.3 openmax部分的結構、實現和外掛程式結構 316

19.2.4 關於媒體輸入輸出類mediaio 322

19.2.5 opencore player的視頻顯示部分外掛程式 325

19.3 stagefright引擎的結構和外掛程式 326

19.3.1 stagefright系統結構 326

19.3.2 stagefright對android中openmax接口的實現 328

19.3.3 mediasource外掛程式機制 328

19.3.4 openmax和videorenderer外掛程式機制 330

19.4 omap平台實現的外掛程式 332

19.4.1 opencore的openmax外掛程式 333

19.4.2 opencore的視頻輸出外掛程式 334

19.4.3 stagefright的openmax和視頻輸出外掛程式 336

第20章 位塊複製系統 339

20.1 位塊複製結構和移植內容 339

20.1.1 位塊複製系統的結構 339

20.1.2 移植內容 340

20.2 移植和調試的要點 340

20.2.1 驅動程式 340

20.2.2 硬體抽象層的內容 341

20.2.3 上層的情況和注意事項 342

20.3 msm平台中的實現 343

第21章 警報器——實時時鐘系統 346

21.1 警報器——實時時鐘結構和移植內容 346

21.1.1 警報器——實時時鐘系統的結構 346

21.1.2 移植內容 347

21.2 移植與調試的要點 348

21.2.1 rtc驅動程式 348

21.2.2 alarm驅動程式 349

21.2.3 上層的情況和注意事項 349

21.3 模擬器環境中的實現 351

21.4 msm平台的實現 351

第22章 光系統 354

22.1 光系統結構和移植內容 354

22.1.1 光系統部分的結構 354

22.1.2 移植內容 355

22.2 移植與調試的要點 356

22.2.1 驅動程式 356

22.2.2 硬體抽象層的內容 356

22.2.3 上層的情況和注意事項 357

22.3 msm中的實現 359

22.3.1 驅動程式 359

22.3.2 硬體抽象層 359

第23章 振動器系統 361

23.1 振動器系統結構和移植內容 361

23.1.1 振動器部分的結構 361

23.1.2 移植內容 362

23.2 移植與調試的要點 363

23.2.1 驅動程式 363

23.2.2 硬體抽象層的內容 363

23.2.3 上層的情況和注意事項 364

23.3 msm中的實現 365

第24章 電池系統 367

24.1 電池系統結構和移植內容 367

24.1.1 電池系統部分的結構 367

24.1.2 移植內容 368

24.2 移植和調試的要點 368

24.2.1 驅動程式 368

24.2.2 上層的情況和注意事項 369

24.3 模擬器中的實現 371

相關詞條

相關搜尋

熱門詞條

聯絡我們