Обзор интерфейса командной строки Android

Android CLI — это интерфейс командной строки, который позволяет проще и эффективнее собирать приложения для Android, используя любой инструмент по вашему выбору. Он стандартизирует основные компетенции разработчиков для рабочих процессов, ориентированных на агенты, предоставляя точку входа к официальным инструментам, навыкам и знаниям, необходимым для более эффективной разработки. Он также может оптимизировать CI, сопровождение и любую другую автоматизацию на основе скриптов в условиях все более распределенной разработки Android.

Например, агент или скрипт могут использовать 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

Известные проблемы

  • Команда android emulator для Windows в настоящее время отключена.

Глобальные опции

Это необязательные флаги, которые можно использовать с другими командами командной строки Android.

-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 create , android run и так далее. Необязательные модификаторы заключаются в квадратные скобки [] , а обязательные аргументы — нет.

create

Использование: android create [--dry-run] [--verbose] [--name=<application-name>] [--output=<dest-path>] [<template-name>]

Описание: Инициализация нового проекта на основе шаблона. Чтобы просмотреть параметры шаблона, выполните команду android create -h .`.

Аргументы (обязательные):

  • -o, --output - Путь к целевому каталогу проекта.

Параметры:

  • --dry-run - Имитирует весь процесс создания проекта без фактического сохранения каких-либо файлов. Например, вы можете выполнить пробный запуск, чтобы посмотреть, как работают различные шаблоны, прежде чем выбрать один из них.
  • --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 для генерации описательных метаданных. Эта команда определяет и выводит пути к JSON-файлам, подробно описывающим структуру проекта, включая цели сборки и соответствующие места расположения выходных артефактов (например, APK-файлов). Эта информация позволяет другим инструментам и командам эффективно находить артефакты сборки.

Параметры:

  • --project_dir - Каталог проекта для описания. Если опущено, используется текущий каталог.

Пример: android describe --project_dir=/path/to/your/project

docs

Применение:

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

Описание: Команда ` android docs — это двухэтапный процесс доступа к базе знаний Android непосредственно из командной строки. Сначала выполните поиск документации, связанной с вашим запросом, используя команду search . Результаты поиска будут включать специальные URL-адреса, начинающиеся с kb:// , которые затем можно использовать с командой 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 (подключенного через физическое устройство или эмулятор) в формате JSON.

Параметры:

  • -p, --pretty - Форматирует вывод JSON с отступами и переносами строк для удобства чтения человеком.
  • -o, --output - Указывает местоположение файла для сохранения дерева компоновки. Если не указано, JSON-данные выводятся непосредственно в стандартный поток вывода.
  • -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 будут установлены в ~/.gemini/antigravity/skills .

Параметры:

  • --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 будут выведены непосредственно в стандартный поток вывода.
  • -a, --annotate - Рисует ограничивающие рамки с подписями вокруг всех элементов пользовательского интерфейса, обнаруженных на изображении, для использования с командой resolve .

Пример: android screen capture --output=ui.png

screen resolve

Использование: android screen resolve --screenshot=<path> --string=<string>

Описание: Преобразует визуальные метки с аннотированного скриншота, полученного с помощью screen capture , в фактические координаты экрана (x, y). Полезно для создания скриптов для обработки кликов по элементам без необходимости вручную вычислять их положение.

Флаги:

  • --screenshot - Путь к скриншоту с аннотацией.
  • --string - Строка, содержащая как минимум один заполнитель, соответствующий метке элемента пользовательского интерфейса в формате #<number> . Часть #<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 - Установка версии 2 пакета Android SDK Platform 34.
  • android sdk install --canary system-images/android-35/google_apis/x86_6 - Установите последнюю версию образа системы Android 35 из канала canary.
  • android sdk install --force platforms/android-33@1 - Возврат к версии 1 пакета Android SDK Platform 33 из стабильного канала.

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-файла. Если активностей несколько, необходимо указать одну для первоначального запуска.
  • --debug - Развертывает приложение в режиме отладки . После запуска приложения в режиме отладки необходимо подключить отладчик из IDE, например Android Studio, или из инструмента командной строки, чтобы начать отладку.
  • --device - Серийный номер целевого устройства или эмулятора. Требуется только при подключении нескольких устройств. Чтобы узнать серийные номера устройств, выполните команду adb devices .
  • --type - Тип компонента для запуска. Используйте это, если хотите запустить фоновую службу напрямую, а не активность пользовательского интерфейса. Поддерживаемые типы:
    • 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>]

Описание: Обновляет один или все пакеты до последней версии в канале (по умолчанию — стабильный канал). Если вы не укажете пакет, будут обновлены все пакеты.

Параметры:

  • <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 Platforms 35 до последней версии в канале canary.

update

Использование: android update

Описание: Обновить интерфейс командной строки Android.

-V, --version

Описание: Отображает текущую версию Android CLI.