最新公告
  • 开通终身SVIP,享全站不限量下载次数-云资源-集成各类网络资源-正在更新中-预计更新到5W+文章开通SVIP
  • 文章介绍
  • 评价建议
  • 资源名称:深入剖析Android系统


    内容简介:

    《深入剖析Android系统》以Android Jelly Bean(4.1)的代码为蓝本,对Android的部分关键代码进行了注释分析,并辅以大量插图,讲述了Android大部分子系统中的模块和类的静态结构,让读者对Android系统的内部静态结构有着“类”粒度这一层级上的认识和了解。同时,也对关键类和函数的代码调用流程、运行时刻所位于的进程和线程上下文等动态运行场景进行了分析讲述,让读者深刻理解Android系统内部是如何运行的。《深入剖析Android系统》直接对Source Insight进行截图,保留了代码的原始行号、英文注释等信息并进行了高亮显示,方便读者阅读;代码中同时添加了作者所做的中文注释说明。


    资源目录:

    第1章 智能指针 1

    1.1 智能指针概述 1

    1.2 引用计数基类RefBase 2

    1.3 轻量级引用计数LightRefBase 3

    1.4 强指针 3

    1.4.1 强指针变量的初始化与生命周期 3

    1.4.2 赋值操作与引用计数变化 5

    1.5 弱指针 5

    第2章 消息队列与线程处理 7

    2.1 消息队列处理模型的设计 7

    2.2 消息队列与线程处理的Java实现 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 对同步消息的支持 16

    2.3 native层的Looper与消息队列处理 19

    2.3.1 Looper中的睡眠等待与唤醒机制 19

    2.3.2 Looper对文件描述符的监控与处理 22

    2.3.3 Looper中的消息队列处理机制 25

    2.3.4 Looper与线程执行上下文 27

    第3章 Binder IPC及其应用 29

    3.1 Binder IPC 29

    3.1.1 Binder IPC与系统服务 29

    3.1.2 Binder类结构与调用关系 31

    3.1.3 模板函数interface_cast的背后 33

    3.1.4 例子AudioPolicyService 37

    3.2 Java层对Binder的封装 40

    3.2.1 例子IMediaPlaybackService 42

    3.2.2 例子PhoneStateListener 47

    3.3 大内存块的跨进程共享 52

    3.3.1 概述 52

    3.3.2 调用接口 53

    3.3.3 设备空间的映射 55

    3.3.4 Server侧的处理 57

    第4章 HAL硬件抽象层 59

    4.1 HAL概述 59

    4.2 硬件模块库的通用写法 60

    4.3 硬件模块库的装载与解析 63

    4.4 例子Lights 65

    4.5 例子Camera 68

    4.6 例子Power和Vibrator 69

    第5章 Android的启动过程 71

    5.1 Android初始化语言及解析 71

    5.1.1 Action 71

    5.1.2 触发器trigger 72

    5.1.3 命令Command 72

    5.1.4 服务Service 74

    5.1.5 .rc文件的解析 76

    5.2 BootChart 82

    5.3 ueventd守护进程 82

    5.4 init进程的启动过程 87

    5.5 init.rc文件中的服务进程 93

    5.6 system_server进程 95

    5.6.1 app_process程序 95

    5.6.2 system_server进程 96

    第6章 输入系统 99

    6.1 输入系统概述 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 分发线程 112

    6.3.1 InputDispatcher 112

    6.3.2 InputChannel 116

    6.4 输入系统的开启 118

    第7章 MassStorage 121

    7.1 MassStorage概述 121

    7.2 MountService 122

    7.3 库libsysutils.so 123

    7.3.1 SocketListener 123

    7.3.2 FrameworkListener 126

    7.3.3 NetlinkListener 127

    7.4 守护进程vold 128

    7.4.1 NetlinkManager 128

    7.4.2 CommandListener 131

    7.4.3 vold的main函数 135

    第8章 Sensor 137

    8.1 Sensor概述 137

    8.2 SDK API概述 138

    8.3 Sensor管理器 139

    8.3.1 Sensor采样数据的获取与处理 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守护进程 154

    9.3 事件处理与分发线程 158

    9.3.1 分发线程中的事件处理 158

    9.3.2 RIL请求的接收与处理 161

    9.3.3 RIL响应的回送 165

    9.4 radiooptions工具程序 169

    9.5 RILJ 169

    9.5.1 RILJ概述 169

    9.5.2 RILRequest的发送过程 171

    9.5.3 Response的处理过程 174

    第10章 com.android.phone进程 178

    10.1 层次状态机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 进程com.android.phone 190

    第11章 Graphic 196

    11.1 Graphic概述 196

    11.2 Java层简介 197

    11.2.1 SurfaceSession 198

    11.2.2 Surface 198

    11.2.3 SurfaceView 199

    11.2.4 TextureView 200

    11.3 JNI层简介 200

    11.4 SKIA库简介 201

    11.5 库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进程 222

    11.6.1 图层 223

    11.6.2 DisplayHardware简介 228

    11.6.3 HWComposer简介 228

    11.6.4 VSync 229

    11.7 库libui.so简介 247

    11.7.1 GraphicBuffer 247

    11.7.2 FramebufferNativeWindow 248

    11.8 Renderscript简介 249

    第12章 OpenGL ES软件层次栈 250

    12.1 Android中的OpenGL ES简介 250

    12.2 Android中OpenGL软件层次栈 251

    12.3 包裹库与hook钩子 253

    12.3.1 libGLESv1_CM.so包裹库 253

    12.3.2 libGLESv2包裹库 257

    12.3.3 libEGL包裹库 257

    12.3.4 结构体egl_t和gl_hooks_t钩子 258

    12.4 OpenGL实现库的加载和解析 260

    12.4.1 加载和解析的发起 260

    12.4.2 库装载器Loader 261

    12.5 libGLES_android库和ETC1简介 265

    第13章 Multimedia 267

    13.1 Multimedia概述 267

    13.2 API类简述 268

    13.3 多媒体播放(playback) 270

    13.3.1 播放流程 273

    13.3.2 来自server侧的消息事件通知 277

    13.4 多媒体录制(Recording) 279

    13.5 元数据(MetaData)获取 281

    13.6 Camera 284

    13.6.1 Camera概述 284

    13.6.2 CameraHardwareInterface与HAL层 287

    13.7 Camera事件通知机制 289

    第14章 Audio 293

    14.1 Audio概述 293

    14.2 Audio播放AudioTrack 295

    14.2.1 共享控制块audio_track_cblk_t 296

    14.2.2 数据的写入 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相关类概述 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 音效引擎库audio_effect_library_s 323

    14.5.6 音效引擎工厂EffectFactory 324

    14.6 音频策略服务AudioPolicyService 326

    第15章 Stagefright 331

    15.1 Stagefright概述 331

    15.2 节点子类 332

    15.3 StagefrightPlayer 334

    15.4 视频帧的渲染输出AwesomeRenderer 343

    15.4.1 Renderer的创建 344

    15.4.2 AwesomeLocalRenderer 345

    15.4.3 AwesomeNativeWindowRenderer 347

    15.5 AudioPlayer 347

    15.6 A/V同步简介 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 数据处理 359

    16.1.4 组件命令OMX_Command 360

    16.2 OMXCodec类 362

    16.2.1 组件的创建 362

    16.2.2 缓冲区的分配 364

    16.2.3 数据处理流程 370

    16.3 IOMX 374

    16.4 OMX插件 376

    16.4.1 平台厂家插件 377

    16.4.2 软件OMX插件SoftOMXPlugin 379

    16.5 组件消息的上报 383

    第17章 GPS 386

    17.1 GPS 简述 386

    17.2 SDK API概述 386

    17.3 LocationManagerService 388

    17.4 GpsLocationProvider 390

    17.4.1 初始化代码分析 391

    17.4.2 消息处理与回调结构体 392

    17.4.3 例子:位置信息的上报 394

    17.5 HAL层简介 396

    17.5.1 GPS的位置信息 396

    17.5.2 GPS卫星信息 397

    17.5.3 GPS回调函数 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 进程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 其他类简介 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简析 429

    20.1 Bluetooth 429

    20.1.1 Bluetooth概述 429

    20.1.2 SDK API概述 430

    20.1.3 Bluetooth服务 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 预备知识 441

    21.1.1 ptrace调用 441

    21.1.2 waitpid 442

    21.2 debuggerd守护进程 442

    后记 450

    资源截图:

    1.png


    曙光网云资源 » 深入剖析Android系统

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。