XML View 到 Jetpack Compose 迁移技能
以 10 步结构化流程,将 Android XML 布局安全、逐增量地迁移为 Jetpack Compose,确保视觉一致。
技能提供了分步流程,明确要求用户确认(步骤3),并要求在迁移前检查项目构建状态。它限定了变更范围(不迁移整个主题,不修改非UI代码)。但未说明如何处理敏感数据或回滚,也未提供数据流透明性。依赖引用不可验证。
提供了10个步骤和多个参考文档,但关键路径依赖外部资源(如截图、测试框架)且未提供自动化测试或示例输出。没有错误处理或失败反馈说明,静态阅读无法验证可运行性。
目标明确:将XML视图迁移到Jetpack Compose。提供了选择候选XML的准则,但非适用场景边界不清晰(如大型复杂布局、自定义设计系统时是否适用)。未提及中文支持和网络可达性。
有明确的结构,包含描述、目标、步骤和引用。但缺少安装依赖、版本控制、维护责任、已知限制等说明。元数据中的author为Google LLC,但未验证。
描述了完整流程,但无示例或验证输出,静态阅读无法确认结果正确性。输出(生成的Compose代码)需要用户自行整合和测试,直接可用性有限。
提供了步骤和引用文档,但无测试用例或CI结果,无第三方执行证据,关键声明(如像素级视觉一致性)无法验证。
- 静态评估,未执行验证;实际效果可能因项目而异,需用户自行测试。
- 技能依赖外部参考(如developer.android.com)和用户提供的截图,功能可能受网络和用户输入影响。
- 未提及失败处理或回滚机制,风险较高。
- 迁移步骤可能引入视觉偏差,需谨慎验证。
这个 Skill 能做什么,适合哪些场景?
该技能为将单个遗留 XML View 迁移到 Jetpack Compose 提供了一套完整的 10 步方法,涵盖从候选布局识别、项目分析、计划制定,到依赖配置、主题设置、布局转换、验证以及最终的 XML 清理。它专注于 UI 迁移,不涉及业务逻辑,并强调视觉上的逐像素一致性和与现有代码的互操作性。技能基于 Android 官方最佳实践,由 Google LLC 维护,并以 Apache 2.0 许可证发布。
分析项目结构,识别适合迁移的 XML 布局;读取构建文件(如 build.gradle 或 libs.versions.toml)以检查和配置 Compose 依赖及编译器;捕获或获取 XML UI 的截图作为视觉参考;根据项目现状配置必要的 Compose 主题;将 XML 布局转换为 Compose 代码,并生成 Compose Preview 以供视觉验证;替换原有 XML 的使用处;对比截图与 Preview 进行验证,并编写 Compose UI 测试;最后删除冗余的 XML 文件和旧测试。
- Android 开发者需要将项目中的单个 XML 布局渐进式迁移到 Compose,而无需一次性重写整个 UI。
- 开发团队希望保持现有 View 系统与 Compose 的互操作性,逐屏幕迁移以降低风险。
- 需要确保迁移后 UI 视觉上完全一致,且不丢失现有功能的场景。
- 开发环境中无法运行模拟器,但希望通过自动化流程指导完成迁移。
- 需要系统性地为迁移过程生成文档和测试的项目负责人。
这个 Skill 有哪些优点和局限?
- 提供明确的 10 步流程,结构化且可验证。
- 强调视觉一致性和逐步采用,降低迁移风险。
- 支持与现有 View 系统的互操作性,保留原有主题和模式。
- 包含自动生成 Compose Preview 和 UI 测试的要求,便于质量保障。
- 仅专注 UI 迁移,不处理业务逻辑,可能需额外工作。
- 过度依赖 Android 官方最佳实践,对非标准自定义 View 支持有限。
- 所需步骤依赖 Android CLI 和 Android Studio,对无这些工具的开发者不友好。
- 缺乏明确定义的错误处理机制,遇到不支持的布局时可能无法自动处理。
如何安装这个 Skill?
使用 Android CLI 安装技能到当前项目:
android skills add --skill=migrate-xml-views-to-jetpack-compose --project=.若未指定项目路径,将安装到默认智能体目录(如 ~/.gemini/antigravity/skills)。
如何使用这个 Skill?
在支持技能调用的 Android 开发环境(如带有 Gemini 的 Android Studio)中,直接请求:"请将我的 layout 文件迁移到 Compose",技能会自动执行分析并输出步骤。需要时提供目标 XML 文件路径或截图;若无法运行模拟器,技能将跳过截图捕获步骤,进行后续迁移。