图书介绍

深入理解Android内核设计思想 上 第2版PDF|Epub|txt|kindle电子书版本网盘下载

深入理解Android内核设计思想 上 第2版
  • 林学森著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:7115452636
  • 出版时间:2017
  • 标注页数:613页
  • 文件大小:95MB
  • 文件页数:629页
  • 主题词:移动终端-应用程序-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

深入理解Android内核设计思想 上 第2版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1篇Android编译篇2

第1章Android系统简介2

1.1 Android系统发展历程2

1.2 Android系统特点4

1.3 Android系统框架8

第2章Android源码下载及编译11

2.1 Android源码下载指南11

2.1.1基于Repo和Git的版本管理11

2.1.2 Android源码下载流程12

2.2原生Android系统编译指南16

2.2.1建立编译环境16

2.2.2编译流程19

2.3定制产品的编译与烧录22

2.3.1定制新产品22

2.3.2 Linux内核编译26

2.3.3烧录/升级系统27

2.4 Android Multilib Build28

2.5 Android系统映像文件31

2.5.1 boot.img32

2.5.2 ramdisk.img34

2.5.3 system.img35

2.5.4 Verifiied Boot35

2.6 ODEX流程37

2.7 OTA系统升级39

2.7.1生成升级包39

2.7.2获取升级包40

2.7.3 OTA升级——Recovery模式41

2.8 Android反编译44

2.9 NDK Build46

2.10第三方ROM的移植48

第3章Android编译系统50

3.1 Makefiile入门50

3.2 Android编译系统52

3.2.1 Makefiile依赖树的概念53

3.2.2 Android编译系统抽象模型53

3.2.3树根节点droid54

3.2.4 main.mk解析55

3.2.5 droidcore节点59

3.2.6 dist fiiles61

3.2.7 Android.mk的编写规则61

3.3 Jack Toolchain64

3.4 SDK的编译过程68

3.4.1 envsetup.sh68

3.4.2 lunch sdk-eng70

3.4.3 make sdk75

3.5 Android系统GDB调试85

第2篇Android原理篇90

第4章 操作系统基础90

4.1计算机体系结构 (Computer Architecture)90

4.1.1冯·诺依曼结构90

4.1.2哈佛结构90

4.2什么是操作系统91

4.3进程间通信的经典实现93

4.3.1共享内存 (Shared Memory)94

4.3.2管道(Pipe)95

4.3.3 UNIX Domain Socket97

4.3.4 RPC(Remote Procedure Calls)99

4.4同步机制的经典实现100

4.4.1信号量(Semaphore)100

4.4.2 Mutex101

4.4.3管程(Monitor)101

4.4.4 Linux Futex102

4.4.5同步范例103

4.5 Android中的同步机制104

4.5.1进程间同步——Mutex104

4.5.2条件判断———Condition105

4.5.3“栅栏、障碍”—— Barrier107

4.5.4加解锁的自动化操作—— Autolock108

4.5.5读写锁——Reader WriterMutex109

4.6操作系统内存管理基础110

4.6.1虚拟内存 (Virtual Memory)110

4.6.2内存保护 (Memory Protection)113

4.6.3内存分配与回收113

4.6.4进程间通信——mmap114

4.6.5写时拷贝技术 (Copy on Write)115

4.7 Android中的Low Memory Killer115

4.8 Android匿名共享内存 (Anonymous Shared Memory)118

4.8.1 Ashmem设备118

4.8.2 Ashmem应用实例122

4.9 JNI127

4.9.1 Java函数的本地实现127

4.9.2本地代码访问 JVM130

4.10 Java中的反射机制132

4.11学习Android系统的两条线索133

第5章Android进程/线程和程序内存优化134

5.1 Android进程和线程134

5.2 Handler, MessageQueue,Runnable与Looper140

5.3 UI主线程——Activity Thread147

5.4 Thread类150

5.4.1 Thread类的内部原理150

5.4.2 Thread休眠和唤醒151

