注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)計(jì)算機(jī)組織與體系結(jié)構(gòu)Android底層開(kāi)發(fā)技術(shù)實(shí)戰(zhàn)詳解:內(nèi)核、移植和驅(qū)動(dòng)(第2版)

Android底層開(kāi)發(fā)技術(shù)實(shí)戰(zhàn)詳解:內(nèi)核、移植和驅(qū)動(dòng)(第2版)

Android底層開(kāi)發(fā)技術(shù)實(shí)戰(zhàn)詳解:內(nèi)核、移植和驅(qū)動(dòng)(第2版)

定 價(jià):¥79.00

作 者: 王振麗
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 程序設(shè)計(jì) 計(jì)算機(jī)/網(wǎng)絡(luò) 移動(dòng)開(kāi)發(fā)

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787121254413 出版時(shí)間: 2015-03-01 包裝:
開(kāi)本: 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書(shū)從底層原理開(kāi)始講起,結(jié)合真實(shí)的案例向讀者詳細(xì)介紹了Android內(nèi)核、移植和驅(qū)動(dòng)開(kāi)發(fā)的整個(gè)流程。全書(shū)分為21章,依次講解驅(qū)動(dòng)移植的必要性, Goldfish、OMAP內(nèi)核和驅(qū)動(dòng)解析,顯示系統(tǒng)、輸入系統(tǒng)、振動(dòng)器系統(tǒng)、音頻系統(tǒng)、視頻輸出系統(tǒng)的驅(qū)動(dòng),OpenMax多媒體和多媒體插件框架,傳感器,照相機(jī),Wi-Fi,藍(lán)牙和GPS,USB Gadget驅(qū)動(dòng),Lights光系統(tǒng)和Battery電池系統(tǒng)等。在每一章中,重點(diǎn)介紹了與Android驅(qū)動(dòng)開(kāi)發(fā)相關(guān)的底層知識(shí),并對(duì)Android源碼進(jìn)行了剖析。

作者簡(jiǎn)介

  王振麗,吉林大學(xué)計(jì)算機(jī)碩士,精通C、C++、Linux、Java開(kāi)發(fā)技術(shù),擅長(zhǎng)嵌入式系統(tǒng)、物聯(lián)網(wǎng)、大數(shù)據(jù)等開(kāi)發(fā)技術(shù),對(duì)藍(lán)牙技術(shù)、傳感器、NFC數(shù)據(jù)傳播、紅外傳輸技術(shù)有獨(dú)特的見(jiàn)解。畢業(yè)設(shè)計(jì)《大安移動(dòng)機(jī)器人》成果申請(qǐng)國(guó)家專(zhuān)利,已經(jīng)被廣大制造業(yè)公司的精密機(jī)床設(shè)備所使用。畢業(yè)后就職于貝爾豪斯公司,負(fù)責(zé)智能家居系統(tǒng)的研究和開(kāi)發(fā)和產(chǎn)品設(shè)計(jì)工作,帶領(lǐng)團(tuán)隊(duì)獨(dú)立開(kāi)發(fā)出多款功能強(qiáng)大的智能家居、健康儀器、智能電視、車(chē)載設(shè)備等大型系統(tǒng)。在Android底層架構(gòu)和驅(qū)動(dòng)開(kāi)發(fā)方面有著豐富的經(jīng)驗(yàn),著名硬件驅(qū)動(dòng)開(kāi)發(fā)專(zhuān)家。

圖書(shū)目錄

