Jetpack Compose 内部原理 (简体中文版)
Jetpack Compose 内部原理 (简体中文版)
关于本书
本书深入探讨了 Jetpack Compose 的核心机制,这是由 Google 和 Android 团队推出的全新库,将成为 Android UI 的未来。现在投入时间深入学习其内部原理,将助您在未来开发出现代、高效的 Android 应用。
如果您对 Jetpack Compose 在 Android 之外的其他使用场景感兴趣,本书同样能满足您的需求。Jetpack Compose 内部原理专注于从通用角度探索其编译器和运行时,使整体内容对目标平台保持中立。本书还专门提供了一个章节,通过代码展示了 Jetpack Compose 的多种使用场景,其中包含了一些非常有趣的示例。
Jetpack Compose 和 Android 是 Google LLC 的商标,本书未经 Google 认可,也未与 Google 有任何关联。
目录
-
序章
- 为什么要阅读本书
- 本书不涵盖的内容
- 为什么要写关于内部原理的书
- 时刻关注源代码
- 代码片段和示例
-
1. 可组合函数
- 可组合函数的含义
- 可组合函数的属性
- 调用上下文
- 幂等性
- 避免不受控制的副作用
- 可重启性
- 快速执行
- 位置记忆化
- 与挂起函数的相似之处
- 可组合函数的颜色
- 可组合函数类型
-
2. Compose 编译器
- Kotlin 编译器插件
- Compose 注解
- 注册编译器扩展
- Kotlin 编译器版本
- 静态分析
- 静态检查器
- 调用检查
- 类型检查
- 声明检查
- 诊断抑制
- 运行时版本检查
- 代码生成
- Kotlin IR
- 降级
- 推断类的稳定性
- 启用实时字面量
- Compose lambda记忆化
- 注入 Composer
- 比较传播
- 默认参数
- 控制流组生成
- Klib 和诱饵生成
-
3. Compose 运行时
- 插槽表和变更列表
- 深入理解插槽表
- 变更列表
- Composer(组合器)
- 为Composer提供数据
- 对变更进行建模
- 优化写入时机
- 写入和读取组
- 记住值
- 重组作用域
- 编写器中的SideEffects
- 存储CompositionLocals
- 存储源信息
- 通过CompositionContext链接组合
- 访问当前状态快照
- 导航节点
- 保持读取器和写入器同步
- 应用更改
- 构建节点树时的性能
- 如何应用更改
- 附加和绘制节点
- Composition(组合)
- 创建 Composition
- 初始化 Composition 过程
- 初始组合后应用更改
- 关于组合的其他信息
- Recomposer
- 启动 Recomposer
- 重组过程
- 并发重组
- Recomposer状态
-
4. Compose UI
- 将 UI 与 Compose 运行时集成
- 将预定的变更映射到树的实际变更
- 从 Compose UI 的角度看 Composition
- 从Compose UI的角度看子组合
- 在 UI 中反映更改
- 不同类型的应用器
- 实现新的 LayoutNode
- 闭合循环
- 实体化移除节点的变更
- 实现移动节点的变更
- 实现清除所有节点的变更
- Compose UI 中的测量
- 测量策略
- 固有测量
- 布局约束
- LookaheadLayout
- 构建修饰符链
- 将修饰符设置到LayoutNode上
- LayoutNode 如何处理新的修饰符
- 绘制节点树
- Jetpack Compose 中的语义
- 通知语义变化
- 合并和未合并的语义树
-
5. 状态快照系统
- 什么是快照状态
- 并发控制系统
- 多版本并发控制(MCC 或 MVCC)
- 快照
- 快照树
- 快照和线程
- 观察读取和写入
- 可变快照
- 全局快照和嵌套快照
- 状态对象和状态记录
- 读取和写入状态
- 移除或重用过时记录
- 变更传播
- 合并写入冲突
-
6. 副作用和副作用处理器
- 副作用介绍
- Compose 中的副作用
- 我们的需求
- 效果处理器
- 非挂起效果
- 挂起效果
- 第三方库适配器
-
7. Compose Runtime 高级用例
- Compose runtime 与 Compose UI
- (重新)介绍组合
- 矢量图形的组合
- 构建矢量图像树
- 将矢量组合集成到 Compose UI
- 使用 Compose 管理 DOM
- 浏览器中的独立组合
- 结论
Leanpub 无条件、零风险的100%满意保证
在支付后的60天内,只需简单点击两下,您便可以退书并且取回先前支付的全部金额。退款是手动处理的,因此可能需要几天时间来完成整个流程。
查看完整条款。
在10美元的购买中赚取8美元,在20美元的购买中赚取16美元
对于7.99美元或以上的购买,我们支付80%的版税,对于0.99至7.98美元之间的购买,支付80%的版税减去0.50美元固定费用。在10美元的销售中您可赚取8美元,在20美元的销售中可赚取16美元。因此,如果我们以20美元售出5000本未退款的图书,您将赚取80,000美元。
(是的,一些作者在Leanpub上已经赚取了远超过这个数额的收入。)
事实上,作者们通过在Leanpub上写作、出版和销售已经赚取了超过1400万美元。
了解更多关于在Leanpub上写作的信息
免费更新。无DRM。
如果你购买了Leanpub的书,只要作者更新这本书,你就可以免费获得更新!许多作者使用Leanpub在他们编写书籍的过程中发布他们的作品。所有读者都可以获得免费更新,无论他们何时购买的书或他们支付了多少钱(包括免费)。
大多数Leanpub书籍都提供PDF(适用于计算机)、EPUB(适用于手机和平板电脑)和MOBI(适用于Kindle)格式。书籍包含的格式会显示在此页面的右上角。
最后,Leanpub的书籍没有任何DRM版权保护的限制,所以你可以轻松地在任何支持的设备上阅读它们。