DEV Community

Cover image for Open Source Project of the Day (#106): android/skills — Google's Official AI Skill Library for Android Development
WonderLab
WonderLab

Posted on

Open Source Project of the Day (#106): android/skills — Google's Official AI Skill Library for Android Development

Introduction

"Android Skills cover the workflows where LLMs underperform — not the areas they've already mastered."

This is article #106 in the Open Source Project of the Day series. Today's project is android/skills — Google Android team's official AI skill library.

LLMs are already competent at a lot of Android code. Standard RecyclerViews, basic Jetpack Compose layouts, simple network calls — these appear extensively in training data and models handle them reasonably well.

The hard parts are different: the areas of the Android framework that keep evolving — migrating from Camera1 to CameraX, configuring builds with AGP 9's new approach, understanding the architectural differences between Navigation 3 and the old Navigation Component, correctly configuring ProGuard/R8 rules. Official best practices shift constantly in these areas, and LLM training data doesn't keep up.

android/skills packages developer.android.com's current best practices as Skill files specifically to fill those knowledge gaps. Google's internal data from the launch blog: tasks completed 3× faster compared to agents working without skills, and token consumption reduced by more than 70%.

What You'll Learn

  • What all 13 official skills cover — which Android scenarios Google identifies as LLM weak spots
  • Installation and usage: Android CLI commands + Android Studio integration
  • On-demand loading architecture: how skills activate automatically without polluting the context window
  • Writing custom skills: encoding your team's workflows into private SKILL.md files
  • Compatibility with Claude Code, Gemini CLI, Codex, and others
  • The companion tools: Android CLI and Android Knowledge Base

Prerequisites

  • Android development experience (familiarity with Gradle build system, Jetpack libraries)
  • Experience with Claude Code, Gemini CLI, or a similar AI coding tool
  • Basic familiarity with the agent skills concept

Project Background

What Is android/skills?

android/skills is Google's official Android development AI skill repository, released alongside Android CLI in April 2026.

Skill files are Markdown format (SKILL.md) following the agentskills.io open standard. Each skill contains: metadata (name, description, trigger conditions) + step-by-step execution instructions + optional scripts and reference documentation.

The selection criterion is explicit: focus on scenarios where LLM evaluations show underperformance, not areas where models already do well (like basic Compose components). That explains why the skill list doesn't include "write a Button" but does include "migrate from Camera1 to CameraX."

Author / Team

Project Stats

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

All 13 Official Skills

Category Skill Problem It Addresses
Build AGP 9 Upgrade Breaking changes and migration path for AGP 9
Camera Camera1 → CameraX Camera API migration best practices
Device AI App Functions On-device AI feature integration
Dev Tools Android CLI Using Android CLI itself
Identity Verified Email Email verification implementation
UI Jetpack Compose Best practices for Compose weak spots
Navigation Navigation 3 Nav3 setup and migration from old Nav
Performance R8 Analyzer R8 configuration audit and optimization
Security Android Intent Security Intent security best practices
System Edge-to-Edge Modern edge-to-edge UI implementation
Testing Testing Setup Test infrastructure configuration
Wear Wear Compose M3 M3 components for Wear OS
XR Display Glasses (Compose Glimmer) Compose for XR devices

A few worth highlighting:

R8 Analyzer: ProGuard/R8 rules are among the most difficult parts of an Android build to tune. LLMs typically give generic R8 rule suggestions without precision for specific scenarios (reflection, third-party library obfuscation). This skill encodes the complete R8 configuration analysis workflow.

AGP 9 Upgrade: Every major AGP version introduces breaking changes. AGP 9 includes deprecated APIs and new build behavior that exists in almost no training data. The skill provides the current up-to-date upgrade path.

Camera1 → CameraX: Camera1 API has been deprecated for years, but many older projects still use it. The migration path has details — like the Camera2 to CameraX adapter layer — that LLMs handle poorly.

Navigation 3: Navigation 3 and the old Navigation Component differ architecturally, not just at the API level. The skill includes design decisions and migration guidance.


Core Features

Installation

Method 1: Android CLI (recommended)

# List all available skills
android skills list

# Install a single skill
android skills add --skill=r8-analyzer --project=.

# Install all skills (across all detected agents)
android skills add --all

# Target specific agents
android skills add --skill=navigation-3 --agent=claude-code,gemini-cli
Enter fullscreen mode Exit fullscreen mode

If no existing agent configuration is detected, skills install to ~/.gemini/antigravity/skills by default.

Install locations by agent:

  • Claude Code: ~/.claude/skills/
  • Gemini CLI: ~/.gemini/skills/
  • Android Studio: .skills/ or .agent/skills/ at project root

Method 2: Android Studio

  1. Download the skill directory from GitHub
  2. Import via Android Studio → Gemini → Skills
  3. Or place the skill directory directly under .skills/ in project root

Usage

Automatic activation:

Once installed, when an AI agent detects that a prompt matches a skill's description, the skill loads automatically.

You say to Claude Code: "Update this Activity to support edge-to-edge UI"
        ↓
Agent detects "edge-to-edge" context, matches skill description
        ↓
Edge-to-Edge skill loaded (SKILL.md + associated resources)
        ↓
Task executed using the skill's step-by-step guidance
Enter fullscreen mode Exit fullscreen mode

Manual invocation (Android Studio):

Type @skill-name in the Gemini chat to trigger directly:

@edge-to-edge Help me update the WindowInsets handling in this Activity
Enter fullscreen mode Exit fullscreen mode

On-Demand Loading Architecture

Skills aren't all loaded into the context window upfront — they're pulled on demand:

Request arrives
    ↓
Agent reads all skill metadata (description fields — lightweight)
    ↓
Relevant skill identified via description matching
    ↓
Full SKILL.md + attached resources loaded into context window
    ↓
Task executes with complete expert context

No matching skill: nothing loaded, context window unaffected
Enter fullscreen mode Exit fullscreen mode

This avoids the inefficient pattern of "stuff all skills into the system prompt" — only relevant knowledge loads, only when it's needed.


Deep Dive

SKILL.md Format

Both official and custom skills use the same format:

---
name: r8-analyzer              # max 64 chars, lowercase and hyphens only
description: >                 # max 1024 chars — this is what agents use to match
  Use this skill when the user needs to analyze or optimize an Android
  app's R8/ProGuard configuration. Applicable when debugging obfuscation
  issues, reducing APK size, or fixing runtime crashes after enabling R8.
metadata:
  author: android
  version: "1.0"
---

## Skill Instructions

(Markdown step-by-step instructions here, target 10,000–20,000 characters)

### Step 1: Analyze existing configuration
...

To run a helper script: `scripts/analyze_rules.py`
Reference docs: See `references/r8-guide.md`
Enter fullscreen mode Exit fullscreen mode

The description field is critical: these 1024 characters determine when an agent activates this skill. Too broad ("for Android development") causes false triggers; too narrow misses legitimate activation points. Writing good descriptions is where skill quality lives.

Custom Skills: Encoding Your Team's Patterns

This is the most underappreciated capability in android/skills: any team can write their own skills in the same format.

Typical use cases:

Your team has a standard module structure convention
→ Write that convention as a SKILL.md
→ Place it in the project's .skills/ directory
→ Every time AI creates a new module, it follows your convention automatically
Enter fullscreen mode Exit fullscreen mode

Directory structure:

project-root/
└── .skills/
    ├── team-module-template/
    │   ├── SKILL.md            # Required, case-sensitive
    │   ├── scripts/
    │   │   └── create_module.sh
    │   └── references/
    │       └── architecture-guide.md
    ├── internal-api-patterns/
    │   └── SKILL.md
    └── ci-setup/
        └── SKILL.md
Enter fullscreen mode Exit fullscreen mode

These private skills are scoped to the project directory — they don't affect other projects.

Important: If you modify an official skill, rename it first before modifying — android skills add will overwrite skills with matching names on update.

The Companion Toolchain

android/skills is part of a three-component release:

Android CLI:

android sdk install         # Download only the SDK components you need
android create              # Create projects from official templates
android emulator            # Manage virtual devices
android run                 # Build and deploy apps
android skills              # Manage skills
android docs                # Access the Knowledge Base
Enter fullscreen mode Exit fullscreen mode

The CLI's purpose: let AI agents operate the Android toolchain through standardized commands, reducing failures caused by environment differences (for example, ./gradlew assembleDebug path variations across environments).

Android Knowledge Base:

  • Continuously syncs developer.android.com, Firebase docs, Kotlin docs
  • Addresses the LLM training data staleness problem
  • Accessed through the android docs command

Claude Code Integration

android/skills is fully compatible with Claude Code. After installing:

android skills add --all --agent=claude-code
Enter fullscreen mode Exit fullscreen mode

With skill files in ~/.claude/skills/, Claude Code automatically detects and loads relevant skills when handling Android tasks — no additional configuration needed.


Links and Resources

Official Resources


Conclusion

android/skills' value isn't just "13 skill files." It's Google's public answer to two questions: which Android development scenarios are genuine LLM weak spots, and how to fill those gaps with structured skill files that agents can execute.

"Focus on areas where LLM evaluations show underperformance" is a principle worth studying. It explains why these skills have practical value — they're not redundant with what LLMs already know; they're targeted at specific knowledge gaps.

The open custom skill format means any team can apply the same mechanism to internal architecture conventions, code style guidelines, and common operational workflows — encoding them as AI-executable skills instead of repeatedly pasting them into system prompts.

For Android developers, this is one of the most direct AI toolchain upgrades currently available — Google-maintained, continuously updated, compatible with multiple agents.


Explore PrimeSkills — A marketplace for handpicked AI Agents and skills. Each is validated in real enterprise workflows, stripping away hype and keeping only what truly works.

Welcome to my Homepage for more useful insights and interesting products.

Top comments (0)