-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
4/1 新書到! 3/25 新書到! 12/20新書到! 12/13 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Android驅動開發與移植實戰詳解

( 簡體 字)
作者:李駿類別:1. -> 程式設計 -> 手機程式 -> Android
譯者:
出版社:人民郵電出版社Android驅動開發與移植實戰詳解 3dWoo書號: 33156
詢問書籍請說出此書號!

缺書
不接受訂購

出版日:8/1/2012
頁數:554
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
不接受訂購
ISBN:9787115283610
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

內容簡介:

Android憑借其開源性、優異的用戶體驗和極為方便的開發方式,贏得了廣大用戶和開發者的青睞,目前已經發展成為市場占有率很高的智能手機操作系統。
  《Android驅動開發與移植實戰詳解》分為18章,依次講解了Android系統的基本知識, Linux內核的基本知識,分析了Android系統的源碼,深入分析HAL層的基本知識,GoldFish下的驅動、MSM內核和驅動、OMAP內核和驅動、顯示系統驅動、輸入系統驅動、振動器系統驅動、音頻系統驅動和視頻輸出系統驅動,多媒體框架,傳感器系統、照相機系統、Wi-Fi系統、藍牙系統、GPS系統和電話系統的知識。在每一章中,重點介紹了與Android驅動開發相關的底層知識,并對Android源碼進行了詳細的分析及驅動開發實現。
  《Android驅動開發與移植實戰詳解》適合Android程序員、研發人員及Android愛好者學習,也可以作為相關培訓學校和大專院校相關專業的教學用書。

目錄:

第1章 迅猛發展的Android系統 1
1.1 智能手機世界 1
1.1.1 何謂智能手機 1
1.1.2 當前主流智能手機系統 1
1.2 Android的自身優勢 3
1.2.1 開源 3
1.2.2 強大的開發團隊支持 3
1.2.3 實行獎勵機制 4
1.3 認識驅動 4
1.4 分析Android架構 5
1.4.1 操作系統層(OS) 5
1.4.2 各種庫和Android運行環境 6
1.4.3 應用程序 7
1.4.4 應用程序框架 7
1.5 開源的問題 8
1.5.1 霧里看花的開源 8
1.5.2 從選擇Java開始談為什么不開源驅動程序 8
1.5.3 對驅動開發者的影響 9

第2章 簡要分析Linux內核 10
2.1 Linux基礎 10
2.1.1 Linux歷史簡介 10
2.1.2 主要版本 10
2.1.3 Linux的發展機遇 11
2.2 Android和Linux的關系 11
2.2.1 Android繼承于Linux 12
2.2.2 Android和Linux內核的區別 12
2.3 Linux內核簡介 14
2.3.1 內核的體系結構 14
2.3.2 和Android相關的Linux內核知識 17
2.4 分析Linux內核源碼 20
2.4.1 源碼目錄結構 21
2.4.2 瀏覽源碼的工具 23
2.4.3 用匯編語言編寫內核代碼 24
2.4.4 Linux內核的顯著特性 24
2.4.5 學習Linux內核的過程 32

第3章 開始分析Android源碼 37
3.1 搭建Linux開發環境和工具 37
3.1.1 搭建Linux開發環境 37
3.1.2 設置環境變量 38
3.1.3 安裝編譯工具 38
3.2 獲取Android源碼 39
3.3 分析Android源碼結構 41
3.4 編譯Android源碼 46
3.5 運行Android源碼 48
3.6 實踐演練——演示兩種編譯Android程序的方法 49
3.6.1 編譯Native C的helloworld模塊 49
3.6.2 手工編譯C模塊 50
3.7 編譯Android Kernel 53
3.7.1 獲取Goldfish內核代碼 53
3.7.2 獲取MSM內核代碼 56
3.7.3 獲取OMAP內核代碼 56
3.7.4 編譯Android的Linux內核 56
3.8 運行模擬器 58
3.8.1 Linux環境下運行模擬器的方法 58
3.8.2 模擬器輔助工具——ADB 59

第4章 驅動移植 62
4.1 Android移植 62
4.1.1 移植的任務 62
4.1.2 移植的內容 62
4.1.3 驅動開發需要做的工作 63
4.2 Android對Linux的改造 64
4.2.1 Android的核心驅動 64
4.2.2 為Android構建Linux操作系統 67
4.3 內核空間和用戶空間接口 68
4.3.1 實現系統和硬件之間的交互 68
4.3.2 實現內核到用戶空間的數據傳輸 70
4.4 三類驅動程序 74
4.4.1 字符設備驅動 74
4.4.2 塊設備驅動 82
4.4.3 網絡設備驅動 86

第5章 深入詳解HAL層 87
5.1 初識HAL層 87
5.1.1 HAL層簡介 87
5.1.2 比較HAL_legacy和HAL 89
5.2 分析HAL層源碼 89
5.2.1 分析HAL module 89
5.2.2 分析mokoid工程 92
5.3 Sensor在HAL層的表現 101
5.3.1 HAL層的Sensor代碼 101
5.3.2 總結Sensor編程的流程 103
5.4 移植總結 104
5.4.1 移植各個Android部件的方式 104
5.4.2 輔助工作 105

