《現代Android系統級深入開發—移植與調試》是2011年2月電子工業出版社出版的圖書,作者是韓超、梁泉。
基本介紹
- 書名:現代Android系統級深入開發—移植與調試
- 作者:韓超、梁泉
- ISBN:9787121126093
- 頁數:372頁
- 出版社:電子工業出版社
- 出版時間:2011年2月
- 開本:16開
編輯推薦,作譯者,目錄,前言,
編輯推薦
全面介紹Android中與硬體相關的子系統
按照驅動程式和硬體抽象層兩方面把握移植要點
高效粘合Linux系統經驗和移動設備套用場景
以三種硬體平台為參考,參考開發環境宜於獲得
作譯者
韓超,中國大陸資深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 1 goldfish核心原始碼 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 2 staging中的驅動程式 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 android paranoid網路 68
4 4 goldfish的相關設備驅動 70
4 4 1 framebuffer的驅動程式 70
4 4 2 鍵盤的驅動程式 70
4 4 3 實時時鐘的驅動程式 71
4 4 4 tty終端的驅動程式 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 1 donut及其之前顯示系統的結構 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 3 overlay硬體抽象層實現的框架 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 2 ril實現庫的接口 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 2 opencore引擎的結構和外掛程式 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
前言
Android系統是目前最為流行的手機系統之一,本書作者在推出了全面介紹Android系統的《Android系統原理及開發要點詳解》一書,同時出版了繁體版,並將著作權成功輸出到韓國,韓文版將在2011年7月出版。在本書出版之後,筆者切實感到越來越多的開發人員和企業在關注Android系統的各個方面。
Android系統是開源的,它的一個比較大的優勢就是可以移植到各個不同的硬體平台上。“移植”是Android系統的精華所在,也是Android開發中的難點兼重點。
本書《Android系統級深入開發——移植與調試》出版的主要目的是分享開發經驗,幫助眾多開發者快速地掌握Android系統在不同硬體平台移植的方法。幫助工程師以最快的速度、最小的開銷、最輕的工作量,讓Android系統高效地運行在更多的硬體上。
本書特點
本書緊緊抓住了Android系統移植與調試的主題,從開發者的角度出發,其特點主要包括以下幾個方面:
本書使用的代碼以Android的開源工程為主,硬體也是比較常見的設備,保證讀者可以很容易地獲得開發環境。
根據Android系統自身的固有特點,從Linux核心中的驅動和硬體抽象層兩個著手點作為切入點。
按照Linux的開發思路,從驅動程式的角度出發,讓具有Linux開發經驗的工程師,可以更快地熟悉主要用於移動設備開發的Android系統。
從模擬器、高通的MSM平台、德州儀器的OMAP平台這三種硬體平台出發,全面介紹,不以偏概全,既把握共同點,也突出差異。
對於Android中規模和難度各不相同的子系統,抓住它們和硬體相關的共同點,採取同樣的格式和思路進行介紹,體現了“從特殊到一般”的理念。
簡要介紹各個子系統的框架,並列出代碼路徑,對移植部分的主要調用部分加強提示,讓讀者更全面地把握系統。
本書內容
本書分成24章,各章的內容如下所示:
第1章和第2章:概要部分 介紹Android的系統的大結構、移植的主要工作,開發環境的構建方法
第3章:全書的總綱 全面介紹Linux系統的驅動程式,突出介紹Android中硬體抽象層的不同實現方式,展示Android移植的各個方面
續表
第4章至第6章:Linux核心方面 主要介紹用於模擬器的Goldfish、MSM的mahimahip平台和OMAP的Zoom平台的3種Linux核心,介紹了不同體系結構的移植,與硬體無關的Android專用驅動,並簡單介紹了各個硬體設備的驅動程式
第7章和第8章:基本GUI的系統 包括顯示輸出和用戶輸入兩個部分,是每個系統最優先移植的部分
第9章:感測器系統 體現Android系統最經典的移植方式
第10章至第12章:多媒體的輸入輸出環節 是Android移植重點關注的部分