Kotlin Android编程
Pierre-Olivier Laurence, Amanda Hinchman-Dominguez, G. Blake Meike, Mike Dunn
林琪, 苏钰涵 等译
出版时间:2024年11月
页数:355
为Android移动操作系统开发应用似乎很令人生畏,尤其是如果还
需要学习一种新的编程语言:Kotlin,这是目前Android的官方开
发语言。利用这本实用的书,Android开发人员将学习如何从Java
过渡到Kotlin,包括Kotlin如何为获得异步计算控制提供真正的优
势。
作者Pierre-Olivier Laurence、Amanda Hinchman-Dominguez、G.
Blake Meike和Mike Dunn探讨了原生Android开发中常见任务的实
现,并展示了Kotlin如何帮助你解决并发问题。这本书主要关注结
构化并发(一种新的异步编程范式),将带你了解Kotlin最强大的
构造之一:协程。
● 了解Kotlin基础知识和Kotlin集合框架。
● 探索Android基础:操作系统和应用容器及其组件。
● 了解线程安全以及如何处理并发。
● 编写低开销顺序异步工作。
● 使用协程检查结构化并发性,并了解通道如何支持协程通信。
● 了解如何使用流完成异步数据处理。
● 使用Android性能分析工具了解性能问题。
● 使用性能优化减少资源消耗。
  1. 前言
  2. 第1章 Kotlin基础
  3. 1.1 Kotlin类型系统
  4. 1.1.1 基本类型
  5. 1.1.2 Null安全性
  6. 1.1.3 Unit类型
  7. 1.1.4 函数类型
  8. 1.1.5 泛型
  9. 1.2 变量和函数
  10. 1.2.1 变量
  11. 1.2.2 Lambda
  12. 1.2.3 扩展函数
  13. 1.3 类
  14. 1.3.1 类初始化
  15. 1.3.2 属性
  16. 1.3.3 lateinit属性
  17. 1.3.4 懒属性
  18. 1.3.5 委托
  19. 1.3.6 伴随对象
  20. 1.3.7 数据类
  21. 1.3.8 枚举类
  22. 1.3.9 密封类
  23. 1.4 可见性修饰符
  24. 1.5 小结
  25. 第2章 Kotlin集合框架
  26. 2.1 集合基础
  27. 2.1.1 Java互操作性
  28. 2.1.2 可变性
  29. 2.1.3 重载操作符
  30. 2.1.4 创建容器
  31. 2.2 函数式编程
  32. 2.2.1 函数式与过程式编程:简单示例
  33. 2.2.2 函数式Android
  34. 2.3 Kotlin转换函数
  35. 2.3.1 Boolean函数
  36. 2.3.2 Filter函数
  37. 2.3.3 Map
  38. 2.3.4 flatMap
  39. 2.3.5 分组
  40. 2.3.6 迭代器与序列
  41. 2.4 示例
  42. 2.4.1 问题
  43. 2.4.2 实现
  44. 2.5 小结
  45. 第3章 Android基础
  46. 3.1 Android堆栈
  47. 3.1.1 硬件
  48. 3.1.2 内核
  49. 3.1.3 系统服务
  50. 3.1.4 Android运行时环境
  51. 3.1.5 应用
  52. 3.2 Android应用环境
  53. 3.2.1 意图和意图过滤器
  54. 3.2.2 上下文
  55. 3.3 Android应用组件:构建模块
  56. 3.3.1 活动及相关特性
  57. 3.3.2 服务
  58. 3.3.3 内容提供者
  59. 3.3.4 广播接收者
  60. 3.4 Android应用架构
  61. 3.4.1 MVC:基础
  62. 3.4.2 部件
  63. 3.4.3 局部模型
  64. 3.5 Android模式
  65. 3.5.1 模型–视图–意图
  66. 3.5.2 模型–视图–演示器
  67. 3.5.3 模型–视图–视图模型
  68. 3.6 小结
  69. 第4章 Android并发
  70. 4.1 线程安全性
  71. 4.1.1 原子性
  72. 4.1.2 可见性
  73. 4.2 Android线程模型
  74. 4.3 丢帧
  75. 4.4 内存泄漏
  76. 4.5 管理线程的工具
  77. 4.5.1 Looper/Handler
  78. 4.5.2 Executor和ExecutorService
  79. 4.6 管理任务的工具
  80. 4.6.1 JobScheduler
  81. 4.6.2 WorkManager
  82. 4.7 小结
  83. 第5章 线程安全
  84. 5.1 线程问题示例
  85. 5.2 不变性条件
  86. 5.2.1 互斥锁
  87. 5.2.2 线程安全集合
  88. 5.3 线程封闭
  89. 5.4 线程竞争
  90. 5.5 阻塞调用与非阻塞调用
  91. 5.6 工作队列
  92. 5.7 背压
  93. 5.8 小结
  94. 第6章 使用回调处理并发
  95. 6.1 购买特性示例
  96. 6.2 创建应用
  97. 6.2.1 视图模型
  98. 6.2.2 视图
  99. 6.2.3 实现逻辑
  100. 6.2.4 讨论
  101. 6.3 线程模型的限制
  102. 6.4 小结
  103. 第7章 协程概念
  104. 7.1 到底什么是协程
  105. 7.1.1 你的第一个协程
  106. 7.1.2 async协程创建器
  107. 7.2 关于结构化并发
  108. 7.3 结构化并发中的父–子关系
  109. 7.4 CoroutineScope和CoroutineContext
  110. 7.5 挂起函数
  111. 7.6 挂起函数原理
  112. 7.7 使用协程和挂起函数:实用示例
  113. 7.8 不要误解suspend修饰符
  114. 7.9 小结
  115. 第8章 协程实现结构化并发
  116. 8.1 挂起函数
  117. 8.1.1 场景设置
  118. 8.1.2 使用java.util.concurrent.ExecutorService的传统方法
  119. 8.1.3 回顾HandlerThread
  120. 8.1.4 使用挂起函数和协程
  121. 8.1.5 挂起函数与线程小结
  122. 8.2 取消
  123. 8.2.1 协程生命周期
  124. 8.2.2 取消协程
  125. 8.2.3 取消委托给第三方库的任务
  126. 8.2.4 与取消合作的协程
  127. 8.2.5 delay是可取消的
  128. 8.2.6 处理取消
  129. 8.2.7 取消原因
  130. 8.3 监督
  131. 8.4 supervisorScope构建器
  132. 8.5 并行分解
  133. 8.6 自动取消
  134. 8.7 异常处理
  135. 8.7.1 未处理和公布的异常
  136. 8.7.2 公布异常
  137. 8.7.3 未处理异常
  138. 8.8 小结
  139. 8.9 结语
  140. 第9章 通道
  141. 9.1 通道概述
  142. 9.1.1 会合通道
  143. 9.1.2 无限通道
  144. 9.1.3 合并通道
  145. 9.1.4 缓冲通道
  146. 9.1.5 通道生产者
  147. 9.2 通信顺序进程
  148. 9.2.1 模型和架构
  149. 9.2.2 第一个实现
  150. 9.2.3 select表达式
  151. 9.2.4 综合
  152. 9.2.5 扇出和扇入
  153. 9.2.6 性能测试
  154. 9.2.7 背压
  155. 9.2.8 与Actor模型的相似性
  156. 9.2.9 进程中顺序执行
  157. 9.2.10 结语
  158. 9.3 CSP中的死锁
  159. 9.4 要点总结
  160. 9.5 通道的限制
  161. 9.6 热通道
  162. 9.7 小结
  163. 第10章 流
  164. 10.1 流简介
  165. 10.1.1 一个更现实的例子
  166. 10.1.2 操作符
  167. 10.1.3 终端操作符
  168. 10.2 冷流使用示例
  169. 10.2.1 用例1:与基于回调的API交互
  170. 10.2.2 用例2:并发转换值流
  171. 10.2.3 出错时会发生什么
  172. 10.2.4 结语
  173. 10.2.5 用例3:创建定制操作符
  174. 10.2.6 用法
  175. 10.3 错误处理
  176. 10.3.1 try/catch块
  177. 10.3.2 关注点分离很重要
  178. 10.3.3 违反异常透明性
  179. 10.3.4 catch操作符
  180. 10.3.5 封装发射异常
  181. 10.4 用SharedFlow实现热流
  182. 10.4.1 创建SharedFlow
  183. 10.4.2 注册订阅者
  184. 10.4.3 向SharedFlow发射值
  185. 10.4.4 使用SharedFlow传递数据
  186. 10.4.5 使用SharedFlow作为事件总线
  187. 10.4.6 StateFlow:专用SharedFlow
  188. 10.4.7 StateFlow使用示例
  189. 10.5 小结
  190. 第11章 用Android性能分析工具检查性能问题
  191. 11.1 Android Profiler
  192. 11.1.1 Network Profiler
  193. 11.1.2 CPU Profiler
  194. 11.1.3 Energy Profiler
  195. 11.1.4 Memory Profiler
  196. 11.2 用LeakCanary检测内存泄漏
  197. 11.3 小结
  198. 第12章 利用性能优化减少资源消耗
  199. 12.1 用ConstraintLayout得到更扁平的视图层次结构
  200. 12.2 利用可绘制对象减少编程绘制
  201. 12.3 最小化网络调用中的资产负载
  202. 12.4 位图池和缓存
  203. 12.5 减少不必要的工作
  204. 12.6 使用静态函数
  205. 12.7 使用R8和ProGuard实现缩小和混淆
  206. 12.8 小结
