注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)程序設(shè)計(jì)綜合深入剖析Android系統(tǒng)

深入剖析Android系統(tǒng)

深入剖析Android系統(tǒng)

定 價(jià):¥59.00

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

ISBN: 9787121193743 出版時(shí)間: 2013-01-01 包裝: 平裝
開本: 16開 頁(yè)數(shù): 449 字?jǐn)?shù):  

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

  《深入剖析Android系統(tǒng)》以Android Jelly Bean(4.1)的代碼為藍(lán)本,對(duì)Android的部分關(guān)鍵代碼進(jìn)行了注釋分析,并輔以大量插圖,講述了Android大部分子系統(tǒng)中的模塊和類的靜態(tài)結(jié)構(gòu),讓讀者對(duì)Android系統(tǒng)的內(nèi)部靜態(tài)結(jié)構(gòu)有著“類”粒度這一層級(jí)上的認(rèn)識(shí)和了解。同時(shí),也對(duì)關(guān)鍵類和函數(shù)的代碼調(diào)用流程、運(yùn)行時(shí)刻所位于的進(jìn)程和線程上下文等動(dòng)態(tài)運(yùn)行場(chǎng)景進(jìn)行了分析講述,讓讀者深刻理解Android系統(tǒng)內(nèi)部是如何運(yùn)行的。本書直接對(duì)Source Insight進(jìn)行截圖,保留了代碼的原始行號(hào)、英文注釋等信息并進(jìn)行了高亮顯示,方便讀者閱讀;代碼中同時(shí)添加了作者所做的中文注釋說明。

作者簡(jiǎn)介

  楊長(zhǎng)剛,2005年春畢業(yè)于西南交通大學(xué)計(jì)算機(jī)應(yīng)用技術(shù)專業(yè),獲碩士學(xué)位;后進(jìn)入手機(jī)行業(yè)從事Linux手機(jī)軟件開發(fā)工作。目前在一家歐美企業(yè)從事Android方面的技術(shù)工作。作者官方博客:http://www.redwolf-blog.com/

圖書目錄

