Expert in `android sdk install/list/remove/update` — channels, version pinning, reproducible team & CI SDK setups. Use when using Android CLI tools for android sdk mgmt.
Installs into .claude/skills of the current project.
Are you the author of Android Sdk Mgmt Expert?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/anubhavg-icpl-android-sdk-mgmt-expert)
---
name: android-sdk-mgmt-expert
description: Expert in `android sdk install/list/remove/update` — channels, version pinning, reproducible team & CI SDK setups. Use when using Android CLI tools for android sdk mgmt.
license: CC-BY-NC-SA-4.0
metadata:
risk: unknown
source: community
kind: mode
category: android-cli
tags: [android, android-cli, sdk, sdkmanager, ci, reproducibility, 2026]
---
# Android SDK Management Expert Mode
You are an expert in **`android sdk`**, the package manager that replaces the historical `sdkmanager` for agent-driven workflows. You install only what is needed (lean environments), pin versions, and produce reproducible SDK setups across developers and CI.
## Core Capabilities
### Subcommand shape
```text
android sdk install <package[@version]>... [--beta] [--canary] [--force]
android sdk list [<package-pattern>] [--all] [--all-versions] [--beta] [--canary]
android sdk remove <package-name>
android sdk update [<package-name>] [--beta] [--canary]
```
### Channels
By default `sdk install/list/update` operate on the **stable** channel. Add:
- `--beta` to include beta packages.
- `--canary` to include canary packages.
Channels stack: `--beta --canary` shows both.
### Version pinning
Every install accepts `package@version`:
```bash
android sdk install platforms/android-34@2 # exact revision 2 of API 34
android sdk install build-tools/34.0.0 # latest of that build-tools line
```
This is the centerpiece of reproducibility: a `setup.sh` that pins every package by revision is the foundation for byte-identical CI builds.
### Force downgrades
`--force` is required to install an older revision over a newer one:
```bash
android sdk install --force platforms/android-33@1
```
> Risk: an active project may hard-depend on a feature added in the newer revision. Downgrade behind a feature branch, not on `main`.
### Listing patterns
```bash
android sdk list # installed only
android sdk list --all # installed + available
android sdk list 'platforms/android-3.*' --all # regex filter
android sdk list --all-versions build-tools # show every version
android sdk list --canary system-images # canary system images
```
## Workflow
### Reproducible team SDK in 4 commands
```bash
# 1. Pin the SDK location once via .androidrc (see android-cli-expert-mode)
echo '--sdk=/opt/android-sdk' >> ~/.androidrc
# 2. Install exactly what's needed
android sdk install \
platforms/android-34@2 \
build-tools/34.0.0 \
platform-tools \
system-images/android-34/google_apis/x86_64
# 3. Verify
android sdk list
# 4. Snapshot for CI (treat /opt/android-sdk as cacheable artifact)
tar -C /opt -czf android-sdk-snapshot.tgz android-sdk
```
### Updating
```bash
android sdk update # all stable packages
android sdk update build-tools/34.0.0 # one package
android sdk update --canary platforms/android-35
```
### Removing cruft
```bash
android sdk list # find old revisions
android sdk remove build-tools/36.1.0 # nuke an unused one
```
## Real Examples
### Minimal "build a debug APK" footprint
```bash
android sdk install \
platforms/android-34 \
build-tools/34.0.0 \
platform-tools
```
That is enough to run `./gradlew assembleDebug` for an AGP 9 project targeting API 34. No emulator images, no NDK, no system-images — keeps a CI runner under ~500MB of SDK.
### Wear OS testing footprint
```bash
android sdk install \
platforms/android-34 \
build-tools/34.0.0 \
platform-tools \
system-images/android-34/android-wear/x86
```
### Pre-flight a canary API
```bash
android sdk install --canary \
platforms/android-35 \
system-images/android-35/google_apis/x86_64
android emulator create --profile=medium_phone # boots against canary image
```
### Reverting a bad upgrade
```bash
android sdk install --force build-tools/33.0.2@1
android sdk list build-tools # verify
```
## Common Pitfalls
- **Forgetting `--force` on a downgrade** silently leaves the newer revision installed — you'll think you reverted but the toolchain still resolves to the newer one.
- **Mixing channels in `.androidrc`.** Do **not** put `--canary` in `.androidrc`. It will quietly poison every list/install with canary packages and make builds non-deterministic across machines.
- **Snapshotting the wrong path.** The SDK lives where `--sdk=` points (or `android info` reports). Snapshot that, not `~/Android/Sdk` blindly.
- **Removing platform-tools to "clean up".** Almost everything (`adb`, `fastboot`) breaks. Keep `platform-tools` installed.
- **CI cache key drift.** Use the package-version list (sorted) as the cache key, not a date. Otherwise a beta promotion silently invalidates your cache fleet-wide.
## When to Use This Mode
Use `android sdk` over the legacy `sdkmanager`:
- Always, for agent-driven flows. `sdkmanager` is a deprecated CLI shape.
- For CI, because version pinning syntax is consistent and channels are explicit.
Prefer Android Studio's SDK Manager GUI when:
- A human wants to browse, hover for descriptions, and tick checkboxes interactively.
## Sources
- Overview of Android CLI (`sdk` section) — https://developer.android.com/tools/agents/android-cli
- Release notes — https://developer.android.com/tools/agents/android-cli/release-notes
- Announcement (lean environments) — https://android-developers.googleblog.com/2026/04/build-android-apps-3x-faster-using-any-agent.html