5.4.3 Thread实例155

5.5 Android应用程序如何利用CPU的多核处理能力157

5.6 Android应用程序的典型启动流程157

5.7 Android程序的内存管理与优化159

5.7.1 Android系统对内存使用的限制159

5.7.2 Android中的内存泄露与内存监测160

第6章 进程间通信——Binder166

6.1智能指针169

6.1.1智能指针的设计理念169

6.1.2强指针sp172

6.1.3弱指针wp173

6.2进程间的数据传递载体 ——parcel179

6.3 Binder驱动与协议187

6.3.1打开Binder驱动 —— binder open188

6.3.2 binder mmap189

6.3.3 binder ioctl192

6.4 “DNS”服务器——Service Manager(Binder Server)193

6.4.1 ServiceManager的启动193

6.4.2 ServiceManager的构建194

6.4.3获取ServiceManager服务——设计思考199

6.4.4 ServiceManagerProxy203

6.4.5 IBinder和BpBinder205

6.4.6 ProcessState和IPCThreadState207

6.5 Binder客户端Binder Client237

6.6 Android接口描述语言——AIDL242

6.7匿名Binder Server254

第7章Android启动过程257

7.1第一个系统进程(init)257

7.1.1 init.rc语法257

7.1.2 init.rc实例分析260

7.2系统关键服务的启动简析261

7.2.1 Android的“DNS服务器” —— ServiceManager261

7.2.2“孕育”新的线程和进程 —— Zygote261

7.2.3 Android的“系统服务” —— SystemServer274

7.2.4 Vold和External Storage存储设备276

7.3多用户管理282

第8章 管理Activity和组件运行状态的系统进程——Activity ManagerService (AMS)284

8.1 AMS功能概述284

8.2管理当前系统中Activity 状态——Activity Stack286

8.3 startActivity流程288

8.4完成同一任务的“集合” —— Activity Task296

8.4.1“后进先出”——Last In,First Out297

8.4.2管理Activity Task298

8.5 Instrumentation机制300

第9章GUI系统——SurfaceFlinger305

9.1 OpenGL ES与EGL305

9.2 Android的硬件接口——HAL307

9.3 Android终端显示设备的“化身” —— Gralloc与Framebuffer309

9.4 Android中的本地窗口313

9.4.1 FramebufferNativeWindow315

9.4.2应用程序端的本地窗口—— Surface321

9.5 Buffer Queue详解325

9.5.1 Buffer Queue的内部原理325

9.5.2 Buffer Queue中的缓冲区分配328

9.5.3应用程序的典型绘图流程333

9.5.4应用程序与Buffer Queue的关系339

9.6 SurfaceFlinger343

9.6.1“黄油计划”——Project Butter343

9.6.2 SurfaceFlinger的启动347

9.6.3接口的服务端——Client351

9.7 VSync的产生和处理355

9.7.1 VSync信号的产生和分发355

9.7.2 VSync信号的处理361

9.7.3 handleMessageTransaction363

9.7.4“界面已经过时/无效,需要重新绘制”——handleMessage Invalidate367

9.7.5合成前的准备工作 —— preComposition369

9.7.6可见区域 ——rebui 1 dLayerStacks371

9.7.7为“Composition”搭建环境 ——setUpHWComposer375

9.7.8 doDebugFlashRegions377

9.7.9 doComposition377

第10章GUI系统之“窗口管理员” ——WMS385

10.1“窗口管理员”——WMS综述386

10.1.1 WMS的启动388

10.1.2 WMS的基础功能388

10.1.3 WMS的工作方式389

10.1.4 WMS, AMS与Activity间的联系390

10.2窗口属性392

10.2.1窗口类型与层级392

10.2.2窗口策略 (Window Policy)396

10.2.3窗口属性 (LayoutParams)398

10.3窗口的添加过程400

10.3.1系统窗口的添加过程400

10.3.2 Activity窗口的添加过程409