第1章 Android底層開(kāi)發(fā)基礎(chǔ) 1
1.1 什么是驅(qū)動(dòng) 1
1.1.1 驅(qū)動(dòng)程序的魅力 1
1.1.2 手機(jī)中的驅(qū)動(dòng)程序 2
1.2 開(kāi)源還是不開(kāi)源的問(wèn)題 2
1.2.1 霧里看花的開(kāi)源 2
1.2.2 從為什么選擇Java談為什么不
開(kāi)源驅(qū)動(dòng)程序 3
1.2.3 對(duì)驅(qū)動(dòng)開(kāi)發(fā)者來(lái)說(shuō)是一把雙刃劍 4
1.3 Android和Linux 4
1.3.1 Linux簡(jiǎn)介 4
1.3.2 Android和Linux的關(guān)系 5
1.4 簡(jiǎn)析Linux內(nèi)核 7
1.4.1 內(nèi)核的體系結(jié)構(gòu) 7
1.4.2 和Android密切相關(guān)的Linux
內(nèi)核知識(shí) 9
1.5 分析Linux內(nèi)核源代碼很有必要 13
1.5.1 源代碼目錄結(jié)構(gòu) 14
1.5.2 Linux 3.10的特性 16
1.5.3 瀏覽源代碼的工具 17
1.5.4 為什么用匯編語(yǔ)言編寫(xiě)內(nèi)核代碼 17
1.5.5 Linux內(nèi)核的顯著特性 18
1.5.6 學(xué)習(xí)Linux內(nèi)核的方法 26
第2章 分析Android源代碼 31
2.1 搭建Linux開(kāi)發(fā)環(huán)境和工具 31
2.1.1 搭建Linux開(kāi)發(fā)環(huán)境 31
2.1.2 設(shè)置環(huán)境變量 32
2.1.3 安裝編譯工具 32
2.2 獲取Android源代碼 33
2.3 分析并編譯Android源代碼 35
2.3.1 Android源代碼的結(jié)構(gòu) 35
2.3.2 編譯Android源代碼 40
2.3.3 運(yùn)行Android源代碼 42
2.3.4 實(shí)踐演練――演示編譯Android
程序的兩種方法 43
2.4 編譯Android Kernel 46
2.4.1 獲取Goldfish內(nèi)核代碼 47
2.4.2 獲取MSM內(nèi)核代碼 49
2.4.3 獲取OMAP內(nèi)核代碼 49
2.4.4 編譯Android的Linux內(nèi)核 50
2.5 運(yùn)行模擬器 51
2.5.1 Linux環(huán)境下運(yùn)行模擬器的方法 52
2.5.2 模擬器輔助工具――adb 53
第3章 驅(qū)動(dòng)需要移植 56
3.1 驅(qū)動(dòng)開(kāi)發(fā)需要做的工作 56
3.2 Android移植 58
3.2.1 移植的任務(wù) 59
3.2.2 移植的內(nèi)容 59
3.2.3 驅(qū)動(dòng)開(kāi)發(fā)的任務(wù) 60
3.3 Android對(duì)Linux的改造 60
3.3.1 Android對(duì)Linux內(nèi)核文件的改動(dòng) 61
3.3.2 為Android構(gòu)建Linux的操作系統(tǒng) 62
3.4 內(nèi)核空間和用戶空間接口是一個(gè)媒介 63
3.4.1 內(nèi)核空間和用戶空間的相互作用 63
3.4.2 系統(tǒng)和硬件之間的交互 63
3.4.3 使用Relay實(shí)現(xiàn)內(nèi)核到用戶空
間的數(shù)據(jù)傳輸 65
3.5 三類(lèi)驅(qū)動(dòng)程序 68
3.5.1 字符設(shè)備驅(qū)動(dòng)程序 68
3.5.2 塊設(shè)備驅(qū)動(dòng)程序 76
3.5.3 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序 80
第4章 HAL層深入分析 81
4.1 認(rèn)識(shí)HAL層 81
4.1.1 HAL層的發(fā)展 81
4.1.2 過(guò)去和現(xiàn)在的區(qū)別 83
4.2 分析HAL層源代碼 83
4.2.1 分析HAL moudle 83
4.2.2 分析mokoid工程 87
4.3 總結(jié)HAL層的使用方法 95
4.4 傳感器在HAL層的表現(xiàn) 97
4.4.1 HAL層的Sensor代碼 98
4.4.2 總結(jié)Sensor編程的流程 99
4.4.3 分析Sensor源代碼看Android API
與硬件平臺(tái)的銜接 100
4.5 移植總結(jié) 110
4.5.1 移植各個(gè)Android部件的方式 110
4.5.2 移植技巧之一――不得不說(shuō)的
輔助工作 111
4.6 開(kāi)發(fā)一個(gè)硬件驅(qū)動(dòng)程序 117
4.6.1 源代碼文件wuming.h和
wuming.c 117
4.6.2 編譯配置處理 123
4.6.3 修改配置文件 124
4.6.4 驗(yàn)證驅(qū)動(dòng)程序 125
第5章 分析Goldfish內(nèi)核系統(tǒng) 127
5.1 Android專(zhuān)有驅(qū)動(dòng)介紹 127
5.2 Goldfish基礎(chǔ) 128
5.3 Android專(zhuān)用驅(qū)動(dòng)簡(jiǎn)介 130
5.3.1 Logger驅(qū)動(dòng)介紹 130
5.3.2 Low Memory Killer組件介紹 130
5.3.3 Timed Output驅(qū)動(dòng)介紹 131
5.3.4 Timed Gpio驅(qū)動(dòng)介紹 131
5.3.5 Ram Console驅(qū)動(dòng)介紹 132
5.4 Ashmem驅(qū)動(dòng)介紹 133
5.5 Pmem驅(qū)動(dòng)介紹 133
5.6 Alarm驅(qū)動(dòng)程序 134
5.7 USB Gadget驅(qū)動(dòng)程序 134
5.8 Paranoid驅(qū)動(dòng)介紹 135
5.9 Goldfish的設(shè)備驅(qū)動(dòng) 136
第6章 MSM內(nèi)核和驅(qū)動(dòng)解析 139
6.1 MSM基礎(chǔ) 139
6.1.1 常見(jiàn)MSM處理器產(chǎn)品 139
6.1.2 Snapdragon內(nèi)核介紹 140
6.2 移植MSM內(nèi)核簡(jiǎn)介 141
6.3 移植MSM 143
6.3.1 Makefile文件 143
6.3.2 驅(qū)動(dòng)和組件 144
6.3.3 設(shè)備驅(qū)動(dòng) 146
6.3.4 高通特有的組件 148
第7章 OMAP內(nèi)核和驅(qū)動(dòng)解析 151
7.1 OMAP基礎(chǔ) 151
7.1.1 OMAP簡(jiǎn)析 151
7.1.2 常見(jiàn)OMAP處理器產(chǎn)品 151
7.1.3 開(kāi)發(fā)平臺(tái) 152
7.2 OMAP內(nèi)核 152
7.3 移植OMAP體系結(jié)構(gòu) 154
7.3.1 移植OMAP平臺(tái) 154
7.3.2 移植OMAP處理器 157
7.4 移植Android專(zhuān)用驅(qū)動(dòng)和組件 161
7.5 OMAP的設(shè)備驅(qū)動(dòng) 162
7.5.1 顯示驅(qū)動(dòng)程序 162
7.5.2 I2C總線驅(qū)動(dòng)程序 162
7.5.3 攝像頭和視頻輸出驅(qū)動(dòng)程序 164
7.5.4 觸摸屏和鍵盤(pán)驅(qū)動(dòng)程序 165
7.5.5 實(shí)時(shí)時(shí)鐘驅(qū)動(dòng)程序 166
7.5.6 音頻驅(qū)動(dòng)程序 166
7.5.7 藍(lán)牙驅(qū)動(dòng)程序 166
第8章 顯示系統(tǒng)驅(qū)動(dòng)應(yīng)用 167
8.1 顯示系統(tǒng)介紹 167
8.2 分析內(nèi)核層 168
8.2.1 分析接口文件fb.h 168
8.2.2 分析內(nèi)核實(shí)現(xiàn)文件fbmem.c 171
8.3 分析硬件抽象層 195
8.3.1 分析頭文件 195
8.3.2 分析硬件幀緩沖區(qū) 197
8.3.3 實(shí)現(xiàn)緩沖區(qū)的分配 199
8.3.4 顯示緩沖映射 200
8.3.5 分析管理庫(kù)文件LayerBuffer.cpp 201
8.4 分析顯示系統(tǒng)的驅(qū)動(dòng)程序 202
8.4.1 Goldfish中的FrameBuffer驅(qū)
動(dòng)程序 203
8.4.2 使用Gralloc模塊的驅(qū)動(dòng)程序 205
8.4.3 分析MSM高通處理器中的顯
示驅(qū)動(dòng)實(shí)現(xiàn) 215
8.4.4 分析OMAP處理器中的顯示
驅(qū)動(dòng)實(shí)現(xiàn) 225
第9章 輸入系統(tǒng)驅(qū)動(dòng)應(yīng)用 228
9.1 輸入系統(tǒng)介紹 228
9.1.1 Android輸入系統(tǒng)結(jié)構(gòu)元素介紹 228
9.1.2 移植Android輸入系統(tǒng)時(shí)的工作 229
9.2 分析Input(輸入)系統(tǒng)驅(qū)動(dòng) 230
9.2.1 分析頭文件 230
9.2.2 分析核心文件input.c 234
9.2.3 分析event機(jī)制 249
9.3 分析硬件抽象層 251
9.3.1 分析文件KeycodeLabels.h 252
9.3.2 分析文件KeyCharacterMap.h 256
9.3.3 分析Kl格式文件 257
9.3.4 分析kcm格式文件 258
9.3.5 分析文件EventHub.cpp 258
第10章 振動(dòng)器系統(tǒng)驅(qū)動(dòng) 263
10.1 振動(dòng)器系統(tǒng)結(jié)構(gòu) 263
10.2 分析硬件抽象層 265
10.3 分析JNI層部分 266
10.4 分析Java層部分 267
10.5 實(shí)現(xiàn)移植工作 271
10.5.1 移植振動(dòng)器驅(qū)動(dòng)程序 271
10.5.2 實(shí)現(xiàn)硬件抽象層 271
10.6 在MSM平臺(tái)實(shí)現(xiàn)振動(dòng)器驅(qū)動(dòng) 272
第11章 音頻系統(tǒng)驅(qū)動(dòng) 276
11.1 音頻系統(tǒng)結(jié)構(gòu) 276
11.2 分析音頻系統(tǒng)的層次 277
11.2.1 層次說(shuō)明 277
11.2.2 Media庫(kù)中的Audio框架 278
11.2.3 本地代碼 280
11.2.4 分析JNI代碼 283
11.2.5 Java層代碼簡(jiǎn)介 284
11.3 移植Audio系統(tǒng)的工作 285
11.3.1 我們的工作 285
11.3.2 分析硬件抽象層 285
11.3.3 分析AudioFlinger中的Audio
硬件抽象層的實(shí)現(xiàn) 287
11.3.4 真正實(shí)現(xiàn)Audio硬件抽象層 293
11.4 在MSM平臺(tái)實(shí)現(xiàn)Audio驅(qū)動(dòng)系統(tǒng) 293
11.4.1 實(shí)現(xiàn)Audio驅(qū)動(dòng)程序 293
11.4.2 實(shí)現(xiàn)硬件抽象層 294
第12章 視頻輸出系統(tǒng)驅(qū)動(dòng) 299
12.1 視頻輸出系統(tǒng)結(jié)構(gòu) 299
12.2 需要移植的部分 301
12.3 分析硬件抽象層 301
12.3.1 Overlay系統(tǒng)硬件抽象層的接口 301
12.3.2 實(shí)現(xiàn)Overlay系統(tǒng)的硬件抽象層 304
12.3.3 實(shí)現(xiàn)接口 305
12.4 實(shí)現(xiàn)Overlay硬件抽象層 306
12.5 在OMAP平臺(tái)實(shí)現(xiàn)Overlay系統(tǒng) 307
12.5.1 實(shí)現(xiàn)輸出視頻驅(qū)動(dòng)程序 307
12.5.2 實(shí)現(xiàn)Overlay硬件抽象層 309
12.6 系統(tǒng)層調(diào)用Overlay HAL的架構(gòu) 314
12.6.1 調(diào)用Overlay HAL的架構(gòu)的
流程 314
12.6.2 S3C6410 Android Overlay的
測(cè)試代碼 317
第13章 OpenMax多媒體框架 320
13.1 OpenMax基本層次結(jié)構(gòu) 320
13.2 分析OpenMax框架構(gòu)成 321
13.2.1 OpenMax總體層次結(jié)構(gòu) 321
13.2.2 OpenMax IL層的結(jié)構(gòu) 322
13.2.3 Android中的OpenMax 325
13.3 實(shí)現(xiàn)OpenMax IL層接口 325
13.3.1 OpenMax IL層的接口 325
13.3.2 在OpenMax IL層中需要做什么 331
13.3.3 研究Android中的OpenMax
適配層 332
13.4 在OMAP平臺(tái)實(shí)現(xiàn)OpenMax IL 334
13.4.1 實(shí)現(xiàn)文件 334
13.4.2 分析TI OpenMax IL的核心 335
13.4.3 實(shí)現(xiàn)TI OpenMax IL組件實(shí)例 338
第14章 多媒體插件框架 343
14.1 Android多媒體插件 343
14.2 需要移植的內(nèi)容 344
14.3 OpenCore引擎 345
14.3.1 OpenCore層次結(jié)構(gòu) 345
14.3.2 OpenCore代碼結(jié)構(gòu) 346
14.3.3 OpenCore編譯結(jié)構(gòu) 347
14.3.4 OpenCore OSCL 351
14.3.5 實(shí)現(xiàn)OpenCore中的OpenMax
部分 353
14.3.6 OpenCore的擴(kuò)展 366
14.4 Stagefright引擎 371
14.4.1 Stagefright代碼結(jié)構(gòu) 372
14.4.2 Stagefright實(shí)現(xiàn)OpenMax接口 372
14.4.3 Video Buffer傳輸流程 376
第15章 傳感器系統(tǒng) 381
15.1 傳感器系統(tǒng)的結(jié)構(gòu) 381
15.2 分析需要移植的內(nèi)容 383
15.2.1 移植驅(qū)動(dòng)程序 383
15.2.2 移植硬件抽象層 384
15.2.3 實(shí)現(xiàn)上層部分 385
15.3 在模擬器中實(shí)現(xiàn)傳感器驅(qū)動(dòng) 389
第16章 照相機(jī)系統(tǒng) 395
16.1 Camera系統(tǒng)的結(jié)構(gòu) 395
16.2 分析需要移植的內(nèi)容 397
16.3 移植和調(diào)試 398
16.3.1 V4L2驅(qū)動(dòng)程序 398
16.3.2 硬件抽象層 405
16.4 實(shí)現(xiàn)Camera系統(tǒng)的硬件抽象層 409
16.4.1 Java程序部分 409
16.4.2 Camera的Java本地調(diào)用部分 410
16.4.3 Camera的本地庫(kù)libui.so 411
16.4.4 Camera服務(wù)libcameraservice.so 412
16.5 在MSM平臺(tái)實(shí)現(xiàn)Camera驅(qū)動(dòng)系統(tǒng) 416
16.6 在OMAP平臺(tái)實(shí)現(xiàn)Camera驅(qū)動(dòng)系統(tǒng) 419
第17章 Wi-Fi系統(tǒng)、藍(lán)牙系統(tǒng)和
GPS系統(tǒng) 421
17.1 Wi-Fi系統(tǒng) 421
17.1.1 Wi-Fi系統(tǒng)的結(jié)構(gòu) 421
17.1.2 需要移植的內(nèi)容 423
17.1.3 移植和調(diào)試 423
17.1.4 OMAP平臺(tái)實(shí)現(xiàn)Wi-Fi 430
17.1.5 配置Wi-Fi的流程 432
17.1.6 具體演練――在Android下
實(shí)現(xiàn)Ethernet 435
17.2 藍(lán)牙系統(tǒng) 436
17.2.1 藍(lán)牙系統(tǒng)的結(jié)構(gòu) 437
17.2.2 需要移植的內(nèi)容 438
17.2.3 具體移植 439
17.2.4 MSM平臺(tái)的藍(lán)牙驅(qū)動(dòng) 441
17.3 定位系統(tǒng) 443
17.3.1 定位系統(tǒng)的結(jié)構(gòu) 443
17.3.2 分析需要移植的內(nèi)容 445
17.3.3 分析驅(qū)動(dòng)程序 445
17.3.4 分析硬件抽象層 445
17.3.5 分析上層應(yīng)用部分 448
第18章 電話系統(tǒng) 457
18.1 電話系統(tǒng)基礎(chǔ) 457
18.1.1 電話系統(tǒng)簡(jiǎn)介 457
18.1.2 電話系統(tǒng)結(jié)構(gòu) 459
18.2 需要移植的內(nèi)容 460
18.3 移植和調(diào)試 460
18.3.1 驅(qū)動(dòng)程序 461
18.3.2 RIL接口 462
18.4 電話系統(tǒng)實(shí)現(xiàn)流程分析 465
18.4.1 初始啟動(dòng)流程 465
18.4.2 request流程 467
18.4.3 response流程 470
第19章 分析時(shí)鐘系統(tǒng)驅(qū)動(dòng) 472
19.1 Alarm系統(tǒng)基礎(chǔ) 472
19.1.1 Alarm層次結(jié)構(gòu)介紹 472
19.1.2 我們需要移植的內(nèi)容 474
19.2 分析RTC驅(qū)動(dòng)程序 474
19.3 分析Alarm驅(qū)動(dòng)程序 475
19.3.1 分析文件android_alarm.h 475
19.3.2 分析文件alarm.c 476
19.3.3 分析文件alarm-dev.c 488
19.4 分析JNI層 497
19.5 分析Java層 498
19.5.1 分析AlarmManagerService類(lèi) 499
19.5.2 分析AlarmManager類(lèi) 508
19.6 模擬器環(huán)境的具體實(shí)現(xiàn) 509
第20章 分析USB Gadget驅(qū)動(dòng) 511
20.1 分析Linux內(nèi)核的USB驅(qū)動(dòng)程序 511
20.1.1 USB設(shè)備基礎(chǔ) 511
20.1.2 分析USB 和sysfs的聯(lián)系 516
20.1.3 分析urb通信方式 518
20.1.4 分析USB驅(qū)動(dòng)的例程 524
20.2 分析USB Gadget驅(qū)動(dòng) 536
20.2.1 分析軟件結(jié)構(gòu) 536
20.2.2 層次整合 546
20.2.3 USB設(shè)備枚舉 557
第21章 其他系統(tǒng) 573
21.1 Lights光系統(tǒng) 573
21.1.1 Lights光系統(tǒng)的結(jié)構(gòu) 573
21.1.2 需要移植的內(nèi)容 574
21.1.3 移植和調(diào)試 575
21.1.4 MSM平臺(tái)實(shí)現(xiàn)光系統(tǒng) 577
21.2 Battery電池系統(tǒng) 577
21.2.1 Battery系統(tǒng)的結(jié)構(gòu) 578
21.2.2 需要移植的內(nèi)容 579
21.2.3 移植和調(diào)試 579
21.2.4 在模擬器中實(shí)現(xiàn)電池系統(tǒng) 582

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)