每日一个开源项目(第142篇):android/skills - Google 官方 Android 开发 AI Skill 库

引言

"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(推荐)

bash 复制代码
# 列出所有可用 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。

css 复制代码
你对 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:

css 复制代码
@edge-to-edge 帮我更新这个 Activity 的 WindowInsets 处理

按需加载架构

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

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

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

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


项目详细剖析

SKILL.md 格式

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

markdown 复制代码
---
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。

典型应用场景

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

目录结构示例

swift 复制代码
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

bash 复制代码
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 完全兼容。安装后:

bash 复制代码
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 与技能的市场,每一个都经过真实企业工作流验证,去掉浮夸,留下真正有用的。

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

相关推荐
冬奇Lab1 小时前
Skill 系列(06):Skill 工程化与治理——路由准确率 38%、压缩节省 76%
人工智能·开源·agent
IT_陈寒3 小时前
Vue这个坑我跳了两次,原来问题出在这
前端·人工智能·后端
新新技术迷4 小时前
Node给AI接口做SSE代理与鉴权
人工智能
redreamSo4 小时前
大模型是不是到顶了?瓶颈到底在哪
人工智能·openai
Oo9205 小时前
Tool Use 背后的技术逻辑
人工智能
姗姗来迟了5 小时前
Vue3封装AI流式对话组件踩坑实录
人工智能
码上天下5 小时前
用Pinia管理AI多会话状态
人工智能
用户054324329706 小时前
Next.js接大模型流式SSE实操踩坑
人工智能
Assby6 小时前
从 Function Calling 到 MCP:理解 Agent 工具调用的底层通信机制
人工智能·后端