Android CLI の概要

Android CLI は、任意のツールを使用して Android 向けに簡単に効率よくビルドできるコマンドライン インターフェースです。エージェント ファーストのワークフローのコア開発コンピテンシーを標準化し、より効果的に開発するために必要な公式ツール、スキル、知識へのエントリ ポイントを提供します。また、Android 開発の分散化が進む中で、CI、メンテナンス、その他のスクリプト化された自動化を効率化することもできます。

たとえば、エージェントやスクリプトは CLI を使用して、環境設定の自動化、テンプレートからの新しいプロジェクトの作成、ターミナルからの仮想デバイスの直接管理を行うことができます。また、エージェントは Android スキルと特殊な Android ナレッジベースにアクセスして、プロジェクトで Android 推奨パターンとベスト プラクティスが適用されるようにすることもできます。

Android CLI をインストールする

Android CLI をインストールする手順は次のとおりです。

  1. Android CLI をダウンロードします

  2. 最新バージョンを使用していることを確認するには、Android CLI を更新します。

    android update
    

Android CLI がマシンにすでにインストールされているかどうかを確認するには、which android または command -v android を実行します。パスが返された場合は、インストールされています。

エージェント向けに設定する

エージェントが Android CLI を理解して使用できるようにするには、init を実行して android-cli スキルをインストールします。

android init

既知の問題

  • Windows の android emulator コマンドは現在無効になっています。

グローバル オプション

これらは、他の Android CLI コマンドで使用できるオプションのフラグです。

-h, --help

使用方法: android <command> -h

説明: 問題のツールまたは特定のコマンドのヘルプ マニュアルを表示します。

例:

  • android -h
  • android create -h

--sdk

使用方法: android --sdk=<path-to-sdk> <command>

説明: 後続のコマンドで使用する Android SDK へのパス。--sdk 設定を使用すると、切り替えるたびにグローバル環境変数を変更する代わりに、デフォルトの Android SDK を一時的にオーバーライドできます。デフォルトで使用している Android SDK を確認するには、android info を実行します。

例: android --sdk=<path/to/sdk> sdk list

コマンド

このセクションでは、すべての Android CLI コマンドを一覧表示し、その機能について説明します。これらのコマンドはすべて android で始まる必要があります(例: android createandroid run など)。省略可能な修飾子は角かっこ [] で囲み、必須の引数は囲みません。

create

使用方法: android create [--dry-run] [--verbose] [--name=<application-name>] [--output=<dest-path>] [<template-name>]

説明: テンプレートから新しいプロジェクトを初期化します。テンプレート オプションを表示するには、android create -h を実行します。

引数(必須):

  • -o, --output - 宛先プロジェクト ディレクトリのパス。

オプション:

  • --dry-run - 実際にファイルを保存せずに、プロジェクト作成プロセス全体をシミュレートします。たとえば、ドライランを実行して、さまざまなテンプレートの動作を確認してから、1 つのテンプレートを commit できます。
  • --verbose - テンプレートからコピーされるファイルなどの情報を含む詳細な出力を有効にします。
  • --name=<application-name> - プロジェクト ディレクトリの名前。省略すると、出力ディレクトリが使用されます。
  • <template-name> - 新しいプロジェクトの作成元となるテンプレートの名前。省略した場合、empty-activity-agp-9 が使用されます。

例: android create --dry-run --verbose empty-activity-agp-9

create list

使用方法: android create list

説明: 新しいプロジェクトの作成に使用できるすべてのテンプレートを一覧表示します。

describe

使用方法: android describe [--project_dir=<project-directory>]

説明: Android プロジェクトを分析して、説明的なメタデータを生成します。このコマンドは、ビルド ターゲットとそれに対応する出力アーティファクトの場所(APK ファイルなど)を含む、プロジェクトの構造を詳細に記述した JSON ファイルのパスを特定して出力します。この情報により、他のツールやコマンドはビルド アーティファクトを効率的に見つけることができます。

オプション:

  • --project_dir - 説明するプロジェクト ディレクトリ。省略すると、現在のディレクトリが使用されます。

例: android describe --project_dir=/path/to/your/project

docs

使用方法:

  • android docs search <query>
  • android docs fetch <kb-url>

説明: android docs コマンドは、CLI から Android ナレッジベースに直接アクセスするための 2 段階のプロセスです。まず、search コマンドを使用して、クエリに関連するドキュメントを検索します。検索結果には kb:// で始まる特別な URL が含まれます。この URL を fetch コマンドで使用して、ドキュメント コマンドをターミナルに出力できます。

例:

  • android docs search 'How do I improve my app performance?'
  • android docs fetch kb://android/topic/performance/overview

emulator create

使用方法: android emulator create [--list-profiles] [--profile=<profile-name>]

説明: 仮想デバイスを作成します。

