Android CLI est une interface de ligne de commande qui vous permet de créer plus facilement et plus efficacement des applications pour Android à l'aide de l'outil de votre choix. Il standardise les compétences de développement de base pour les workflows axés sur les agents, en fournissant un point d'entrée vers les outils, les compétences et les connaissances officielles dont vous avez besoin pour développer plus efficacement. Il peut également simplifier l'intégration continue, la maintenance et toute autre automatisation scriptée pour la nature de plus en plus distribuée du développement Android.
Par exemple, un agent ou un script peut utiliser la CLI pour effectuer des tâches telles que les suivantes :
- Automatiser la configuration de l'environnement
- Créer des projets à partir de modèles
- Gérer les appareils virtuels directement depuis votre terminal
- Tester votre application avec Parcours
La CLI Android permet également à vos agents d'accéder aux compétences Android et à la base de connaissances Android spécialisée pour s'assurer que vos projets appliquent les modèles et les bonnes pratiques recommandés par Android.
Installer la CLI Android
Pour installer Android CLI, procédez comme suit :
Pour vous assurer d'utiliser la dernière version, mettez à jour Android CLI :
android update
Pour vérifier si Android CLI est déjà installé sur votre machine, exécutez which android ou command -v android. Si un chemin d'accès est renvoyé, cela signifie qu'il est installé.
Configurer pour les agents
Pour aider les agents à comprendre et à utiliser Android CLI, exécutez init pour installer la compétence android-cli :
android init
Données recueillies
L'interface de ligne de commande Android collecte des données sur l'utilisation de base de l'outil. Voici les données que nous collectons :
- Appels de la commande
androidet des sous-commandes, par exempleandroid runetandroid create. - Noms des arguments ou options non positionnels utilisés, par exemple
--sdkou--version. - Arguments de position et valeurs d'indicateur qui correspondent à un ensemble fixe et prédéfini d'options système gérées par l'interface de ligne de commande Android. Par exemple, nous collectons les noms de modèles d'émulateur tels que
medium_phoneetlarge_desktop, ainsi que les noms d'agents tels queGEMINI,CLAUDEouCODEX. - Traces de pile et messages d'exception, où les informations permettant d'identifier l'utilisateur sont anonymisées avant la collecte pour garantir la confidentialité.
Voici quelques exemples de données que nous ne collectons pas :
- Nous ne collectons pas les réponses de la CLI lorsqu'une commande est exécutée.
- Nous ne collectons pas les entrées créées par les utilisateurs ni les identifiants externes transmis à la CLI, tels que les coordonnées Maven spécifiques, les chemins d'accès aux fichiers locaux ou les noms de projets personnalisés. Par exemple, si la commande
android create --name=com.company.internal.appest exécutée, nous enregistrons queandroid createa été exécuté à l'aide de l'argument--name, mais nous ne stockons pas la valeurcom.company.internal.app.
Problèmes connus
- La commande
android emulatorpour Windows est actuellement désactivée. - Le téléchargement de la CLI Android depuis Windows PowerShell n'est actuellement pas pris en charge.
Si vous rencontrez des problèmes ou si vous souhaitez nous faire part de vos commentaires, veuillez signaler un bug.
Configurer la CLI Android
Créez un fichier .androidrc pour appliquer automatiquement des indicateurs et des options chaque fois que vous appelez la CLI Android. Enregistrez le fichier à l'emplacement suivant, en fonction de votre système d'exploitation :
- macOS et Linux :
~/.androidrc - Windows :
%USERPROFILE%\.androidrc
Ajoutez les indicateurs que vous souhaitez appliquer automatiquement au fichier, un par ligne.
Par exemple, pour que la CLI Android utilise un SDK Android spécifique par défaut à chaque fois, ajoutez l'option --sdk à votre fichier :
--sdk=<path-to-sdk>
Options globales
Il s'agit d'options facultatives que vous pouvez utiliser avec d'autres commandes Android CLI.
-h, --help
Utilisation : android <command> -h
Description : affiche le manuel d'aide de l'outil ou de la commande spécifique en question.
Exemples :
android -handroid create -h
--sdk
Utilisation : android --sdk=<path-to-sdk> <command>
Description : chemin d'accès au SDK Android que vous souhaitez utiliser pour la commande suivante. Vous pouvez utiliser le paramètre --sdk pour remplacer temporairement le SDK Android par défaut au lieu de modifier vos variables d'environnement globales chaque fois que vous souhaitez changer de SDK. Pour vérifier quel SDK Android vous utilisez par défaut, exécutez android info.
Exemple : android --sdk=<path/to/sdk> sdk list
Commandes
Cette section liste toutes les commandes de l'interface de ligne de commande Android et décrit leur fonctionnement. Toutes ces commandes doivent être précédées de android, par exemple android create, android run, etc. Les modificateurs facultatifs sont placés entre crochets [], contrairement aux arguments obligatoires.
create
Utilisation : android create [--dry-run] [--verbose] [--name=<application-name>] [--output=<dest-path>] [<template-name>]
Description : initialisez un nouveau projet à partir d'un modèle. Pour afficher les options du modèle, exécutez android create -h.
Arguments (obligatoires) :
-o, --output: chemin d'accès au répertoire du projet de destination.
Options :
--dry-run: simule l'ensemble du processus de création du projet sans enregistrer de fichiers. Par exemple, vous pouvez effectuer une simulation pour voir ce que font les différents modèles avant de vous engager.--verbose: active la sortie détaillée, y compris des informations telles que les fichiers copiés à partir du modèle.--name=<application-name>: nom du répertoire du projet. S'il est omis, le répertoire de sortie est utilisé.<template-name>: nom du modèle à partir duquel créer un projet. En cas d'omission,empty-activity-agp-9est utilisé.
Exemple : android create --dry-run --verbose empty-activity-agp-9
create list
Utilisation : android create list
Description : liste tous les modèles disponibles pour créer un projet.
describe
Utilisation : android describe [--project_dir=<project-directory>]
Description : analyse un projet Android pour générer des métadonnées descriptives. Cette commande identifie et génère les chemins d'accès aux fichiers JSON qui détaillent la structure du projet, y compris les cibles de compilation et les emplacements des artefacts de sortie correspondants (par exemple, les fichiers APK). Ces informations permettent à d'autres outils et commandes de localiser efficacement les artefacts de compilation.
Options :
--project_dir: répertoire du projet à décrire. S'il est omis, le répertoire actuel est utilisé.
Exemple : android describe --project_dir=/path/to/your/project
docs
Utilisation :
android docs search <query>android docs fetch <kb-url>
Description : la commande android docs est un processus en deux étapes permettant d'accéder à la base de connaissances Android directement depuis la CLI.
Commencez par rechercher la documentation liée à votre requête à l'aide de la commande search. Les résultats de recherche incluent des URL spéciales commençant par kb://, que vous pouvez ensuite utiliser avec la commande fetch pour afficher les commandes de documentation dans le terminal.
Exemples :
android docs search 'How do I improve my app performance?'android docs fetch kb://android/topic/performance/overview
emulator create
Utilisation : android emulator create [--list-profiles] [--profile=<profile-name>]
Description : créez un appareil virtuel.
Options :
--list-profiles: liste les profils d'appareil pouvant être utilisés pour créer un appareil.--profile=<profile-name>: crée un appareil avec le profil spécifié. Si cette valeur est omise, le profilmedium_phonesera créé.
emulator list
Utilisation : android emulator list
Description : liste les appareils virtuels disponibles.
emulator start
Utilisation : android emulator start <device-name>
Description : lancez l'appareil virtuel spécifié.
Arguments (obligatoires) :
<device-name>: nom de l'appareil à démarrer (medium_phone, par exemple). Utilisezandroid emulator listpour afficher les appareils disponibles.
Exemple : android emulator start medium_phone
emulator stop
Utilisation : android emulator stop <device-serial-number>
Description : arrêtez l'appareil virtuel spécifié.
Arguments (obligatoires) :
<device-serial-number>: numéro de série de l'appareil à arrêter.
Exemple : android emulator stop emulator-5554
info
Utilisation : android info
Description : affiche le chemin d'accès au SDK Android par défaut utilisé. Pour modifier le SDK Android utilisé, utilisez --sdk.
init
Utilisation : android init
Description : configurez votre environnement pour les agents en installant la compétence android-cli.
layout
Utilisation : android layout [--pretty] [--output] [--diff]
Description : renvoie la mise en page d'interface utilisateur de l'application Android active (connectée via un appareil physique ou un émulateur) au format JSON.
Options :
-p, --pretty: met en forme la sortie JSON avec des retraits et des sauts de ligne pour la rendre lisible par l'homme.-o, --output: spécifie un emplacement de fichier pour enregistrer l'arborescence de mise en page. Si cette option est omise, le fichier JSON est imprimé directement sur stdout.-d, --diff: renvoie une liste des éléments de mise en page qui ont changé depuis le dernier instantané interne (la dernière fois que la mise en page a été exécutée), au lieu de l'arborescence de mise en page complète.
Exemple : android layout --output=./hierarchy.json
run
Utilisation : android run [--debug] [--activity=<activity-name>] [--device=<serial-number>] [--type=<param>] --apks=<apk-paths>
Description : déployez une application Android sur un appareil connecté ou un émulateur. Il n'effectue aucune étape de compilation. Vous devez fournir le ou les chemins d'accès aux fichiers APK que vous souhaitez installer.
Arguments (obligatoires) :
--apks: liste des chemins d'accès aux fichiers APK que vous souhaitez installer, séparés par une virgule. Le chemin est relatif à l'emplacement actuel dans le système de fichiers.
Options :
--activity: nom de l'activité à lancer une fois l'APK installé. S'il existe plusieurs activités, vous devez en spécifier une à lancer initialement.--debug: déploie l'application en mode débogage. Après avoir exécuté l'application en mode débogage, vous devez connecter votre débogueur à partir d'un IDE, tel qu'Android Studio, ou d'un outil de ligne de commande pour commencer le débogage.--device: numéro de série de l'appareil ou de l'émulateur cible. N'est nécessaire que si plusieurs appareils sont connectés. Pour trouver les numéros de série des appareils, exécutezadb devices.--type: type de composant à utiliser pour commencer. Utilisez cette méthode si vous souhaitez démarrer un service d'arrière-plan directement au lieu d'une activité d'UI. Types acceptés :ACTIVITYWATCH_FACETILECOMPLICATIONDECLARATIVE_WATCH_FACE
Exemples :
android run --apks=app/build/outputs/apk/debug/app-debug.apk: déploie un seul APK sur l'appareil par défaut.android run --apks=base.apk,density-hdpi.apk,lang-en.apk: déploie plusieurs APK sur l'appareil par défaut.android run --apks=app-debug.apk --type=SERVICE --activity=.sync.DataSyncService: testez un service sans activité.android run --apks=app-debug.apk --device=emulator-5554: déploie l'APK sur un appareil spécifique.
screen capture
Utilisation : android screen capture [--output] [--annotate]
Description : capture une capture d'écran de l'appareil connecté.
Options :
-o, --output: spécifie l'emplacement du fichier où enregistrer la capture d'écran. Si cette option est omise, les données PNG brutes seront imprimées directement sur stdout.-a, --annotate: dessine des cadres de délimitation étiquetés autour de tous les éléments d'UI détectés sur l'image, à utiliser avec la commanderesolve.
Exemple : android screen capture --output=ui.png
screen resolve
Utilisation : android screen resolve --screenshot=<path> --string=<string>
Description : traduit les libellés visuels d'une capture d'écran annotée, capturée à l'aide de screen capture, en coordonnées d'écran réelles (x, y).
Utile pour scripter les clics sur des éléments sans avoir à calculer manuellement leurs positions.
Options :
--screenshot: chemin d'accès à la capture d'écran annotée.--string: chaîne incluant au moins un espace réservé correspondant à un libellé d'élément d'interface utilisateur au format#<number>. La partie#<number>sera remplacée par les coordonnées de l'écran.
Exemple :
Si le libellé 5 se trouve aux coordonnées (500, 1000), la commande
android screen resolve --screenshot=ui.png --string="input tap #5"
renvoie le résultat.
input tap 500 1000
sdk install
Utilisation : android sdk install <package[@version]> [--beta] [--canary] [--force]
Description : installez le ou les packages SDK spécifiés.
Arguments (obligatoires) :
package[@version]: liste des packages à installer, séparés par des espaces. Si aucune version n'est spécifiée, la dernière version du package dans le canal (par défaut, le canal stable) est installée.
Options :
--beta: inclure les packages bêta.--canary: inclure les packages Canary.--force: force le passage à une version antérieure.
Exemples :
android sdk install platforms/android-34 build-tools/34.0.0: installez les dernières versions des packages SDK Android Platform 34 et SDK Build-Tools 34.0.0 à partir du canal stable.android sdk install platforms/android-34@2: installez la version 2 du package Android SDK Platform 34.android sdk install --canary system-images/android-35/google_apis/x86_6- Installez la dernière version de l'image système Android 35 à partir du canal Canary.android sdk install --force platforms/android-33@1: rétablissez la version 1 du package SDK Android Platform 33 à partir du canal stable.
sdk list
Utilisation : android sdk list <package-pattern>
Description : liste les packages SDK installés et disponibles.
Arguments (obligatoires) :
<package-pattern>: filtre les packages par modèle. Compatible avec les expressions régulières.
Options :
--all: afficher tous les packages installés et disponibles.--all-versions: affiche toutes les versions de chaque package.--beta: inclure les packages bêta.--canary: inclure les packages Canary.
sdk remove
Utilisation : android sdk remove <package-name>
Description : supprimez un package du SDK.
Arguments (obligatoires) :
<package-name>: nom du package à supprimer.
Exemple : android sdk remove build-tools/36.1.0
sdk update
Utilisation : android sdk update [--beta] [--canary] [<package-name>]
Description : mettez à jour un ou plusieurs packages vers la dernière version du canal (le canal stable par défaut). Si vous ne spécifiez aucun package, tous les packages seront mis à jour.
Options :
<package-name>: nom du package à mettre à jour.--beta: inclure les packages bêta.--canary: inclure les packages Canary.--force: force le passage à une version antérieure.
Exemples :
android sdk update: recherche et installe les mises à jour pour tous les éléments de votre SDK.android sdk update build-tools/34.0.0: mettez à jour le package SDK Android Build-Tools 34.0.0 vers la dernière version du canal stable.android sdk update --canary platforms/android-35: mettez à jour le package Android SDK Platforms 35 vers la dernière version du canal Canary.
skills add
Les compétences Android sont des instructions spéciales conçues pour aider les agents à mieux comprendre et exécuter des modèles spécifiques qui suivent les bonnes pratiques et les conseils sur le développement Android. Pour en savoir plus, consultez Présentation des compétences Android.
Utilisation : android skills add [--all] [--agent=<agent-name>] [--skill=<skill-name>]
Description : installez les compétences Android dans les répertoires de compétences pour tous les agents détectés. Si vous ne disposez d'aucun répertoire d'agents existant et que vous ne spécifiez aucun agent en particulier, les compétences seront installées pour Gemini et Antigravity à l'adresse ~/.gemini/antigravity/skills. Si vous avez déjà installé des skills Android, skills add les met à jour vers la dernière version.
Options :
--all: installez ou mettez à jour toutes les compétences Android en même temps. Si elle est omise (et que--skilln'est pas spécifié), seule la skillandroid-clisera installée.--agent: liste des agents pour lesquels installer ou mettre à jour la skill, séparés par une virgule. Si elle est omise, la compétence sera installée pour tous les agents détectés.--skill: nom de la skill que vous souhaitez installer ou mettre à jour. Si elle est omise (et que--alln'est pas spécifié), seule la compétenceandroid-clisera installée ou mise à jour.
Exemple : android skills add --agent='gemini' edge-to-edge
skills find
Utilisation : android skills find <string>
Description : trouve les compétences qui correspondent à une chaîne donnée.
Arguments (obligatoires) :
string: chaîne correspondant à la description d'une compétence.
Exemple : android skills find 'performance'
skills list
Utilisation : android skills list [--long]
Description : liste les compétences disponibles.
Options :
--long: affiche des informations supplémentaires pour chaque compétence, y compris sa description et les agents pour lesquels elle est déjà installée.
skills remove
Utilisation : android skills remove [--agent] --skill=<skill-name>
Description : supprime une compétence. Si vous ne spécifiez pas d'agents particuliers, la compétence sera supprimée pour tous les agents.
Arguments (obligatoires) :
--skill: nom de la compétence à supprimer.
Options :
--agent: liste d'agents séparés par une virgule auxquels supprimer la compétence. Si elle est omise, la compétence sera supprimée pour tous les agents.
Exemple : android skills remove --agent='gemini' --skill=edge-to-edge
studio check
Les commandes studio vous permettent, à vous ou à votre agent IA, d'interagir avec les instances actives d'Android Studio. En vous connectant à une instance en cours d'exécution, vous pouvez utiliser les fonctionnalités de l'IDE pour analyser des fichiers, rechercher des déclarations et des utilisations de symboles, afficher des aperçus Compose et rechercher des versions de dépendances.
Utilisation : android studio check
Description : vérifie l'état des instances Android Studio en cours d'exécution et liste les projets ouverts. Exécutez d'abord cette commande pour vérifier la connexion entre la CLI et l'IDE, et pour sélectionner le PID et le projet auxquels vous souhaitez vous connecter, s'il y en a plusieurs.
Exemple de résultat :
Si vous êtes connecté, la sortie liste le PID de l'instance Android Studio en cours d'exécution, la version et l'état des projets ouverts :
pid: 32942
version: Android Studio Quail
Projects:
READY MyApplication /Users/username/AndroidStudioProjects/MyApplication
studio analyze-file
Utilisation : android studio analyze-file [--pid=<pid>] [--project=<project>] <path>
Description : analyse un fichier dans Android Studio pour détecter les erreurs, les avertissements et les lints à l'aide du moteur d'inspection intégré de l'IDE.
Arguments (obligatoires) :
<path>: chemin d'accès au fichier Kotlin ou Java à analyser.
Options :
--pid=<pid>: PID de l'instance Android Studio spécifique à laquelle se connecter, s'il y en a plusieurs.--project=<project>: nom du projet ouvert dans Android Studio à interroger, s'il y en a plusieurs. Si vous exécutez la commandeanalyze-fileà partir d'un répertoire de projet, ce projet est utilisé par défaut.
Exemple :
android studio analyze-file \
--project=MyApplication \
/Users/username/AndroidStudioProjects/MyApplication/app/src/main/java/com/example/myapp/MainActivity.kt
studio find-declaration
Utilisation : android studio find-declaration [--short] [--context-file=<path>] [--pid=<pid>] [--project=<project>] <symbol>
Description : trouve le site de déclaration exact d'un symbole (classe, méthode, variable, champ, constante ou ressource Android) dans le projet à l'aide de la résolution sémantique.
Arguments (obligatoires) :
<symbol>: nom du symbole de code pour lequel trouver la déclaration.
Options :
--context-file=<path>: chemin d'accès facultatif à un fichier contenant une référence au symbole. Fournir un fichier de contexte permet de résoudre les symboles ambigus ou surchargés en fournissant des importations et une portée.--short: simplifie la sortie pour n'afficher que l'emplacement du fichier et la ligne correspondante.--pid=<pid>: PID de l'instance Android Studio spécifique à laquelle se connecter, s'il y en a plusieurs.--project=<project>: nom du projet ouvert dans Android Studio à interroger, s'il y en a plusieurs. Si vous exécutez la commandefind-declarationà partir d'un répertoire de projet, ce projet est utilisé par défaut.
Exemple :
android studio find-declaration --short HotelDetailScreen
studio find-usages
Utilisation : android studio find-usages [--short] [--pid=<pid>] [--project=<project>] <symbol>
Description : trouve toutes les références et utilisations d'un symbole dans l'ensemble du projet à l'aide de l'analyse sémantique.
Arguments (obligatoires) :
<symbol>: nom du symbole pour lequel rechercher les utilisations.
Options :
--short: simplifie le résultat pour n'afficher que les emplacements des fichiers correspondants.--pid=<pid>: PID de l'instance Android Studio spécifique à laquelle se connecter, s'il y en a plusieurs.--project=<project>: nom du projet ouvert dans Android Studio à interroger, s'il y en a plusieurs. Si vous exécutez cette commande à partir d'un répertoire de projet, ce projet est utilisé par défaut.
Exemple :
android studio find-usages --short HotelDetailScreen
studio open-file
Utilisation : android studio open-file [--pid=<pid>] [--project=<project>] <path>
Description : ouvre un fichier directement dans la fenêtre de l'éditeur actif d'Android Studio.
Arguments (obligatoires) :
<path>: chemin d'accès au fichier à ouvrir. Peut être spécifié par rapport au répertoire racine du projet ou en tant que chemin absolu.
Options :
--pid=<pid>: PID de l'instance Android Studio spécifique à laquelle se connecter, s'il y en a plusieurs.--project=<project>: nom du projet ouvert dans Android Studio à interroger, s'il y en a plusieurs. Si vous exécutez la commandeopen-fileà partir d'un répertoire de projet, ce projet est utilisé par défaut.
Exemple :
android studio open-file app/src/main/java/com/example/myapp/ui/DetailScreen.kt
studio render-compose-preview
Utilisation : android studio render-compose-preview [--print-semantics] [--output-image-file=<filename>] [--pid=<pid>] [--project=<project>] <path> <composable>
Description : affiche un aperçu de l'UI Jetpack Compose et renvoie éventuellement son arbre sémantique de mise en page. Cela est utile pour les tests visuels ou pour permettre aux agents d'IA de travailler avec la mise en page de l'UI.
Arguments (obligatoires) :
<path>: chemin d'accès au fichier Kotlin contenant l'aperçu Compose.<composable>: nom de la fonction d'aperçu composable (marquée avec@Preview).
Options :
--output-image-file=<filename>: spécifie le nom du fichier dans lequel écrire l'image PNG rendue. Si elle est omise, un fichier temporaire est créé.--print-semantics: si la valeur est "true", l'arborescence sémantique d'accessibilité de l'aperçu Compose rendu est imprimée au format JSON. Cela permet aux agents d'analyser la structure et les éléments interactifs de l'UI.--pid=<pid>: PID de l'instance Android Studio spécifique à laquelle se connecter, s'il y en a plusieurs.--project=<project>: nom du projet ouvert dans Android Studio à interroger, s'il y en a plusieurs. Si vous exécutez la commanderender-compose-previewà partir d'un répertoire de projet, ce projet est utilisé par défaut.
Exemple :
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
Utilisation : android studio version-lookup [--pid=<pid>] [--project=<project>] <artifacts...>
Description : recherche les dernières versions disponibles des dépendances courantes, des plates-formes Android et des outils SDK dans des dépôts tels que Google Maven. Cela fournit une alternative programmatique à la vérification manuelle des versions de dépendances.
Arguments (obligatoires) :
<artifacts...>: liste d'identifiants séparés par des espaces. Vous pouvez interroger plusieurs artefacts dans une même commande. Voici les identifiants acceptés :- Bibliothèques Maven : notation
groupId:artifactId(par exemple,androidx.window:window). - Plug-ins Gradle : ID du plug-in (par exemple,
com.android.application). - Mots clés :
gradle(outil de compilation Gradle)studio(Android Studio)agp(plug-in Android Gradle)ndk(NDK Android)sdk(SDK Android)emulator(émulateur Android)adb(Android Debug Bridge)compose(Nomenclature Jetpack Compose)kotlin(compilateur et environnement d'exécution Kotlin)android(versions de l'OS Android)platform-tools(Android SDK Platform-Tools)cmdline-tools(Outils de ligne de commande du SDK Android)build-tools(Android SDK Build-Tools)
- Bibliothèques Maven : notation
Options :
--pid=<pid>: PID de l'instance Android Studio spécifique à laquelle se connecter, s'il y en a plusieurs.--project=<project>: nom du projet ouvert dans Android Studio à interroger, s'il y en a plusieurs. Si vous exécutez la commandeversion-lookupà partir d'un répertoire de projet, ce projet est utilisé par défaut.
Exemple :
android studio version-lookup \
androidx.compose.ui:ui \
com.android.application \
agp \
kotlin
update
Utilisation : android update
Description : mettez à jour l'interface de ligne de commande Android.
-V, --version
Description : affiche la version actuelle de l'interface de ligne de commande Android.