Litho
  • Introduction
  • 简介
    • Litho 是什么
    • 动机
    • 使用
  • 快速开始
    • 新手入门
    • 教程
    • 编写 Component
    • 使用 Component
  • 参考
    • Layout Specs
    • Mount Specs
    • Props
    • State
    • Layout
    • Error Boundaries
    • Borders
    • RecyclerCollectionComponent
    • 变换动画
    • 术语
  • 事件处理
    • 总览
    • 触摸处理
    • 可见性处理
  • Sections
    • Sections 是什么
    • Sections 教程
    • GroupSection Specs
    • DiffSection Specs
    • Sections Building Blocks
    • 与UI交互
    • Sections 单元测试
    • Sections 与 Views
    • Services
    • Sections 架构
    • Working Ranges
  • 兼容性
    • Styles
    • Accessbility
    • RTL
  • 测试
    • 总览
    • 单元测试基础
    • 子组件测试
    • 匹配 Props
    • 测试 InjectProps
    • 测试事件处理
    • Espresso
    • 在Android Studio上运行测试
  • 高级指南
    • Recycler
    • 自定义布局
    • TreeProps
    • 增量安装
    • 创建 ComponentTree
  • 架构
    • 代码生成
    • 异步布局
    • 增量安装
    • 铺平 View 结构
    • 回收
  • 附加资源
    • 最佳实践
    • FAQ
  • 工具
    • 调试
    • 开发者选项
  • 更多参与
    • 如何参与
    • 社区展示
    • 资源库结构
Powered by GitBook
On this page
  • Spec Model 创建
  • Spec Model 验证
  • 组件生成
  • 为您的项目设置代码生成
  1. 架构

代码生成

Previous架构Next异步布局

Last updated 7 years ago

正如中所述,Litho 依靠代码生成来创建组件 Spec 中的组件。此过程利用叫做 的中间 ComponentSpec 模型表示,它们是不可变的Java对象。

代码生成包括三个主要步骤:

  • 从 Component Spec 创建 Spec Model 。

  • Spec Model 验证。

  • 从给定的 Spec Model 生成 Component 。

Spec Model 创建

Spec Model 是注解处理器在编译时创建的,注解处理器 是 javac 中用于扫描和处理注释的工具。 Litho 注解处理器将处理组件 Spec 上的注解,方法和字段,并为每个组件创建一个 Spec Model。

未来,我们将增加以其他方式创建 Spec Model 的功能。例如,我们希望能够直接在Android Studio / Intellij 中创建 Spec Model,这将允许我们无需构建源代码即可生成组件。

Spec Model 验证

Spec Models 有一个名为 validate()的方法,它返回一个 列表。如果这个列表是空的,那么Spec是格式良好的,可以用来生成一个有效的组件。如果不是,那么它将包含在生成有效的Component之前需要修复的错误列表。

组件生成

如果 Spec Model 的验证步骤成功,则可以调用生成方法。这将创建一个 TypeSpec,然后可以很容易地使用 Javapoet 来创建一个 Component 类文件。

为您的项目设置代码生成

如果您使用部分中的说明设置项目,则代码生成将自动在项目上执行。

编写组件
SpecModels
SpecModelValidationErrors
Javapoet
入门指南