第6章 常見的驅動平臺 112
6.1 專用驅動 112
6.1.1 Binder驅動程序 112
6.1.2 Logger驅動 122
6.1.3 組件Lowmemorykiller 123
6.1.4 Timed Output驅動程序 123
6.1.5 Timed Gpio驅動程序 125
6.1.6 喚醒和休眠 126
6.1.7 Ashmem驅動程序 130
6.1.8 Pmem驅動程序 133
6.1.9 Alarm驅動程序 134
6.1.10 USB Gadget驅動程序 136
6.1.11 Android Paranoid驅動程序 137
6.2 Goldfish設備驅動 138
6.3 MSM內核和驅動 146
6.3.1 MSM基礎 146
6.3.2 移植MSM內核 148
6.3.3 移植MSM 150
6.3.4 高通特有的組件 156
6.4 OMAP內核和驅動 157
6.4.1 OMAP基礎 157
6.4.2 OMAP內核 159
6.4.3 移植OMAP體系結構 161
6.4.4 移植Android專用驅動和組件 168
6.4.5 OMAP的設備驅動 169

第7章 輸入系統驅動 175
7.1 輸入系統介紹 175
7.1.1 Android輸入系統結構元素介紹 175
7.1.2 Android輸入系統驅動 176
7.1.3 Input系統的層次結構 177
7.1.4 移植工作 177
7.2 Input驅動源碼分析 178
7.2.1 文件input.h 178
7.2.2 文件KeycodeLabels.h 182
7.2.3 文件KeyCharacterMap.h 186
7.2.4 Kl格式文件 187
7.2.5 kcm格式文件 188
7.2.6 文件EventHub.cpp 188
7.3 Input設備的運作過程 191
7.3.1 Input設備的注冊(硬件驅動層) 192
7.3.2 Input子系統的加載過程(子系統核心層) 192
7.3.3 Input子系統的事件處理(事件處理層) 194
7.4 模擬器的輸入驅動 198
7.5 高通平臺的輸入驅動實現 199
7.5.1 觸摸屏驅動 199
7.5.2 按鍵和軌跡球驅動 205
7.6 OMAP處理器中的輸入驅動實現 208
7.6.1 觸摸屏驅動程序 208
7.6.2 鍵盤驅動程序 208

第8章 電話系統驅動 210
8.1 電話系統基礎 210
8.1.1 Android電話系統簡介 210
8.1.2 深入分析電話系統的實現文件 211
8.1.3 電話系統結構 212
8.2 移植Modem驅動和RIL硬件抽象層 213
8.3 移植和調試 214
8.3.1 驅動程序 214
8.3.2 RIL接口 216
8.4 實現電話系統驅動 219
8.4.1 RIL中消息隊列的建立 219
8.4.2 與底層Modem通信 224
8.5 深入分析實現Android電話系統的流程 229
8.5.1 初始啟動流程 229
8.5.2 接收信息流程 231
8.5.3 等待硬件響應 233

第9章 顯示系統驅動 236
9.1 顯示系統基礎 236
9.1.1 Android的版本 236
9.1.2 不同的顯示系統 237
9.1.3 FrameBuffer驅動的使用基礎 237
9.2 移植Android顯示系統 238
9.2.1 FrameBuffer驅動程序 238
9.2.2 硬件抽象層 242
9.3 實現顯示系統的驅動程序 254
9.3.1 Goldfish中的FrameBuffer驅動程序 254
9.3.2 使用Gralloc模塊的驅動程序 257
9.4 MSM中顯示驅動的實現 266
9.4.1 MSM中的FrameBuffer驅動程序 267
9.4.2 MSM中的Gralloc驅動程序 269
9.5 OMAP中顯示驅動的實現 276
9.5.1 文件omapfb-main.c 276
9.5.2 文件omapfb.h 278
9.6 6416中FrameBuffer的工作原理 279

第10章 音頻系統驅動 286
10.1 音頻系統結構 286
10.2 音頻系統的層次 287
10.2.1 層次說明 287
10.2.2 Media庫中的Audio框架 288
10.2.3 本地代碼 291
10.2.4 JNI代碼 294
10.2.5 Java代碼 295
10.3 移植工作 296
10.3.1 兩個任務 296
10.3.2 Audio的硬件抽象層 296
10.3.3 實現AudioFlinger中的Audio硬件抽象層 298
10.3.4 真正實現Audio硬件抽象層 304
10.4 MSM平臺實現Audio驅動系統 304
10.4.1 實現Audio驅動程序 304
10.4.2 實現硬件抽象層 305
10.5 OSS平臺實現Audio驅動系統 309
10.5.1 OSS驅動程序介紹 309
10.5.2 mixer 310
10.6 ALSA平臺實現Audio系統 317
10.6.1 ALSA基礎 317
10.6.2 注冊音頻設備和音頻驅動 318
10.6.3 ALSA的底層接口 318
10.6.4 放音流程 320
10.6.5 錄音流程 325
10.6.6 在Android中使用ALSA聲卡 328
10.6.7 在OMAP平臺移植Android的ALSA聲卡驅動 337
10.7 6410中的ALSA驅動 340
10.7.1 ALSA的設備文件 340
10.7.2 創建聲卡和PCM設備 341

