引言

“Android Skills 覆盖的是那些 LLM 表现薄弱的 Android 开发场景,不是它们已经擅长的。”

这是"每日一个开源项目"系列的第142篇文章。今天的主角是 android/skills——Google Android 团队官方开源的 AI Skill 库。

LLM 已经能写相当多的 Android 代码了。标准的 RecyclerView、基本的 Jetpack Compose 布局、简单的网络请求——这些在大量训练数据里都有覆盖,模型做得不差。

难的是另一类任务:Android 框架里持续在演进的部分——从 Camera1 迁移到 CameraX、用 AGP 9 的新方式配置构建、理解 Navigation 3 和旧版 Navigation Component 的差异、正确配置 ProGuard/R8 规则。这些场景的官方最佳实践一直在变,LLM 的训练数据跟不上。

android/skills 的设计逻辑是:把 developer.android.com 的最新最佳实践打包成 Skill 文件,专门填补 LLM 在这些场景的知识缺口。官方博客的内部数据:使用 Skill 后任务完成速度是不用 Skill 时的 3 倍,token 消耗减少 70% 以上。

你将学到什么

  • 13 个官方 Skill 的覆盖范围:哪些 Android 场景被认为是 LLM 薄弱点
  • 安装和使用:Android CLI 命令 + Android Studio 集成
  • 按需激活架构:Skill 如何在需要时自动加载,不污染上下文
  • 自定义 Skill:用 SKILL.md 格式为团队的特定流程编写私有 Skill
  • 与 Claude Code、Gemini CLI 等多个 Agent 的兼容
  • 配套工具:Android CLI 和 Android Knowledge Base

前置知识

  • Android 应用开发经验(了解 Gradle 构建系统、Jetpack 库)
  • 使用过 Claude Code、Gemini CLI 或类似 AI 编程工具
  • 了解 Agent Skill 的基本概念

项目背景

项目简介

android/skills 是 Google 官方的 Android 开发 AI Skill 仓库,跟随 Android CLI 一同于 2026 年 4 月发布。

Skill 文件是 Markdown 格式(SKILL.md),遵循 agentskills.io 开放标准。每个 Skill 包含:元数据(名称、描述、触发条件)+ 分步骤的执行指令 + 可选的脚本和参考文档。

选题标准很明确:专注于 LLM 评测显示表现薄弱的场景,而不是已经表现良好的领域(比如基础 Compose 组件)。这解释了为什么 Skill 列表里没有"写一个 Button",但有"从 Camera1 迁移到 CameraX"。

作者/团队介绍

项目数据

  • ⭐ GitHub Stars: 5,900+
  • 🍴 Forks: 328+
  • 📦 Releases: 14 个
  • 📄 License: Apache-2.0

13 个官方 Skill

类别 Skill 解决的问题
Build AGP 9 升级 AGP 9 的重大变更和迁移路径
Camera Camera1 → CameraX 相机 API 迁移最佳实践
Device AI App Functions 设备端 AI 功能集成
Dev Tools Android CLI Android CLI 本身的使用方式
Identity Verified Email 邮箱验证实现流程
UI Jetpack Compose Compose 薄弱场景的最佳实践
Navigation Navigation 3 Nav3 设置和从旧版迁移
Performance R8 Analyzer R8 配置审查和优化
Security Android Intent Security Intent 安全性最佳实践
System Edge-to-Edge 现代化 UI 的边到边适配
Testing Testing Setup 测试基础设施配置
Wear Wear Compose M3 Wear OS 的 M3 组件
XR 眼镜显示(Compose Glimmer) XR 设备上的 Compose

几个值得关注的 Skill:

R8 Analyzer:ProGuard/R8 规则是 Android 构建里最难调的部分之一。LLM 通常给出通用的 R8 规则建议,但缺乏对具体场景(反射、第三方库混淆)的精确判断。这个 Skill 把 R8 配置分析的完整流程编码进来。

AGP 9 升级:AGP 每个大版本都有不兼容变更。AGP 9 引入了若干 API 废弃和新的构建行为,训练数据里几乎没有覆盖。Skill 提供当前最新的升级路径。

Camera1 → CameraX:Camera1 API 已经废弃多年,但大量老项目还在用。迁移路径有细节,比如 Camera2 和 CameraX 的适配器层,LLM 处理得不够好。

Navigation 3:Navigation 3 和旧版 Navigation Component 在架构上有根本性差异,不只是 API 变化。Skill 包含设计决策和迁移指引。


主要功能

安装方式

方式一:Android CLI(推荐)

# 列出所有可用 Skill
android skills list

# 安装单个 Skill
android skills add --skill=r8-analyzer --project=.

# 安装所有 Skill(安装到检测到的所有 Agent)
android skills add --all

# 指定目标 Agent
android skills add --skill=navigation-3 --agent=claude-code,gemini-cli

如果没有检测到现有 Agent 配置,默认安装到 ~/.gemini/antigravity/skills

安装位置(按 Agent):

  • Claude Code:~/.claude/skills/
  • Gemini CLI:~/.gemini/skills/
  • Android Studio:.skills/.agent/skills/(项目根目录)

方式二:Android Studio

  1. 从 GitHub 仓库下载 Skill 目录
  2. 在 Android Studio → Gemini → Skills 里导入
  3. 或者直接把 Skill 目录放到项目根目录的 .skills/

