本书共8章,第1章介绍了一个非典型的并发模型,为后文的阐释做好铺垫。第2章和第3章分别介绍了Java并发和Android应用程序模型,主要介绍Java线程、同步、并发包、生命周期和组件、Android进程等基本概念。第4章介绍AsyncTask和Loader。第5-7章是本书的核心内容,深入探讨Android操作系统的细节,如Looper/Handler、Service、Binder、定时任务等。第8章介绍并发工具,如静态分析、注解、断言等。本书适合有Android开发经验的读者参考。如果你是一名新手,建议你在掌握相关入门知识的基础上阅读本书,以达到更好的学习效果。本书给出多段代码,旨在让读者亲自实践后更好地掌握Android并发开发的相关内容。
目录
- 第 1章 了解并发 1
- 1.1 并发很难 1
- 1.1.1 软件中的并发 1
- 1.1.2 硬件中的并发 3
- 1.2 并发很简单 4
- 1.2.1 线程 4
- 1.2.2 原子执行 5
- 1.2.3 可视化 6
- 1.3 小结 7
- 第 2章 Java并发 8
- 2.1 Java线程 8
- 2.1.1 Thread类 9
- 2.1.2 Runnable 10
- 2.2 同步 11
- 2.2.1 互斥 11
- 2.2.2 常见的同步错误 15
- 2.3 volatile 17
- 2.4 wait和notify 21
- 2.4.1 wait 21
- 2.4.2 notify 22
- 2.5 并发包 23
- 2.5.1 安全发布 24
- 2.5.2 executor 26
- 2.5.3 future 27
- 2.6 小结 28
- 第3章 Android应用程序模型 29
- 3.1 生命周期和组件 29
- 3.1.1 进程优先级 31
- 3.1.2 组件生命周期 33
- 3.2 Android应用程序作为Web应用程序 34
- 3.3 Android进程 35
- 3.3.1 应用程序启动 35
- 3.3.2 Android主线程 38
- 3.4 小结 39
- 第4章 AsyncTask和Loader 40
- 4.1 AsyncTask体系 40
- 4.1.1 AsyncTask基础 44
- 4.1.2 AsyncTask的执行 47
- 4.1.3 AsyncTask的完成 49
- 4.2 使用AsyncTask 52
- 4.2.1 AsyncTask:被认为是危险的 52
- 4.2.2 使之正确 59
- 4.3 Loader和CursorLoader 60
- 4.4 AsyncTask:哪里出错了? 68
- 4.5 小结 69
- 第5章 Looper/Handler 71
- 5.1 Looper/Handler简介 71
- 5.1.1 Looper/Handler的基础 73
- 5.1.2 委托执行 74
- 5.2 一些细节 83
- 5.2.1 Handler和消息 83
- 5.2.2 启动Looper 86
- 5.2.3 Native Looper 88
- 5.2.4 调度和同步屏障 89
- 5.3 小结 91
- 第6章 Service、进程和Binder IPC 93
- 6.1 Service的基础知识 93
- 6.1.1 启动型Service的要点 95
- 6.1.2 绑定型Service的要点 97
- 6.2 Intent 98
- 6.3 IntentService 101
- 6.4 绑定型Service 105
- 6.4.1 一个简单的绑定型Service 106
- 6.4.2 绑定一个Service 107
- 6.4.3 解除对Service的绑定 109
- 6.4.4 绑定多个Service 110
- 6.4.5 Service的生命周期 112
- 6.4.6 优先级和标志 114
- 6.4.7 本地绑定型Service 115
- 6.5 进程间通信 118
- 6.5.1 Parcelable 119
- 6.5.2 Messenger 120
- 6.5.3 使用AIDL 123
- 6.5.4 创建进程 128
- 6.6 浅谈Binder 130
- 6.6.1 Binder线程 130
- 6.6.2 Binder数据传输限制 130
- 6.6.3 绑定到死 131
- 6.7 小结 131
- 第7章 定时任务 132
- 7.1 任务特性 132
- 7.1.1 线程安全 133
- 7.1.2 生命周期感知 133
- 7.1.3 巧妙使用进程优先级 133
- 7.1.4 电量节约 134
- 7.1.5 记分卡 135
- 7.2 Timer和TimerTask 135
- 7.3 Looper/Handler 135
- 7.4 基于自定义服务的调度程序 138
- 7.5 Alarm Manager和Intent Service 139
- 7.5.1 AlarmManagerService 141
- 7.5.2 可调度的任务 145
- 7.6 同步适配器 148
- 7.6.1 定义同步适配器 149
- 7.6.2 同步适配器的工作原理 152
- 7.6.3 实现同步适配器 154
- 7.6.4 对同步适配器评分 159
- 7.7 JobScheduler 162
- 7.7.1 调度任务 163
- 7.7.2 运行任务 166
- 7.7.3 任务执行 168
- 7.7.4 对JobScheduler评分 172
- 7.8 小结 173
- 第8章 并发工具 174
- 8.1 静态分析 174
- 8.1.1 Android Studio 175
- 8.1.2 Findbugs 176
- 8.2 注解 183
- 8.2.1 JCIR注解 184
- 8.2.2 支持库注解 184
- 8.3 断言 185
- 8.4 结束语和最佳做法 186
- 参考文献 188