Android CLI — это интерфейс командной строки, который позволяет проще и эффективнее собирать приложения для Android, используя любой инструмент по вашему выбору. Он стандартизирует основные компетенции разработчиков для рабочих процессов, ориентированных на агенты, предоставляя точку входа к официальным инструментам, навыкам и знаниям, необходимым для более эффективной разработки. Он также может оптимизировать CI, сопровождение и любую другую автоматизацию на основе скриптов в условиях все более распределенной разработки Android.
Например, агент или скрипт могут использовать интерфейс командной строки для выполнения таких задач, как следующие:
- Автоматизация настройки среды
- Создавайте новые проекты на основе шаблонов.
- Управляйте виртуальными устройствами непосредственно с вашего терминала.
- Протестируйте свое приложение с помощью Journeys.
Android CLI также предоставляет вашим агентам доступ к навыкам Android и специализированной базе знаний Android , что помогает обеспечить применение в ваших проектах рекомендуемых Android шаблонов и передовых методов.
Установите Android CLI.
Для установки Android CLI выполните следующие действия:
Чтобы убедиться, что вы используете последнюю версию, обновите Android CLI:
android update
Чтобы проверить, установлен ли Android CLI на вашем компьютере, выполните команду which android или command -v android : если она вернет путь, значит, он установлен.
Настройка для агентов
Чтобы помочь агентам понять и использовать Android CLI, запустите init для установки навыка android-cli :
android init
Собранные данные
Android CLI собирает данные об основном использовании инструмента. Вот данные, которые мы собираем:
- Вызовы команды
androidи её подкоманд, напримерandroid runиandroid create. - Названия используемых непозиционных аргументов или параметров, например
--sdkили--version. - Позиционные аргументы и значения флагов, которые сопоставляются с фиксированным, предопределенным набором системных параметров, управляемых Android CLI. Например, мы собираем имена шаблонов эмулятора, такие как
medium_phoneиlarge_desktop, и имена агентов, такие какGEMINI,CLAUDEилиCODEX. - Трассировка стека и сообщения об исключениях, в которых идентифицирующая информация анонимизируется перед сбором для обеспечения конфиденциальности.
Вот несколько примеров данных, которые мы не собираем:
- Мы не собираем ответы от командной строки при выполнении команды.
- Мы не собираем пользовательские входные данные или внешние идентификаторы, передаваемые в CLI, такие как конкретные координаты Maven, пути к локальным файлам или пользовательские имена проектов. Например, если выполняется команда
android create --name=com.company.internal.app, мы записываем, чтоandroid createбыла выполнена с использованием аргумента--nameно не сохраняем значениеcom.company.internal.app.
Известные проблемы
- Команда
android emulatorдля Windows в настоящее время отключена. - Загрузка интерфейса командной строки Android из Windows PowerShell в настоящее время не поддерживается.
Если у вас возникнут какие-либо проблемы или вы захотите оставить отзыв, пожалуйста, сообщите об ошибке .
Настройка Android CLI
Создайте файл .androidrc , чтобы автоматически применять флаги и параметры при каждом вызове Android CLI. Сохраните файл в указанном ниже месте (в зависимости от вашей операционной системы):
- macOS и Linux :
~/.androidrc - Windows :
%USERPROFILE%\.androidrc
Добавьте в файл флаги, которые вы хотите применять автоматически, по одному на строку.
Например, чтобы Android CLI всегда по умолчанию использовал определенный Android SDK, добавьте флаг --sdk в свой файл:
--sdk=<path-to-sdk>
Глобальные опции
Это необязательные флаги, которые можно использовать с другими командами командной строки 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
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-файл на конкретном устройстве.
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
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.
skills add
Навыки Android — это специальные инструкции, разработанные для того, чтобы помочь агентам лучше понимать и выполнять определенные шаблоны, соответствующие передовым методам и рекомендациям по разработке под Android. Для получения дополнительной информации см. раздел «Введение в навыки Android» .
Использование: android skills add [--all] [--agent=<agent-name>] [--skill=<skill-name>]
Описание: Устанавливает навыки Android в каталоги навыков для всех обнаруженных агентов. Если у вас нет существующих каталогов агентов и вы не указываете конкретных агентов, навыки будут установлены для Gemini и Antigravity в ~/.gemini/antigravity/skills . Если у вас уже установлены навыки Android, skills add обновит навыки до последней версии.
Параметры:
-
--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
studio check
Команды studio позволяют вам или вашему агенту ИИ взаимодействовать с активными экземплярами Android Studio. Подключившись к запущенному экземпляру, вы можете использовать возможности IDE для анализа файлов, поиска объявлений и использования символов, отображения предварительного просмотра Compose и проверки версий зависимостей.
Использование: android studio check
Описание: Проверяет состояние запущенных экземпляров Android Studio и выводит список открытых проектов. Выполните эту команду сначала, чтобы проверить соединение между CLI и IDE, а также выбрать PID и проект, к которому вы хотите подключиться, если их несколько.
Пример вывода:
При подключении в выводе отображается PID запущенного экземпляра Android Studio, его версия и статус открытых проектов:
pid: 32942
version: Android Studio Quail
Projects:
READY MyApplication /Users/username/AndroidStudioProjects/MyApplication
studio analyze-file
Использование: android studio analyze-file [--pid=<pid>] [--project=<project>] <path>
Описание: Анализирует файл в Android Studio на наличие ошибок, предупреждений и линтинговых ошибок, используя встроенный в IDE механизм проверки кода.
Аргументы (обязательные):
-
<path>- Путь к файлу Kotlin или Java для анализа.
Параметры:
-
--pid=<pid>- Идентификатор процесса (PID) конкретного экземпляра Android Studio, к которому следует подключиться, если их несколько. -
--project=<project>- Название проекта, открытого в Android Studio для запроса, если их несколько. Если вы запускаете командуanalyze-fileиз каталога проекта, по умолчанию используется именно этот проект.
Пример:
android studio analyze-file \
--project=MyApplication \
/Users/username/AndroidStudioProjects/MyApplication/app/src/main/java/com/example/myapp/MainActivity.kt
studio find-declaration
Использование: android studio find-declaration [--short] [--context-file=<path>] [--pid=<pid>] [--project=<project>] <symbol>
Описание: Находит точное место объявления символа (класса, метода, переменной, поля, константы или ресурса Android) в проекте с помощью семантического разрешения.
Аргументы (обязательные):
-
<symbol>- Название кодового символа, для которого нужно найти объявление.
Параметры:
-
--context-file=<path>- Необязательный путь к файлу, содержащему ссылку на символ. Предоставление файла контекста помогает разрешить неоднозначные или перегруженные символы, предоставляя импорты и область видимости. -
--short- Упрощает вывод, отображая только местоположение файла и строку совпадения. -
--pid=<pid>- Идентификатор процесса (PID) конкретного экземпляра Android Studio, к которому следует подключиться, если их несколько. -
--project=<project>- Название проекта, открытого в Android Studio для поиска, если их несколько. Если вы запускаете командуfind-declarationиз каталога проекта, по умолчанию используется именно этот проект.
Пример:
android studio find-declaration --short HotelDetailScreen
studio find-usages
Использование: android studio find-usages [--short] [--pid=<pid>] [--project=<project>] <symbol>
Описание: Находит все упоминания и случаи использования символа во всем проекте с помощью семантического анализа.
Аргументы (обязательные):
-
<symbol>- Название символа, для которого необходимо найти примеры использования.
Параметры:
-
--short- Упрощает вывод, отображая только местоположения найденных файлов. -
--pid=<pid>- Идентификатор процесса (PID) конкретного экземпляра Android Studio, к которому следует подключиться, если их несколько. -
--project=<project>- Название проекта, открытого в Android Studio для запроса, если их несколько. Если вы запускаете эту команду из каталога проекта, по умолчанию используется именно этот проект.
Пример:
android studio find-usages --short HotelDetailScreen
studio open-file
Использование: android studio open-file [--pid=<pid>] [--project=<project>] <path>
Описание: Открывает файл непосредственно в активном окне редактора Android Studio.
Аргументы (обязательные):
-
<path>- Путь к открываемому файлу. Может быть указан относительно корневого каталога проекта или в виде абсолютного пути.
Параметры:
-
--pid=<pid>- Идентификатор процесса (PID) конкретного экземпляра Android Studio, к которому следует подключиться, если их несколько. -
--project=<project>- Имя проекта, открытого в Android Studio для запроса, если их несколько. Если вы запускаете командуopen-fileиз каталога проекта, по умолчанию используется именно этот проект.
Пример:
android studio open-file app/src/main/java/com/example/myapp/ui/DetailScreen.kt
studio render-compose-preview
Использование: android studio render-compose-preview [--print-semantics] [--output-image-file=<filename>] [--pid=<pid>] [--project=<project>] <path> <composable>
Описание: Отображает предварительный просмотр пользовательского интерфейса Jetpack Compose и, при необходимости, возвращает дерево семантики его компоновки. Это полезно для визуального тестирования или для обеспечения работы агентов ИИ с макетом пользовательского интерфейса.
Аргументы (обязательные):
-
<path>- Путь к файлу Kotlin, содержащему предварительный просмотр Compose. -
<composable>- Название составной функции предварительного просмотра (отмечена как@Preview).
Параметры:
-
--output-image-file=<filename>- Указывает имя файла, в который будет записано полученное изображение PNG. Если это имя опущено, будет создан временный файл. -
--print-semantics- Если значение равно true, выводит дерево семантики доступности отрендеренного предварительного просмотра Compose в формате JSON. Это позволяет агентам анализировать структуру и интерактивные элементы пользовательского интерфейса. -
--pid=<pid>- Идентификатор процесса (PID) конкретного экземпляра Android Studio, к которому следует подключиться, если их несколько. -
--project=<project>- Название проекта, открытого в Android Studio для запроса, если их несколько. Если вы запускаете командуrender-compose-previewиз каталога проекта, по умолчанию используется именно этот проект.
Пример:
android studio render-compose-preview \
--output-image-file=preview_hotel.png \
--print-semantics \
app/src/main/java/com/example/myapp/ui/DetailScreen.kt \
HotelDetailScreenPreview
studio version-lookup
Использование: android studio version-lookup [--pid=<pid>] [--project=<project>] <artifacts...>
Описание: Программа ищет последние доступные версии распространенных зависимостей, платформ Android и инструментов SDK в таких репозиториях, как Google Maven. Это предоставляет программную альтернативу ручной проверке версий зависимостей.
Аргументы (обязательные):
-
<artifacts...>— Список идентификаторов, разделённых пробелами. Вы можете запросить несколько артефактов в одной команде. Поддерживаемые идентификаторы:- Библиотеки Maven: обозначение
groupId:artifactId(например,androidx.window:window). - Плагины Gradle: идентификатор плагина (например,
com.android.application). - Ключевые слова:
-
gradle(инструмент сборки Gradle) -
studio(Android Studio) -
agp(плагин Android Gradle) -
ndk(Android NDK) -
sdk(Android SDK) -
emulator(эмулятор Android) -
adb(Android Debug Bridge) -
compose(Jetpack Compose BOM) -
kotlin(среда выполнения и компилятор Kotlin) -
android(версии ОС Android) -
platform-tools(Android SDK Platform-Tools) -
cmdline-tools(Инструменты командной строки Android SDK) -
build-tools(Инструменты сборки Android SDK)
-
- Библиотеки Maven: обозначение
Параметры:
-
--pid=<pid>- Идентификатор процесса (PID) конкретного экземпляра Android Studio, к которому следует подключиться, если их несколько. -
--project=<project>- Название проекта, открытого в Android Studio для запроса, если их несколько. Если вы запускаете командуversion-lookupиз каталога проекта, по умолчанию используется именно этот проект.
Пример:
android studio version-lookup \
androidx.compose.ui:ui \
com.android.application \
agp \
kotlin
update
Использование: android update
Описание: Обновить интерфейс командной строки Android.
-V, --version
Описание: Отображает текущую версию Android CLI.