使用方式

自动激活

安装后,当 AI Agent 检测到提示词匹配某个 Skill 的描述时,自动加载对应 Skill。

你对 Claude Code 说:"把这个 Activity 的 UI 改成 Edge-to-Edge"
        ↓
Agent 检测到"edge-to-edge"关键词,与 Skill 描述匹配
        ↓
自动加载 Edge-to-Edge Skill(SKILL.md + 相关资源)
        ↓
用 Skill 里的步骤指引执行任务

手动调用(Android Studio)

在 Gemini 对话框里输入 @skill-name 直接触发对应 Skill:

@edge-to-edge 帮我更新这个 Activity 的 WindowInsets 处理

按需加载架构

Skill 不是一次性全部加载进 Context Window,而是按需读取:

请求进来
    ↓
Agent 先读所有 Skill 的元数据(描述字段,轻量)
    ↓
匹配到相关 Skill
    ↓
把完整的 SKILL.md + 附属资源加载进 Context Window
    ↓
执行任务

没有匹配的 Skill:什么都不加载,Context Window 不受影响

这个设计避免了"把所有 Skill 都塞进 System Prompt"的低效做法——只在需要时、只加载相关的知识。


项目详细剖析

SKILL.md 格式

官方 Skill 和自定义 Skill 用同一个格式:

---
name: r8-analyzer              # 最长 64 字符,小写字母和连字符
description: >                 # 最长 1024 字符,这是 Agent 用来匹配的关键
  当用户需要分析或优化 Android 应用的 R8/ProGuard 配置时使用此 Skill。
  适用场景:调试混淆问题、减小 APK 体积、修复运行时崩溃。
metadata:
  author: android
  version: "1.0"
---

## Skill 指令

(这里是 Markdown 格式的详细步骤,建议 10,000-20,000 字符)

### 第一步:分析现有配置
...

如需运行辅助脚本:`scripts/analyze_rules.py`
参考文档:见 `references/r8-guide.md`

description 字段是关键:这 1024 个字符决定 Agent 在什么情况下会激活这个 Skill。写得太宽泛(“用于 Android 开发”)会误触,写得太窄又会漏掉该触发的场景。

自定义 Skill:为团队编写私有 Skill

这是 android/skills 里最被低估的功能:任何团队都可以用同样的格式写自己的 Skill。

典型应用场景

你的团队有一套标准的模块结构规范
→ 把这套规范写成一个 SKILL.md
→ 放到项目 .skills/ 目录里
→ 每次 AI 帮你创建新模块时,自动遵守这套规范

目录结构示例

project-root/
└── .skills/
    ├── team-module-template/
    │   ├── SKILL.md            # 必须有
    │   ├── scripts/
    │   │   └── create_module.sh
    │   └── references/
    │       └── architecture-guide.md
    ├── internal-api-patterns/
    │   └── SKILL.md
    └── ci-setup/
        └── SKILL.md

这些私有 Skill 只在当前项目目录里生效,不影响其他项目。

注意:如果你修改了官方 Skill,先重命名再修改——android skills add 更新时会覆盖同名 Skill。

配套工具

android/skills 是一个三件套里的一部分:

Android CLI

android sdk install         # 只下载需要的 SDK 组件
android create              # 用官方模板创建项目
android emulator            # 管理虚拟设备
android run                 # 构建和部署应用
android skills              # 管理 Skill
android docs                # 访问知识库

CLI 的设计目标是让 AI Agent 用标准化命令操作 Android 工具链,减少因环境差异导致的命令失败(比如 ./gradlew assembleDebug 在不同环境下的路径差异)。

Android Knowledge Base

  • 持续同步 developer.android.com、Firebase 文档、Kotlin 文档
  • 解决 LLM 训练数据陈旧的问题
  • 通过 android docs 命令访问

与 Claude Code 集成

android/skills 和 Claude Code 完全兼容。安装后:

android skills add --all --agent=claude-code

Skill 文件安装到 ~/.claude/skills/ 后,Claude Code 在处理 Android 任务时会自动检测并加载相关 Skill。


项目地址与资源

官方资源


总结

android/skills 的价值不只是"13 个 Skill 文件",而是 Google 官方对两个问题的公开回答:哪些 Android 开发场景是 LLM 的弱点,以及如何用结构化的 Skill 文件来填补这些弱点。

"专注于 LLM 评测表现薄弱的场景"这个设计原则值得学习。它解释了为什么这些 Skill 有实际价值——它们不是对 LLM 已经掌握的知识的重复,而是对知识缺口的精准填补。

自定义 Skill 的开放格式意味着任何团队都可以用同样的机制把内部架构规范、代码风格约定、常见操作流程编码成 AI 可执行的 Skill,而不是每次都在 System Prompt 里重复粘贴。

对 Android 开发者来说,这是目前最直接有效的 AI 工具链升级方案之一——官方维护、持续更新、多 Agent 兼容。


探索 PrimeSkills —— 精选 AI Agent 与技能的市场,每一个都经过真实企业工作流验证,去掉浮夸,留下真正有用的。

欢迎访问我的个人主页,发现更多有价值的见解和有趣的产品。

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