本文首发于微信公众号"Android技术圈",未经许可禁止转载
近日,Google 在 GitHub 上开源了 android/skills 仓库,目前里面放了 6 个官方维护的 Agent Skills,覆盖构建升级、Compose 迁移、导航框架、性能优化、支付升级和全屏适配。

Skill 1:AGP 9 升级
路径 :build/agp/agp-9-upgrade
AGP 9 是一次破坏性升级,涉及 DSL 变更、内置 Kotlin 迁移、kapt 到 KSP 的切换、BuildConfig 改动等多个环节。
这个 Skill 的执行流程:
验证步骤也写得很清楚:Gradle sync 成功、./gradlew help 通过、./gradlew build --dry-run 通过。
AGP 9 迁移涉及的改动点多且分散,用人工逐项排查容易遗漏,这个 Skill 把整个流程结构化了。
Skill 2:XML View 迁移到 Jetpack Compose
路径 :jetpack-compose/migration/migrate-xml-views-to-jetpack-compose

这是一个 10 步迁移方法论,从选择迁移目标到最终删除旧 XML 代码,每一步都有明确指令:
前期分析:如果用户没有指定要迁移哪个 XML,Skill 会分析代码库,自动找出最适合迁移的候选布局。然后对 XML 的层级结构和依赖做技术审计。
迁移执行:检查并配置 Compose 依赖 → 设置 Compose 主题(只迁移目标所需的最小主题) → 按照布局映射规则转换 XML 到 Compose 代码 → 生成 Compose Preview。
验证收尾:对比迁移前后的 UI 截图,确认视觉一致 → 编写 Compose UI 测试 → 替换所有引用 → 删除旧 XML 文件和相关测试。
Skill 明确约束了"只迁移 UI,不改业务逻辑",并且要求保持与原有代码风格一致。对于大型项目逐步迁移 Compose 的场景,这个 Skill 可以反复使用。
Skill 3:Navigation 3
路径 :navigation/navigation-3
Navigation 3 是 Jetpack Navigation 的下一代,这个 Skill 包含一份迁移指南和大量代码示例。
迁移指南覆盖了从 Navigation 2 到 Navigation 3 的完整路径:依赖更新、路由定义变更、状态管理、UI 组件替换。
更有价值的是它提供的 recipes(代码示例),覆盖了几乎所有常见场景:
bash
// Navigation 3 基本用法示例中的 NavDisplay
NavDisplay(
backStack = backStack,
entryProvider = { key ->
when (key) {
is HomeKey -> NavEntry(key) { HomeScreen() }
is DetailKey -> NavEntry(key) { DetailScreen(key.id) }
}
}
)
基础 API:基本导航、可持久化的 back stack、entryProvider DSL
UI 模式:底部导航栏 + 多 back stack、Dialog、BottomSheet
Deep Link:基础 URL 解析、带合成 back stack 的高级处理
自适应布局:List-Detail Scene、Two-pane Scene、Material Adaptive 的 ListDetail 和 SupportingPane
架构集成:Hilt 模块化、Koin 模块化、ViewModel 参数传递、结果返回(事件模式和状态模式)
条件导航:登录/未登录流程切换

如果你正在考虑迁移到 Navigation 3,这个 Skill 基本上是一站式参考。
Skill 4:R8 规则分析器
路径 :performance/r8-analyzer
这个 Skill 的目标是帮你优化 APK 体积,通过分析 R8/ProGuard keep 规则找出冗余和过于宽泛的配置。
执行流程分 9 步:
这个 Skill 有一条硬规则:不会直接修改 keep 规则文件,只做分析和建议。这在生产环境中是合理的,ProGuard 规则改错了可能导致运行时崩溃。
Skill 5:Play Billing Library 升级
路径 :play/play-billing-library-version-upgrade
Google Play 计费库的版本升级是 Android 开发中最痛苦的迁移之一------API 变化大、版本间断层多、文档分散在多个 migration guide 里。
这个 Skill 把升级拆成 4 个阶段:
Phase 1 发现 :检查当前版本。如果代码中还在用 SkuDetails,不管 build.gradle 里写的是什么版本,实际等效版本视为 PBL 7 或更早。然后计算迁移路径------跨度不超过 2 个大版本就直接迁移,否则分步跳(v4→v6→v8)。
Phase 2 规划:对每个版本跳跃,综合 Migration Guide、Release Notes 中的 Deprecations 和 Breaking Changes、官方文档,生成具体的代码变更清单。
Phase 3 执行:更新 SDK 版本 → 基于代码意图重构(不是简单的字符串替换) → 分步编译验证 → 最终跑完整测试和 clean build。
Phase 4 报告 :解释每个改动的原因,比如"删除了你的 retryConnection() 逻辑,因为新版本的 enableAutoServiceReconnection() 已经内置了这个功能"。
Skill 6:Edge-to-Edge 全屏适配
路径 :system/edge-to-edge

Android 15(SDK 35)开始强制 edge-to-edge,这个 Skill 帮你把 Compose 应用做全屏适配,同时处理常见的 UI 遮挡问题。
核心步骤:
规划阶段:扫描所有 Activity,检查哪些已经支持 edge-to-edge → 检查列表和 FAB 组件 → 检查 TextField 是否会被输入法遮挡。
适配执行 :给每个 Activity 加 enableEdgeToEdge() → 在 AndroidManifest 中设置 adjustResize → 应用系统 insets。
Skill 里详细列出了 insets 的优先级选择:
bash
// 优先使用 Scaffold 的 PaddingValues
Scaffold { innerPadding ->
LazyColumn(
modifier = Modifier
.fillMaxSize()
.consumeWindowInsets(innerPadding),
contentPadding = innerPadding
) { /* Content */ }
}
还有大量 IME 适配的正确/错误示例对比,涵盖了 Scaffold 内外的各种组合情况。最容易犯的错误是 IME insets 被应用两次导致双重 padding,Skill 里用 RIGHT/WRONG 标注把每种场景都说清楚了。
此外还覆盖了:Adaptive Scaffold(NavigationSuiteScaffold)的注意事项、导航栏对比度和系统栏图标颜色、列表滚动到系统栏后面时的半透明保护层、全屏 Dialog 的 edge-to-edge 处理。
怎么用这些 Skill
Android Studio Gemini :将 Skill 目录放到项目的 .skills/ 或 .agent/skills/ 目录下,Agent Mode 会自动加载。
Claude Code / Cursor:按照各工具的 Skill 配置方式添加目录路径即可。
其他兼容 agentskills.io 标准的工具:同样适用。
也可以直接从 GitHub 克隆:
bash
git clone https://github.com/android/skills.git
最后
如果你的项目正好面临 AGP 9 升级、Compose 迁移、支付库更新或全屏适配这些任务,直接用起来就行。