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
- Team: Google Android Developer Relations
- License: Apache-2.0
- Version: v1.0.2 (June 2026)
- Docs: developer.android.com/tools/agents/android-skills
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
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
- Download the skill directory from GitHub
- Import via Android Studio → Gemini → Skills
- 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
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
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
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`
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
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
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
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 docscommand
Claude Code Integration
android/skills is fully compatible with Claude Code. After installing:
android skills add --all --agent=claude-code
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
- 🌟 GitHub: android/skills
- 📖 Docs: developer.android.com/tools/agents/android-skills
- 🛠 Android CLI: developer.android.com/tools/agents/android-cli
- 🏗 Android Studio integration: developer.android.com/studio/gemini/skills
- 🌐 Agent Skills standard: agentskills.io
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)