书名:Kotlin Android编程
译者:林琪, 苏钰涵 等译
国内出版社:中国电力出版社
出版时间:2024年11月
页数:355
书号:978-7-5198-9238-8
原版书书名:Programming Android with Kotlin
原版书出版商:O'Reilly Media
Pierre-Olivier Laurence
 
Pierre-Olivier Laurence是法国巴黎附近Safran Aircraft Engines公司的首席软件工程师。
 
 
Amanda Hinchman-Dominguez
 
Amanda Hinchman-Dominguez是Kotlin方面的Google Developer Expert,也是Groupon的Android工程师,活跃在全球Kotlin社区。
 
 
G. Blake Meike
 
G. Blake Meike是一个经验丰富的开发人员,在移动和服务端平台构建Java应用方面有丰富的经验。
 
 
Mike Dunn
 
Mike Dunn是O’Reilly Media的首席移动工程师,也是O’Reilly《Native mobile Development》一书的作者。
 
 
本书的封面动物是一只铜腹蜂鸟(学名:Eriocnemis cupreoventris),这是一种发现于哥伦比亚和委内瑞拉的蜂鸟。它们生活在热带和亚热带森林和草原,正在受到失去栖息地的威胁。
铜腹蜂鸟平均身长3.7英寸,包括0.7英寸的喙和1.4英寸的尾巴。它们的羽毛主要呈金属绿色,不过肚子是铜色。它们的腿为白色,就好像穿着羊毛裤。
与其他蜂鸟一样,除了交配外,铜腹蜂鸟是独居的。雌鸟筑巢并独自抚养雏鸟。一窝平均有两个蛋。雏鸟在约20天大的时候离巢。
在其生活范围内,这种蜂鸟并不常见,只见于一些分散的种群。在哥伦比亚和委内瑞拉,很多森林已变为农田,这使它们失去了栖息地。铜腹蜂鸟的保护状态为近危物种。O’Reilly书封面上的很多动物都濒临灭绝;它们对我们的世界都很重要。
购买选项
定价:98.00元
书号:978-7-5198-9238-8
出版社:中国电力出版社