オプション:

  • --list-profiles - デバイスの作成に使用できるデバイス プロファイルを一覧表示します。
  • --profile=<profile-name> - 指定されたプロファイルでデバイスを作成します。省略すると、medium_phone プロファイルが作成されます。

emulator list

使用方法: android emulator list

説明: 使用可能な仮想デバイスのリストを取得します。

emulator start

使用方法: android emulator start <device-name>

説明: 指定された仮想デバイスを起動します。

引数(必須):

  • <device-name> - 起動するデバイス名(例: medium_phone)。利用可能なデバイスを確認するには、android emulator list を使用します。

例: android emulator start medium_phone

emulator stop

使用方法: android emulator stop <device-serial-number>

説明: 指定された仮想デバイスを停止します。

引数(必須):

  • <device-serial-number> - 停止するデバイスのシリアル番号。

例: android emulator stop emulator-5554

info

使用方法: android info

説明: 使用されているデフォルトの Android SDK のパスを表示します。使用する Android SDK を変更するには、--sdk を使用します。

init

使用方法: android init

説明: android-cli スキルをインストールして、エージェントの環境を設定します。

layout

使用方法: android layout [--pretty] [--output] [--diff]

説明: アクティブな Android アプリ(実機またはエミュレータ経由で接続)の UI レイアウトを JSON 形式で返します。

オプション:

  • -p, --pretty - 人間が読みやすいように、インデントと改行を使用して JSON 出力をフォーマットします。
  • -o, --output - レイアウト ツリーを保存するファイルの場所を指定します。省略すると、JSON は stdout に直接出力されます。
  • -d, --diff - レイアウト ツリー全体ではなく、前回の内部スナップショットの取得以降(レイアウトが最後に実行されたとき)に変更されたレイアウト要素のみのリストを返します。

例: android layout --output=./hierarchy.json

skills add

Android スキルは、Android 開発に関するベスト プラクティスとガイダンスに沿った特定のパターンをエージェントがよりよく理解し、実行できるように設計された特別な手順です。詳しくは、Android スキルの概要をご覧ください。

使用方法: android skills add [--all] [--agent=<agent-name>] [--skill=<skill-name>]

説明: 検出されたすべてのエージェントのスキル ディレクトリに Android スキルをインストールします。既存のエージェント ディレクトリがなく、特定のエージェントを指定しない場合、スキルは ~/.gemini/antigravity/skills の Gemini と Antigravity にインストールされます。

オプション:

  • --all - すべての Android スキルを一度に追加します。省略した場合(--skill が指定されていない場合)、android-cli スキルのみがインストールされます。
  • --agent - スキルをインストールするエージェントのカンマ区切りのリスト。省略すると、検出されたすべてのエージェントにスキルがインストールされます。
  • --skill - インストールするスキルの名前。省略した場合(--all が指定されていない場合)、android-cli スキルのみがインストールされます。

例: android skills add --agent='gemini' edge-to-edge

skills find

使用方法: android skills find <string>

説明: 特定の文字列に一致するスキルを検索します。

引数(必須):

  • string - スキルの説明と一致する文字列。

例: android skills find 'performance'

skills list

使用方法: android skills list [--long]

説明: 利用可能なスキルを一覧表示します。

オプション:

  • --long - スキルの説明や、すでにインストールされているエージェントなど、各スキルに関する追加情報を出力します。

skills remove

使用方法: android skills remove [--agent] --skill=<skill-name>

説明: スキルを削除します。特定のエージェントを指定しない場合、すべてのエージェントのスキルが削除されます。

引数(必須):

  • --skill - 削除するスキルの名前。

オプション:

  • --agent - スキルを削除するエージェントのカンマ区切りのリスト。省略すると、すべてのエージェントのスキルが削除されます。

例: android skills remove --agent='gemini' --skill=edge-to-edge

screen capture

使用方法: android screen capture [--output] [--annotate]

説明: 接続されたデバイスのスクリーンショットをキャプチャします。

オプション:

  • -o, --output - スクリーンショットを保存するファイルの場所を指定します。省略すると、未加工の PNG データが stdout に直接出力されます。
  • -a, --annotate - resolve コマンドで使用するために、画像内で検出されたすべての UI 要素の周りにラベル付きの境界ボックスを描画します。

例: android screen capture --output=ui.png

screen resolve

使用方法: android screen resolve --screenshot=<path> --string=<string>

説明: screen capture を使用してキャプチャされたアノテーション付きスクリーンショットの視覚ラベルを、実際の画面座標(x、y)に変換します。要素の位置を手動で計算しなくても、要素のクリックをスクリプト化する場合に便利です。

フラグ:

  • --screenshot - 注釈付きスクリーンショットのパス。
  • --string - #<number> 形式の UI 要素ラベルに対応するプレースホルダを 1 つ以上含む文字列。#<number> の部分は、画面座標に置き換えられます。

例:

ラベル 5 が座標(500, 1000)にある場合、コマンド

android screen resolve --screenshot=ui.png --string="input tap #5"

出力を返します

input tap 500 1000

sdk install

使用方法: android sdk install <package[@version]> [--beta] [--canary] [--force]

説明: 指定された SDK パッケージをインストールします。

引数(必須):

  • package[@version] - インストールするパッケージのスペース区切りリスト。バージョンが指定されていない場合は、チャンネル(デフォルトでは安定版チャンネル)の最新バージョンのパッケージがインストールされます。

オプション:

  • --beta - ベータ版パッケージを含めます。
  • --canary - カナリア パッケージを含めます。
  • --force - 古いバージョンへのダウングレードを強制します。

例:

  • android sdk install platforms/android-34 build-tools/34.0.0 - 安定版チャンネルから Android SDK Platform 34 と SDK Built Tools 34.0.0 パッケージの最新バージョンをインストールします。
  • android sdk install platforms/android-34@2 - Android SDK Platform 34 パッケージのバージョン 2 をインストールします。
  • android sdk install --canary system-images/android-35/google_apis/x86_6 - カナリア チャンネルから Android 35 システム イメージの最新バージョンをインストールします。
  • android sdk install --force platforms/android-33@1 - 安定版チャンネルの Android SDK Platform 33 パッケージのバージョン 1 に戻します。

sdk list

使用方法: android sdk list <package-pattern>

説明: インストール済みで利用可能な SDK パッケージのリストを表示します。

引数(必須):

  • <package-pattern> - パターンでパッケージをフィルタします。正規表現をサポートします。

オプション:

  • --all - インストール済みで利用可能なパッケージをすべて表示します。
  • --all-versions - 各パッケージのすべてのバージョンを表示します。
  • --beta - ベータ版パッケージを含めます。
  • --canary - カナリア パッケージを含めます。

sdk remove

使用方法: android sdk remove <package-name>

説明: SDK からパッケージを削除します。

引数(必須):

  • <package-name> - 削除するパッケージの名前。

例: android sdk remove build-tools/36.1.0

run

使用方法: android run [--debug] [--activity=<activity-name>] [--device=<serial-number>] [--type=<param>] --apks=<apk-paths>

説明: 接続されているデバイスまたはエミュレータに Android アプリをデプロイします。ビルドステップは実行されません。インストールする APK ファイルのパスを指定する必要があります。

引数(必須):

  • --apks - インストールする APK ファイルのパスのカンマ区切りのリスト。パスは、ファイル システム内の現在の場所を基準とする相対パスです。

オプション:

  • --activity - APK のインストール後に起動するアクティビティの名前。複数のアクティビティがある場合は、最初に起動するアクティビティを 1 つ指定する必要があります。
  • --debug - デバッグモードでアプリをデプロイします。デバッグモードでアプリを実行したら、Android Studio などの IDE またはコマンドライン ツールからデバッガを接続して、デバッグを開始する必要があります。
  • --device - 対象デバイスまたはエミュレータのシリアル番号。複数のデバイスが接続されている場合のみ必要です。デバイスのシリアル番号を確認するには、adb devices を実行します。
  • --type - 起動するコンポーネント タイプ。UI アクティビティではなく、バックグラウンド サービスを直接開始する場合に使用します。サポートされているタイプ:
    • ACTIVITY
    • WATCH_FACE
    • TILE
    • COMPLICATION
    • DECLARATIVE_WATCH_FACE

例:

  • android run --apks=app/build/outputs/apk/debug/app-debug.apk - 単一の APK をデフォルトのデバイスにデプロイします。
  • android run --apks=base.apk,density-hdpi.apk,lang-en.apk - 複数の APK をデフォルトのデバイスにデプロイします。
  • android run --apks=app-debug.apk --type=SERVICE --activity=.sync.DataSyncService - アクティビティなしでサービスをテストします。
  • android run --apks=app-debug.apk --device=emulator-5554 - 特定のデバイスに APK をデプロイします。

sdk update

使用方法: android sdk update [--beta] [--canary] [<package-name>]

説明: チャンネル(デフォルトは安定版チャンネル)の 1 つまたはすべてのパッケージを最新バージョンに更新します。パッケージを指定しない場合、すべてのパッケージが更新されます。

オプション:

  • <package-name> - 更新するパッケージの名前。
  • --beta - ベータ版パッケージを含めます。
  • --canary - カナリア パッケージを含めます。
  • --force - 古いバージョンへのダウングレードを強制します。

例:

  • android sdk update - SDK のすべての更新を確認してインストールします。
  • android sdk update build-tools/34.0.0 - Android SDK Build Tools 34.0.0 パッケージを安定版チャンネルの最新バージョンに更新。
  • android sdk update --canary platforms/android-35 - Android SDK プラットフォーム 35 パッケージをカナリア チャンネルの最新バージョンに更新します。

update

使用方法: android update

説明: Android CLI を更新します。

-V, --version

説明: Android CLI の現在のバージョンを表示します。