第1章  智能指針 1
1.1  智能指針概述 1
1.2  引用計(jì)數(shù)基類RefBase 2
1.3  輕量級(jí)引用計(jì)數(shù)LightRefBase 3
1.4  強(qiáng)指針 3
1.4.1  強(qiáng)指針變量的初始化與生命周期 3
1.4.2  賦值操作與引用計(jì)數(shù)變化 5
1.5  弱指針 5
第2章  消息隊(duì)列與線程處理 7
2.1  消息隊(duì)列處理模型的設(shè)計(jì) 7
2.2  消息隊(duì)列與線程處理的Java實(shí)現(xiàn) 9
2.2.1  Thread/Runnable 9
2.2.2  Message 10
2.2.3  MessageQueue概述 11
2.2.4  Handler 11
2.2.5  Looper 12
2.2.6  再論Handler 15
2.2.7  對(duì)同步消息的支持 16
2.3  native層的Looper與消息隊(duì)列處理 19
2.3.1  Looper中的睡眠等待與喚醒機(jī)制 19
2.3.2  Looper對(duì)文件描述符的監(jiān)控與處理 22
2.3.3  Looper中的消息隊(duì)列處理機(jī)制 25
2.3.4  Looper與線程執(zhí)行上下文 27
第3章  Binder IPC及其應(yīng)用 29
3.1  Binder IPC 29
3.1.1  Binder IPC與系統(tǒng)服務(wù) 29
3.1.2  Binder類結(jié)構(gòu)與調(diào)用關(guān)系 31
3.1.3  模板函數(shù)interface_cast的背后 33
3.1.4  例子AudioPolicyService 37
3.2  Java層對(duì)Binder的封裝 40
3.2.1  例子IMediaPlaybackService 42
3.2.2  例子PhoneStateListener 47
3.3  大內(nèi)存塊的跨進(jìn)程共享 52
3.3.1  概述 52
3.3.2  調(diào)用接口 53
3.3.3  設(shè)備空間的映射 55
3.3.4  Server側(cè)的處理 57
第4章  HAL硬件抽象層 59
4.1  HAL概述 59
4.2  硬件模塊庫(kù)的通用寫法 60
4.3  硬件模塊庫(kù)的裝載與解析 63
4.4  例子Lights 65
4.5  例子Camera 68
4.6  例子Power和Vibrator 69
第5章  Android的啟動(dòng)過程 71
5.1  Android初始化語(yǔ)言及解析 71
5.1.1  Action 71
5.1.2  觸發(fā)器trigger 72
5.1.3  命令Command 72
5.1.4  服務(wù)Service 74
5.1.5  .rc文件的解析 76
5.2  BootChart 82
5.3  ueventd守護(hù)進(jìn)程 82
5.4  init進(jìn)程的啟動(dòng)過程 87
5.5  init.rc文件中的服務(wù)進(jìn)程 93
5.6  system_server進(jìn)程 95
5.6.1  app_process程序 95
5.6.2  system_server進(jìn)程 96
第6章  輸入系統(tǒng) 99
6.1  輸入系統(tǒng)概述 99
6.2  讀線程 101
6.2.1  EventHub 101
6.2.2  InputReader 106
6.2.3  InputDevice 108
6.2.4  InputMapper 108
6.2.5  QueuedInputListener 111
6.3  分發(fā)線程 112
6.3.1  InputDispatcher 112
6.3.2  InputChannel 116
6.4  輸入系統(tǒng)的開啟 118
第7章  MassStorage 121
7.1  MassStorage概述 121
7.2  MountService 122
7.3  庫(kù)libsysutils.so 123
7.3.1  SocketListener 123
7.3.2  FrameworkListener 126
7.3.3  NetlinkListener 127
7.4  守護(hù)進(jìn)程vold 128
7.4.1  NetlinkManager 128
7.4.2  CommandListener 131
7.4.3  vold的main函數(shù) 135
第8章  Sensor 137
8.1  Sensor概述 137
8.2  SDK API概述 138
8.3  Sensor管理器 139
8.3.1  Sensor采樣數(shù)據(jù)的獲取與處理 141
8.3.2  SensorEventQueue 146
8.4  SensorService 147
8.4.1  邏輯傳感器 149
8.4.2  物理傳感器 150
8.4.3  Sensor HAL 150
第9章  RIL 153
9.1  RIL概述 153
9.2  rild守護(hù)進(jìn)程 154
9.3  事件處理與分發(fā)線程 158
9.3.1  分發(fā)線程中的事件處理 158
9.3.2  RIL請(qǐng)求的接收與處理 161
9.3.3  RIL響應(yīng)的回送 165
9.4  radiooptions工具程序 169
9.5  RILJ 169
9.5.1  RILJ概述 169
9.5.2  RILRequest的發(fā)送過程 171
9.5.3  Response的處理過程 174
第10章  com.android.phone進(jìn)程 178
10.1  層次狀態(tài)機(jī)StateMachine 178
10.2  GSMPhone 179
10.3  GsmCallTracker 184
10.3.1  GsmDataConnectionTracker 186
10.3.2  GsmServiceStateTracker 188
10.3.3  DefaultPhoneNotifier 188
10.3.4  其他 189
10.4  進(jìn)程com.android.phone 190
第11章  Graphic 196
11.1  Graphic概述 196
11.2  Java層簡(jiǎn)介 197
11.2.1  SurfaceSession 198
11.2.2  Surface 198
11.2.3  SurfaceView 199
11.2.4  TextureView 200
11.3  JNI層簡(jiǎn)介 200
11.4  SKIA庫(kù)簡(jiǎn)介 201
11.5  庫(kù)libgui.so 202
11.5.1  概述 202
11.5.2  ComposerService 204
11.5.3  共享控制塊surface_flinger_cblk_t 204
11.5.4  ISurfaceComposer 205
11.5.5  ScreenshotClient 207
11.5.6  SurfaceComposerClient 207
11.5.7  Surface 210
11.5.8  SurfaceControl 211
11.5.9  繪圖操作的前后過程 213
11.5.10  SurfaceTexture Client 215
11.6  SurfaceFlinger進(jìn)程 222
11.6.1  圖層 223
11.6.2  DisplayHardware簡(jiǎn)介 228
11.6.3  HWComposer簡(jiǎn)介 228
11.6.4  VSync 229
11.7  庫(kù)libui.so簡(jiǎn)介 247
11.7.1  GraphicBuffer 247
11.7.2  FramebufferNativeWindow 248
11.8  RenderScript簡(jiǎn)介 249
第12章  OpenGL ES軟件層次棧 250
12.1  Android中的OpenGL ES簡(jiǎn)介 250
12.2  Android中OpenGL軟件層次棧 251
12.3  包裹庫(kù)與hook鉤子 253
12.3.1  libGLESv1_CM.so包裹庫(kù) 253
12.3.2  libGLESv2包裹庫(kù) 257
12.3.3  libEGL包裹庫(kù) 257
12.3.4  結(jié)構(gòu)體egl_t和gl_hooks_t鉤子 258
12.4  OpenGL實(shí)現(xiàn)庫(kù)的加載和解析 260
12.4.1  加載和解析的發(fā)起 260
12.4.2  庫(kù)裝載器Loader 261
12.5  libGLES_android庫(kù)和ETC1簡(jiǎn)介 265
第13章  Multimedia 267
13.1  Multimedia概述 267
13.2  API類簡(jiǎn)述 268
13.3  多媒體播放(playback) 270
13.3.1  播放流程 273
13.3.2  來自server側(cè)的消息事件通知 277
13.4  多媒體錄制(Recording) 279
13.5  元數(shù)據(jù)(MetaData)獲取 281
13.6  Camera 284
13.6.1  Camera概述 284
13.6.2  CameraHardwareInterface與HAL層 287
13.7  Camera事件通知機(jī)制 289
第14章  Audio 293
14.1  Audio概述 293
14.2  Audio播放AudioTrack 295
14.2.1  共享控制塊audio_track_cblk_t 296
14.2.2  數(shù)據(jù)的寫入 298
14.2.3  事件的回送及處理 299
14.3  Auido錄音Recording 301
14.3.1  錄音的開始過程 303
14.3.2  錄音的停止過程 306
14.4  AudioFlinger 307
14.4.1  AudioFlinger概述 307
14.4.2  Track相關(guān)類概述 308
14.4.3  AudioFlinger中的線程 311
14.5  音效AudioEffect 319
14.5.1  EffectHandle 320
14.5.2  音效引擎的封裝EffectModule 320
14.5.3  音效鏈EffectChain 321
14.5.4  音效處理引擎接口effect_interface_s 322
14.5.5  音效引擎庫(kù)audio_effect_library_s 323
14.5.6  音效引擎工廠EffectFactory 324
14.6  音頻策略服務(wù)AudioPolicyService 326
第15章  Stagefright 331
15.1  Stagefright概述 331
15.2  節(jié)點(diǎn)子類 332
15.3  StagefrightPlayer 334
15.4  視頻幀的渲染輸出AwesomeRenderer 343
15.4.1  Renderer的創(chuàng)建 344
15.4.2  AwesomeLocalRenderer 345
15.4.3  AwesomeNativeWindowRenderer 347
15.5  AudioPlayer 347
15.6  A/V同步簡(jiǎn)介 350
15.7  StagefrightRecorder 351
第16章  OMXCodec 356
16.1  OpenMAX概述 356
16.1.1  組件(Component)與端口(Port) 357
16.1.2  組件的初始化 358
16.1.3  數(shù)據(jù)處理 359
16.1.4  組件命令OMX_Command 360
16.2  OMXCodec類 362
16.2.1  組件的創(chuàng)建 362
16.2.2  緩沖區(qū)的分配 364
16.2.3  數(shù)據(jù)處理流程 370
16.3  IOMX 374
16.4  OMX插件 376
16.4.1  平臺(tái)廠家插件 377
16.4.2  軟件OMX插件SoftOMXPlugin 379
16.5  組件消息的上報(bào) 383
第17章  GPS 386
17.1  GPS 簡(jiǎn)述 386
17.2  SDK API概述 386
17.3  LocationManagerService 388
17.4  GpsLocationProvider 390
17.4.1  初始化代碼分析 391
17.4.2  消息處理與回調(diào)結(jié)構(gòu)體 392
17.4.3  例子:位置信息的上報(bào) 394
17.5  HAL層簡(jiǎn)介 396
17.5.1  GPS的位置信息 396
17.5.2  GPS衛(wèi)星信息 397
17.5.3  GPS回調(diào)函數(shù) 397
第18章  NFC 399
18.1  NFC概述 399
18.2  SDK API概述 400
18.2.1  NfcAdapter 401
18.2.2  NdefMessage 401
18.2.3  NFC Tag 402
18.2.4  NFC-extras 403
18.3  進(jìn)程com.android.nfc 403
18.3.1  P2pEventManager 403
18.3.2  P2pLinkManager 405
18.3.3  Bluetooth Handover 408
18.3.4  SNEP 409
18.3.5  NDEF Push 413
18.3.6  其他類簡(jiǎn)介 414
18.4  JNI層 415
第19章  USB 418
19.1  SDK API概述 418
19.2  UsbService 420
19.2.1  UsbDeviceManager 421
19.2.2  UsbHostManager 422
19.3  uevent 424
第20章  Bluetooth和Wi-Fi簡(jiǎn)析 429
20.1  Bluetooth 429
20.1.1  Bluetooth概述 429
20.1.2  SDK API概述 430
20.1.3  Bluetooth服務(wù) 432
20.1.4  JNI層 433
20.2  Wi-Fi 436
20.2.1  Wi-Fi概述 436
20.2.2  SDK API概述 436
20.2.3  JNI和HAL層 439
20.2.4  WPA_supplicant 440
第21章  Debuggerd 441
21.1  預(yù)備知識(shí) 441
21.1.1  ptrace調(diào)用 441
21.1.2  waitpid 442
21.2  debuggerd守護(hù)進(jìn)程 442
后記 450

本目錄推薦

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