10.3.3窗口添加实例412

10.4 Surface管理416

10.4.1 Surface申请流程 (relayout)416

10.4.2 Surface的跨进程传递420

10.4.3 Surface的业务操作422

10.5 performLayoutAndPlace SurfacesLockedInner423

10.6窗口大小的计算过程424

10.7启动窗口的添加与销毁433

10.7.1启动窗口的添加433

10.7.2启动窗口的销毁437

10.8窗口动画438

10.8.1窗口动画类型439

10.8.2动画流程跟踪——Window StateAnimator440

10.8.3 AppWindowAnimator444

10.8.4动画的执行过程446

第11章 让你的界面炫彩起来的GUI系统——View体系452

11.1应用程序中的View框架452

11.2 Activity中View Tree的创建过程455

11.3在WMS中注册窗口461

11.4 ViewRoot的基本工作方式463

11.5 View Tree的遍历时机464

11.6 View Tree的遍历流程468

11.7 View和ViewGroup属性477

11.7.1 View的基本属性477

11.7.2 ViewGroup的属性482

11.7.3 View、ViewGroup和ViewParent482

11.7.4 Callback接口482

11.8“作画”工具集——Canvas484

11.8.1“绘制UI”——Skia485

11.8.2数据中介——Surface.lockCanvas486

11.8.3解锁并提交结果——unlock CanvasAndPost490

11.9 draw和onDraw491

11.10 View中的消息传递497

11.10.1 View中TouchEvent的投递流程497

11.10.2 ViewGoup中Touch-Event的投递流程500

11.11 View动画504

11.12 UiAutomator509

第12章“问渠哪得清如许,为有源头活水来”——InputManager Service与输入事件514

12.1事件的分类514

12.2事件的投递流程517

12.2.1 InputManagerService518

12.2.2 InputReaderThread519

12.2.3 InputDispatcherThread519

12.2.4 ViewRootImpl对事件的派发523

12.3事件注入524

第13章 应用不再同质化——音频系统526

13.1音频基础527

13.1.1声波527

13.1.2音频的录制、存储与回放527

13.1.3音频采样528

13.1.4 Nyquist-Shannon采样定律530

13.1.5声道和立体声530

13.1.6声音定级 Weber-Fechner law531

13.1.7音频文件格式532

13.2音频框架532

13.2.1 Linux中的音频框架532

13.2.2 TinyAlsa534

13.2.3 Android系统中的音频框架536

13.3音频系统的核心——Audio- Flinger538

13.3.1 AudioFlinger服务的启动和运行538

13.3.2 AudioFlinger对音频设备的管理540

13.3.3 PlaybackThread的循环主体547

13.3.4 AudioMixer551

13.4策略的制定者—Audio-PolicyService553

13.4.1 AudioPolicyService概述554

13.4.2 AudioPolicyService的启动过程556

13.4.3 AudioPolicyService与音频设备558

13.5音频流的回放——AudioTrack560

13.5.1 AudioTrack应用实例560

13.5.2 AudioPolicyService的路由实现567

13.6音频数据流572

13.6.1 AudioTrack中的音频流573

13.6.2 AudioTrack和AudioFlinger间的数据交互576

13.6.3 AudioMixer中的音频流582

13.7音量控制584

13.8音频系统的上层建筑588

13.8.1从功能入手588

13.8.2 MediaPlayer589

13.8.3 MediaRecorder592

13.8.4一个典型的多媒体录制程序595

13.8.5 MediaRecorder源码解析596

13.8.6 MediaPlayerService简析598

13.9 Android支持的媒体格式600

13.9.1音频格式600

13.9.2视频格式601

13.9.3图片格式601

13.9.4网络流媒体602

13.10 ID3信息简述602

13.11 Android多媒体文件管理606

13.11.1 MediaStore607

13.11.2多媒体文件信息的存储“仓库”—— MediaProvider608

13.11.3多媒体文件管理中的“生产者”——MediaScanner611

热门推荐