第11章 視頻輸出系統驅動 344
11.1 視頻輸出系統結構 344
11.2 移植的內容 346
11.3 分析硬件抽象層 346
11.3.1 Overlay系統硬件抽象層的接口 346
11.3.2 實現硬件抽象層 349
11.3.3 實現接口 350
11.4 實現Overlay硬件抽象層 351
11.5 在OMAP平臺實現Overlay系統 353
11.5.1 實現輸出視頻驅動程序 353
11.5.2 實現Overlay硬件抽象層 354
11.6 系統層調用Overlay模塊 360
11.6.1 測試文件 360
11.6.2 在Android系統中創建Overlay 361
11.6.3 管理Overlay HAL模塊 363
11.7 抽象層實現(V4l2驅動實現方式) 364

第12章 振動器系統驅動 369
12.1 振動器系統結構 369
12.1.1 硬件抽象層 371
12.1.2 JNI框架部分 372
12.2 開始移植 373
12.2.1 移植振動器驅動程序 373
12.2.2 實現硬件抽象層 374
12.3 在MSM平臺實現振動器驅動 375

第13章 Android多媒體插件框架 379
13.1 Android多媒體插件 379
13.2 需要移植的內容 380
13.3 OpenCore引擎詳解 381
13.3.1 OpenCore的層次結構 381
13.3.2 OpenCore的代碼結構 382
13.3.3 OpenCore的編譯結構 383
13.3.4 OpenCore OSCL 387
13.3.5 實現OpenCore中的OpenMax部分 389
13.3.6 OpenCore的擴展 401
13.4 Stagefright引擎 408
13.4.1 代碼結構 408
13.4.2 實現OpenMax接口 408
13.4.3 Video Buffer傳輸流程 412

第14章 Camera照相機驅動 418
14.1 Camera系統的結構 418
14.2 移植的內容 421
14.2.1 fimc驅動模塊的加載 421
14.2.2 V4l2驅動的用法 425
14.3 移植和調試 426
14.3.1 V4L2驅動程序 426
14.3.2 硬件抽象層 434
14.4 實現Camera系統的硬件抽象層 438
14.4.1 Java程序部分 438
14.4.2 Java本地調用部分 439
14.4.3 本地庫libui.so 440
14.4.4 Camera服務libcameraservice.so 441
14.5 實現Camera系統 445
14.5.1 在MSM平臺實現Camera系統 445
14.5.2 OMAP平臺實現Camera系統 448
14.6 借助Sensor驅動使用照相機系統 449

第15章 傳感器系統驅動 452
15.1 傳感器系統的結構 452
15.2 移植Sensor驅動 454
15.2.1 移植驅動程序 454
15.2.2 移植硬件抽象層 455
15.2.3 實現上層部分 456
15.3 實現傳感器 460

第16章 Wi-Fi系統、藍牙系統和GPS系統 466
16.1 Wi-Fi系統的應用和移植 466
16.1.1 Wi-Fi系統的結構 466
16.1.2 移植的內容 468
16.1.3 移植和調試 468
16.1.4 OMAP平臺實現Wi-Fi 476
16.1.5 配置Wi-Fi 478
16.1.6 SDIO設備的移植 481
16.1.7 移植Wi-Fi驅動的注意事項 485
16.2 藍牙系統的應用和移植 486
16.2.1 藍牙結構 487
16.2.2 移植的內容 489
16.2.3 具體移植 490
16.2.4 MSM平臺的藍牙驅動 492
16.2.5 本地適配器連接過程 494
16.2.6 遠程適配器連接過程 498
16.2.7 分析6410的藍牙驅動 500
16.3 定位系統 510
16.3.1 系統結構 510
16.3.2 移植的內容 512
16.3.3 移植和調試 512
16.3.4 GPS的串口驅動和數據讀取 525

第17章 振動器驅動和警報器驅動 529
17.1 Alarm系統基礎 529
17.1.1 Alarm系統的結構 529
17.1.2 移植的內容 532
17.2 移植和調試 532
17.3 實現Alarm驅動 535
17.4 MSM平臺實現Alarm 542

第18章 光系統驅動和電池系統驅動 544
18.1 Lights光系統的應用和移植 544
18.1.1 Lights系統的結構 544
18.1.2 移植的內容 545
18.1.3 移植和調試 546
18.1.4 MSM平臺實現光系統 547
18.1.5 深入分析Android的光系統 548
18.2 Battery電池系統的應用和移植 549
18.2.1 Battery系統的結構 549
18.2.2 移植的內容 551
18.2.3 移植和調試 551
18.2.4 模擬器中實現電池系統 554
序: