252 lines
10 KiB
Markdown
252 lines
10 KiB
Markdown
---
|
|
name: android-cli
|
|
description: Orchestrates Android development tasks including project creation, deployment, SDK management, and environment diagnostics using the `android` command-line tool.
|
|
category: tools
|
|
risk: critical
|
|
source: self
|
|
source_type: self
|
|
date_added: "2026-06-15"
|
|
author: Owais
|
|
tags: [android, cli, adb, mobile, build, emulator]
|
|
tools: [claude, cursor, gemini, antigravity]
|
|
plugin:
|
|
targets:
|
|
codex: blocked
|
|
claude: blocked
|
|
setup:
|
|
type: manual
|
|
summary: "Installer guidance executes remote Android CLI setup scripts; keep out of plugin-safe bundles."
|
|
docs: SKILL.md
|
|
---
|
|
|
|
# Android CLI Specialist
|
|
|
|
This skill provides instructions for using the `android` CLI tool. The tool includes various commands for creating projects, running applications, interacting with devices, and managing the CLI environment.
|
|
|
|
## When to Use
|
|
|
|
- Use when you need to create, configure, or analyze Android projects from the command line.
|
|
- Use when interacting with, deploying to, or taking screenshots of running Android devices.
|
|
- Use when managing Android SDK components, versions, or virtual devices (emulators).
|
|
- Use when inspecting UI layouts or running XML-specified journey tests.
|
|
|
|
## Installation
|
|
|
|
If the `android` tool is not in the path, download the platform installer to a private temporary directory, inspect it, then run it only after the user confirms the source and contents:
|
|
|
|
```bash
|
|
tmpdir="$(mktemp -d "${TMPDIR:-/tmp}/android-cli.XXXXXX")" || exit 1
|
|
curl -fsSL https://dl.google.com/android/cli/latest/linux_x86_64/install.sh -o "$tmpdir/install.sh"
|
|
sed -n '1,160p' "$tmpdir/install.sh"
|
|
# After review and explicit user confirmation:
|
|
bash "$tmpdir/install.sh"
|
|
```
|
|
|
|
Use the matching `darwin_arm64/install.sh` or `windows_x86_64/install.cmd` URL for macOS or Windows. Do not pipe mutable network installer scripts directly into a shell.
|
|
|
|
## SDK Management
|
|
|
|
To manage the installation of Android SDKs and tools, use the `sdk` command. For example:
|
|
|
|
- `android sdk install <package>[@<version>]...`: Install specific packages. Multiple packages can be specified, separated by spaces. `<version>` defaults to latest. For example: `android sdk install platforms/android-30@2 platforms/android-34`
|
|
- `android sdk update [<pkg-name>]`: Update a specific package or all packages to the latest version.
|
|
- `android sdk remove <pkg-name>`: Remove a package from the local SDK.
|
|
- `android sdk list --all`: List installed and available SDK packages.
|
|
|
|
## Project Creation
|
|
|
|
Create projects from templates using the `create` command.
|
|
|
|
For example:
|
|
```bash
|
|
android create empty-activity --name="My App" --output=./my-app
|
|
```
|
|
|
|
## Interacting with Devices
|
|
|
|
For more information on interacting with running devices, see [here](references/interact.md).
|
|
|
|
## Running Journey Tests
|
|
|
|
For more information on running journeys, see [here](references/journeys.md).
|
|
|
|
## Doc Searching
|
|
|
|
The `docs` command searches authoritative, high-quality Android developer documentation in the Android Knowledge Base.
|
|
By providing a few keywords, this tool will return high quality articles that contain examples or guidance on how to use Android APIs or libraries.
|
|
Use this tool to obtain additional information on how to achieve Android-specific tasks or to know more about Android APIs, surfaces, libraries, or devices.
|
|
|
|
Always use this tool to get the most up-to-date information about Android concepts. Typical good use cases are:
|
|
- Finding migration guides for APIs.
|
|
- Finding examples for APIs.
|
|
- Finding up-to-date information about Android APIs.
|
|
- Finding best practices for Android concepts.
|
|
|
|
## Running APKs
|
|
|
|
Use the `run` command to run Android apps.
|
|
|
|
## Managing Emulators
|
|
|
|
Manage Android Virtual Devices (AVDs) using the `android emulator` command.
|
|
|
|
## Capturing Screenshots
|
|
|
|
Capture an image of the current screen of a connected Android device and output it to a file using the `android screen capture -o <file path>` command.
|
|
|
|
## Managing Skills
|
|
|
|
Manage antigravity agent skills for Android using the `android skills` command.
|
|
|
|
## Inspecting UI Layouts
|
|
|
|
Use the `android layout` command to inspect the UI layout of an Android application. It returns the layout tree of an Android application in JSON format. When debugging UI errors, this is often a much faster approach than taking a screenshot.
|
|
|
|
## Updating the CLI
|
|
|
|
Update the Android CLI using the `android update` command.
|
|
|
|
## Limitations
|
|
|
|
- The `android` CLI must be installed and available on `PATH`; otherwise install it first or use the platform-specific setup guidance above.
|
|
- Device, emulator, SDK, and documentation commands can depend on local Android SDK state, network access, and attached hardware.
|
|
- Treat generated commands as environment-sensitive: inspect paths, package names, device serials, and install/update targets before running them.
|
|
|
|
## Android Help Output
|
|
|
|
```text
|
|
Usage: android [-hV] [--sdk=PARAM] [COMMAND]
|
|
-h, --help Show this help message and exit.
|
|
--sdk=PARAM Path to the Android SDK
|
|
-V, --version Print version information and exit.
|
|
Commands:
|
|
create Create a new Android project
|
|
describe Analyzes an Android project to generate descriptive metadata.
|
|
docs Android documentation commands
|
|
emulator Emulator commands
|
|
help Shows the help of all commands
|
|
info Print environment information (SDK Location, etc.)
|
|
init Initializes the environment (eg. skills) for Android CLI.
|
|
layout Returns the layout tree of an application
|
|
run Deploy an Android Application
|
|
screen Commands to view the device
|
|
sdk Download and list SDK packages
|
|
skills Manage skills
|
|
update Update the Android CLI
|
|
|
|
create
|
|
Usage: android create [-h] [--verbose] [--list] [--minSdk=api]
|
|
--name=applicationName [-o=dest-path] [template-name]
|
|
Create a new Android project
|
|
[template-name] The template name
|
|
-h, --help Show this help message and exit.
|
|
--minSdk=api The 'minSdk' supported by the application (default
|
|
is defined in the template)
|
|
--name=applicationName
|
|
The name of the application (e.g. 'My Application')
|
|
-o, --output=dest-path The destination project directory path (default is
|
|
'.')
|
|
--verbose Enables verbose output
|
|
--list List all available templates
|
|
|
|
describe
|
|
Usage: android describe [-hV] [--project_dir=PARAM]
|
|
Analyzes an Android project to generate descriptive metadata.
|
|
This command identifies and outputs the paths to JSON files that detail the
|
|
project's structure, including build targets and their corresponding output
|
|
artifact locations (e.g., APKs). This information enables other tools and
|
|
commands to locate build artifacts efficiently.
|
|
-h, --help Show this help message and exit.
|
|
--project_dir=PARAM The project directory to describe
|
|
-V, --version Print version information and exit.
|
|
|
|
docs
|
|
Usage: android docs [-h] [COMMAND]
|
|
Android documentation commands
|
|
-h, --help Show this help message and exit.
|
|
Commands:
|
|
search Search Android documentation
|
|
fetch Fetch Android documentation
|
|
|
|
emulator
|
|
Usage: android emulator [-h] [COMMAND]
|
|
Emulator commands
|
|
-h, --help Show this help message and exit.
|
|
Commands:
|
|
create Creates a virtual device
|
|
start Launches the specified virtual device. This command will return when
|
|
the emulator is fully started and ready to use.
|
|
stop Stops the specified virtual device
|
|
list Lists available virtual devices
|
|
remove Delete a virtual device
|
|
|
|
help
|
|
Usage: android help [COMMAND]
|
|
Shows the help of all commands
|
|
[COMMAND] The command to show help for
|
|
|
|
info
|
|
Usage: android info <field>
|
|
Print environment information (SDK Location, etc.)
|
|
<field> The specific field to print the value of. If omitted print all.
|
|
|
|
init
|
|
Usage: android init
|
|
Initializes the environment (eg. skills) for Android CLI.
|
|
|
|
layout
|
|
Usage: android layout [-dhp] [--device=PARAM] [-o=PARAM]
|
|
Returns the layout tree of an application
|
|
-d, --diff Returns a flat list of the layout elements that have
|
|
changed since the last invocation of ui-dump
|
|
--device=PARAM The device serial number
|
|
-h, --help Show this help message and exit.
|
|
-o, --output=PARAM Writes the layout tree to the specified file or
|
|
directory. If omitted, prints the tree to standard
|
|
output
|
|
-p, --pretty Pretty-prints the returned JSON
|
|
|
|
run
|
|
Usage: android run [-h] [--debug] [--activity=PARAM] [--device=PARAM]
|
|
[--type=PARAM] [--apks=PARAM[,PARAM...]]...
|
|
Deploy an Android Application
|
|
--activity=PARAM The activity name
|
|
--apks=PARAM[,PARAM...]
|
|
The paths to the APKs
|
|
--debug Run in debug mode
|
|
--device=PARAM The device serial number
|
|
-h, --help Show this help message and exit.
|
|
--type=PARAM The component type (ACTIVITY, SERVICE, etc.)
|
|
|
|
screen
|
|
Usage: android screen [-h] [COMMAND]
|
|
Commands to view the device
|
|
-h, --help Show this help message and exit.
|
|
Commands:
|
|
capture Outputs the device screen to a PNG
|
|
resolve Target UI elements visually
|
|
|
|
sdk
|
|
Usage: android sdk [COMMAND]
|
|
Download and list SDK packages
|
|
Commands:
|
|
install Install SDK packages
|
|
update Update one or all packages to the latest version
|
|
remove Remove a package from the SDK
|
|
list List installed and available SDK packages
|
|
|
|
skills
|
|
Usage: android skills [COMMAND]
|
|
Manage skills
|
|
Commands:
|
|
add Install a skill
|
|
remove Remove a skill
|
|
list List available skills
|
|
find Find skills by keyword
|
|
|
|
update
|
|
Usage: android update [--url=PARAM]
|
|
Update the Android CLI
|
|
--url=PARAM The URL to download the update from
|
|
```
|