Serveur d'impression

Android Debug Bridge (adb) | Développeurs Android – Serveur d’impression

Par Titanfall , le 3 mai 2019 - 45 minutes de lecture

Android Debug Bridge (adb) est un outil de ligne de commande polyvalent qui vous permet de communiquer avec un
dispositif. La commande adb facilite diverses actions de l'appareil, telles que l'installation et le débogage.
Il donne accès à un shell Unix que vous pouvez utiliser pour exécuter diverses commandes sur un ordinateur.
dispositif. C'est un programme client-serveur qui comprend trois composants:

  • Une cliente, qui envoie des commandes. Le client s'exécute sur votre machine de développement. Vous pouvez
        invoquer un client depuis un terminal de ligne de commande en émettant une commande adb.
  • Un démon (adbd), qui exécute des commandes sur un périphérique. Le démon s'exécute en arrière-plan
        processus sur chaque appareil.
  • Un serveur, qui gère la communication entre le client et le démon. Le serveur
        s'exécute en tant que processus d'arrière-plan sur votre machine de développement.

adb est inclus dans le package Android SDK Platform-Tools. Vous pouvez télécharger ce
package avec le SDK Manager, qui installe
à android_sdk/ plateforme-outils /. Ou si vous voulez le SDK Android autonome
Le paquet Platform-Tools, vous pouvez le télécharger ici.

Pour plus d'informations sur la connexion d'un périphérique à utiliser avec ADB, notamment sur l'utilisation de Connection
  Assistant pour résoudre les problèmes courants, voir
  Exécuter des applications sur un périphérique matériel.

Comment fonctionne adb

Lorsque vous démarrez un client adb, le client vérifie d’abord la présence d’un serveur adb.
processus déjà en cours d'exécution. S'il n'y en a pas, le processus du serveur démarre. Quand le serveur démarre,
il se connecte au port TCP local 5037 et écoute les commandes envoyées par les clients adb – tous les adb
les clients utilisent le port 5037 pour communiquer avec le serveur adb.

Le serveur établit ensuite les connexions avec tous les périphériques en cours d'exécution.
Il localise les émulateurs en balayant les ports impairs de la gamme
5555 à 5585, la gamme utilisée par les 16 premiers émulateurs. Où le serveur trouve un adb
daemon (adbd), il établit une connexion à ce port. Notez que chaque émulateur
utilise une paire de ports séquentiels – un port pair pour
connexions à la console et un port impair pour les connexions adb. Par exemple:

Emulateur 1, console: 5554
Emulateur 1, adb: 5555
Emulator 2, console: 5556
Émulateur 2, adb: 5557
etc…

Comme indiqué, l'émulateur connecté à l'adb sur le port 5555 est le même que l'émulateur
dont la console écoute sur le port 5554.

Une fois que le serveur a configuré les connexions à tous les périphériques, vous pouvez utiliser les commandes adb pour
accéder à ces appareils. Parce que le serveur gère les connexions aux périphériques et les gère
commandes de plusieurs clients adb, vous pouvez contrôler n’importe quel appareil depuis n’importe quel client (ou
à partir d'un script).

Activer le débogage des annonces sur votre appareil

Pour utiliser adb avec un appareil connecté via USB, vous devez activer
débogage USB dans les paramètres système de l'appareil, sous
Options de développeur
.

Sur Android 4.2 et les versions ultérieures, l’écran des options du développeur apparaît.
caché par défaut. Pour le rendre visible, allez à
Paramètres> À propos du téléphone et appuyez sur Numéro de construction Sept fois. Retour à la précédente
écran pour trouver Options de développeur au fond.

Sur certains appareils, l'écran des options du développeur peut être localisé ou nommé différemment.

Vous pouvez maintenant connecter votre appareil avec USB. Vous pouvez vérifier que votre appareil est
connecté en exécutant périphériques adb du
android_sdk/ plateforme-outils / annuaire. Si connecté,
vous verrez le nom du périphérique répertorié comme "périphérique".

Remarque: Lorsque vous connectez un appareil fonctionnant sous Android 4.2.2 ou supérieur,
le système affiche une boîte de dialogue vous demandant si vous souhaitez accepter une clé RSA permettant
débogage via cet ordinateur. Ce mécanisme de sécurité protège les machines des utilisateurs car il garantit
le débogage USB et d’autres commandes adb ne peuvent être exécutés que si vous êtes en mesure de déverrouiller le
appareil et acquitter le dialogue.

Pour plus d'informations sur la connexion à un périphérique via USB, consultez l'article
Exécuter des applications sur un périphérique matériel.

Se connecter à un appareil via Wi-Fi

adb communique généralement avec le périphérique via USB, mais vous pouvez également utiliser adb via Wi-Fi après
certaines configurations initiales via USB, comme décrit ci-dessous. Si vous développez pour Wear OS, cependant,
vous devriez plutôt voir le guide
déboguer une application Wear OS,
qui a des instructions spéciales pour utiliser adb avec Wi-Fi et Bluetooth.

  1. Connectez votre appareil Android et votre ordinateur hôte adb
    réseau Wi-Fi commun accessible aux deux.
    Attention, tous les points d'accès ne sont pas
    conviennent; vous devrez peut-être utiliser un point d'accès
    dont le pare-feu est configuré correctement pour prendre en charge adb.

  2. Si vous vous connectez
    sur un appareil Wear OS, désactivez Bluetooth sur le téléphone qui est associé à l'appareil.
  3. Connectez le périphérique à l'ordinateur hôte avec un câble USB.

  4. Configurez le périphérique cible pour qu'il écoute une connexion TCP / IP sur le port 5555.

    annonce tcpip 5555
    
  5. Déconnectez le câble USB du périphérique cible.

  6. Recherchez l'adresse IP du périphérique Android. Par exemple, sur un appareil Nexus, vous pouvez trouver
    l'adresse IP à Réglages > A propos de la tablette
    (ou A propos du téléphone)> Statut > adresse IP. Ou,
    sur un appareil Wear OS, vous pouvez trouver l’adresse IP à l’adresse Réglages >
    Paramètres Wifi > Avancée > adresse IP.

  7. Connectez-vous au périphérique par son adresse IP.

    adb connect device_ip_address
    
  8. Vérifiez que votre ordinateur hôte est connecté au périphérique cible:

    $ adb devices
    Liste des périphériques connectés
    device_ip_address: 5555 périphérique
    

Vous êtes maintenant prêt à partir!

Si la connexion adb est perdue:

  1. Assurez-vous que votre hôte est toujours connecté au même réseau Wi-Fi que votre appareil Android.

  2. Reconnectez-vous en exécutant le adb connect pas encore.

  3. Ou si cela ne fonctionne pas, réinitialisez votre hôte adb:

    adb kill-server
    

    Puis recommencez depuis le début.

Requête pour les appareils

Avant d'émettre des commandes adb, il est utile de connaître les instances de périphérique connectées.
  au serveur adb. Vous pouvez générer une liste de périphériques connectés à l’aide de la
dispositifs commander.

  
  
  
  périphériques adb -l
  

En réponse, adb imprime ces informations d'état pour chaque périphérique:

  • Numéro de série: chaîne créée par adb pour identifier le périphérique de manière unique.
          par son numéro de port.
        Voici un exemple de numéro de série: émulateur-5554
  • State: l'état de connexion du périphérique peut être l'un des suivants:
    • hors ligne: Le périphérique n'est pas connecté à adb ou n'est pas
              répondre.
    • dispositif: Le périphérique est maintenant connecté au serveur adb. Notez que
              cet état n'implique pas que le système Android est entièrement démarré et opérationnel car
              l'appareil se connecte à adb
              pendant le démarrage du système. Toutefois, après le démarrage, il s’agit de la situation opérationnelle normale.
              état d'un appareil.
    • aucun dispositif: Il n'y a pas d'appareil connecté.
  • Description: Si vous incluez le -l option, la dispositifs
    La commande vous indique quel est le périphérique. Cette information est utile lorsque vous avez plusieurs appareils.
        connecté afin que vous puissiez les distinguer.

L'exemple suivant montre le dispositifs commande et sa sortie. Il ya trois
  appareils en cours d'exécution. Les deux premières lignes de la liste sont des émulateurs, et la troisième ligne est un matériel
  périphérique connecté à l'ordinateur.

$ adb devices
Liste des périphériques connectés
Produit de périphérique emulator-5556: sdk_google_phone_x86_64 modèle: Android_SDK_built_for_x86_64 périphérique: generic_x86_64
Produit de périphérique emulator-5554: sdk_google_phone_x86 modèle: Android_SDK_built_for_x86 périphérique: generic_x86
0a388e93 device usb: 1-1 produit: modèle de rasoir: Nexus_7 périphérique: flo

Emulateur non répertorié

le périphériques adb La commande a une séquence de commandes en virage qui provoque l'exécution
  émulateur (s) à ne pas apparaître dans la périphériques adb sortie même si
  les émulateurs sont visibles sur votre bureau. Cela arrive quand tout du suivant
  les conditions sont vraies:

  1. Le serveur adb n'est pas en cours d'exécution, et
  2. Vous utilisez le émulateur commande avec le -Port ou
    -ports option avec une valeur de port impair comprise entre 5554 et 5584, et
  3. Le port impair que vous avez choisi n’est pas occupé. La connexion du port peut donc être établie à la
         numéro de port spécifié, ou s’il est occupé, l’émulateur bascule sur
         un autre port répondant aux exigences de 2, et
  4. Vous démarrez le serveur adb après avoir démarré l'émulateur.

Une façon d’éviter cette situation est de laisser l’émulateur choisir ses propres ports et de ne pas le lancer plus souvent.
    que 16 émulateurs à la fois. Une autre méthode consiste à toujours démarrer le serveur adb avant d’utiliser le
émulateur commande, comme expliqué dans les exemples suivants.

Exemple 1: Dans la séquence de commande suivante, le périphériques adb la commande commence
  le serveur adb, mais la liste des périphériques n'apparaît pas.

Arrêtez le serveur adb et entrez les commandes suivantes dans l'ordre indiqué. Pour le nom avd, fournissez
un nom avd valide de votre système. Pour obtenir une liste de noms avd, tapez émulateur -list-avds.
le émulateur la commande est dans le android_sdk/outils annuaire.




$ adb kill-server
$ emulator -avd Nexus_6_API_25 -port 5555
$ adb devices

Liste des périphériques connectés
* le démon ne fonctionne pas. en le démarrant maintenant sur le port 5037 *
* démon a démarré avec succès *

Exemple 2: Dans la séquence de commande suivante, périphériques adb affiche le
  liste des périphériques car le serveur adb a été démarré en premier.

Pour voir l'émulateur dans le périphériques adb sortie, arrêtez le serveur adb, puis démarrez
  à nouveau après avoir utilisé le émulateur commande et avant d'utiliser le
périphériques adb commande, comme suit:




$ adb kill-server
$ emulator -avd Nexus_6_API_25 -port 5557
$ adb start-server
$ adb devices

Liste des périphériques connectés
émulateur-5557 périphérique

Pour plus d'informations sur les options de ligne de commande de l'émulateur,
voir Utilisation de la ligne de commande
  Paramètres
.

Envoyer des commandes à un périphérique spécifique

Si plusieurs périphériques sont en cours d'exécution, vous devez spécifier le périphérique cible.
  lorsque vous émettez la commande adb. Pour spécifier la cible, utilisez le dispositifs commander
  pour obtenir le numéro de série de la cible. Une fois que vous avez le numéro de série, utilisez le
-s option avec les commandes adb pour spécifier le numéro de série.
  Si vous allez lancer beaucoup de commandes adb, vous pouvez définir le paramètre
$ ANDROID_SERIAL variable d'environnement pour contenir le numéro de série
  au lieu. Si vous utilisez les deux
-s et $ ANDROID_SERIAL, -s annule
$ ANDROID_SERIAL.

Dans l’exemple suivant, la liste des périphériques connectés est obtenue, puis le numéro de série
  numéro de l’un des appareils est utilisé pour installer le helloWorld.apk sur cet appareil.




$ adb devices
Liste des périphériques connectés
émulateur-5554 périphérique
émulateur-5555 périphérique

$ adb -s emulator-5555 installer helloWorld.apk

Remarque: Si vous émettez une commande sans spécifier de périphérique cible
    lorsque plusieurs périphériques sont disponibles, adb génère une erreur.

Si vous avez plusieurs périphériques disponibles, mais qu'un seul est un émulateur,
Utilisez le -e option pour envoyer des commandes à l'émulateur. De même, s’il existe plusieurs
périphériques, mais un seul périphérique matériel connecté, utilisez le -ré option pour envoyer des commandes à
le périphérique matériel.

Installer une application

Vous pouvez utiliser adb pour installer un APK sur un émulateur ou un périphérique connecté.
avec le installer commander:




adb installer path_to_apk

Vous devez utiliser le -t option avec le installer
commande lorsque vous installez un test APK. Pour plus d'informations,
    voir -t.

Pour plus d'informations sur la création d'un fichier APK que vous pouvez installer sur un émulateur / périphérique
Par exemple, voir Construire et exécuter votre application.

Notez que si vous utilisez Android Studio, vous n'avez pas besoin d'utiliser directement adb pour installer
  votre application sur l'émulateur / le périphérique. Au lieu de cela, Android Studio gère l’emballage et l’installation.
  de l'application pour vous.

Configurer la redirection de port

Vous pouvez utiliser le vers l'avant commande pour configurer la redirection de port arbitraire, qui
  transmet les demandes sur un port hôte spécifique à un autre port sur un périphérique.
  L'exemple suivant définit la transmission du port hôte 6100 vers le port de périphérique 7100:




annonce tcp: 6100 tcp: 7100

L'exemple suivant configure la transmission du port hôte 6100 vers local: logd:




adb forward tcp: 6100 local: logd

Copier des fichiers vers / depuis un périphérique

Utilisez le tirez et pousser commandes pour copier des fichiers dans
et d'un appareil. Contrairement à la installer commander,
qui ne copie qu'un fichier APK vers un emplacement spécifique, le tirez et pousser
Les commandes vous permettent de copier des répertoires et des fichiers arbitraires à n’importe quel emplacement d’un périphérique.

Pour copier un fichier ou un répertoire et ses sous-répertoires de le dispositif,
faire ce qui suit:




adb pull éloigné local

Pour copier un fichier ou un répertoire et ses sous-répertoires à le dispositif,
  faire ce qui suit:




adb push local éloigné

Remplacer local et éloigné avec les chemins de
les fichiers / répertoires cibles sur votre machine de développement (local) et sur le
appareil (à distance). Par exemple:




adb push foo.txt /sdcard/foo.txt

Arrêtez le serveur publicitaire

Dans certains cas, vous devrez peut-être mettre fin au processus du serveur adb, puis le redémarrer.
pour résoudre le problème (par exemple, si adb ne répond pas à une commande).

Pour arrêter le serveur adb, utilisez le adb kill-server commander.
Vous pouvez ensuite redémarrer le serveur en émettant une autre commande adb.

référence aux commandes adb

Vous pouvez émettre des commandes adb à partir d'une ligne de commande sur votre machine de développement ou à partir d'un script.
L'utilisation est:




adb[-d|-e|-s[-d|-e|-s[-d|-e|-s[-d|-e|-snuméro de série] commander

S'il n'y a qu'un seul émulateur en cours d'exécution ou qu'un seul périphérique connecté, la commande adb est
envoyé à cet appareil par défaut. Si plusieurs émulateurs sont en cours d'exécution et / ou plusieurs périphériques sont
ci-joint, vous devez utiliser le -ré, -e, ou -s
possibilité de spécifier le périphérique cible vers lequel la commande doit être dirigée.

Le tableau ci-dessous répertorie toutes les commandes adb prises en charge et explique leur signification et leur utilisation.

Tableau 1. Commandes et options disponibles

Options globales La description
-une Écoutez toutes les interfaces réseau au lieu de seulement
localhost.
-ré Dirigez une commande adb vers le seul périphérique USB connecté.
Renvoie une erreur lorsque plusieurs périphériques USB sont connectés.
-e Dirigez une commande adb vers le seul émulateur en cours d'exécution.
Renvoie une erreur lorsque plusieurs émulateurs sont en cours d'exécution.
-s numéro de série Dirigez une commande adb vers un périphérique spécifique, désigné par son attribut adb
  numéro de série (tel que emulator-5556). Remplace la valeur du numéro de série stockée dans le
$ ANDROID_SERIAL variable d'environnement. Voir Envoyer
  Commandes à un périphérique spécifique
.
-H serveur Le nom de l'hôte du serveur adb.
  La valeur par défaut est localhost.
-P Port Le numéro de port du serveur adb.
  La valeur par défaut est 5037.
-L prise Écoutez sur le socket de serveur adb fourni.
    La valeur par défaut est tcp: localhost: 5037.
Commandes générales La description
dispositifs [-l] Imprimer une liste de tous les périphériques. Utilisez le -l option de
      inclure les descriptions de l'appareil.
        Pour plus d'informations, voir Requête pour les périphériques.
Aidez-moi Imprimez une liste des commandes adb prises en charge et leurs descriptions.
version Imprimez le numéro de version d'adb.
courir comme nom du paquet Exécuter des commandes sur un périphérique en tant qu'application (spécifiée à l'aide de
nom du paquet). Cela vous permet d'exécuter des commandes dans adb comme si l'application
    vous spécifiez exécute la commande (c’est-à-dire que vous avez le même accès au périphérique
    que l’application a), sans nécessiter un accès root. Cela pourrait être nécessaire
    lors de l'utilisation de adb sur un périphérique non-root ou un émulateur avec un Play Store
    image. L'application doit être débogable.
Commandes de mise en réseau La description
relier hôte[:[:[:[:Port]

Connectez-vous à un périphérique via TCP / IP. Si tu ne le fais pas
    spécifier un port, puis le port par défaut, 5555,
    est utilisé.
déconnecter[[[[hôte | hôte:Port] Déconnectez-vous du périphérique TCP / IP spécifié s'exécutant sur le port spécifié. Si vous ne spécifiez pas
    hôte ou un port, tous les périphériques sont déconnectés de tous les ports TCP / IP. Si vous spécifiez un hôte,
    mais pas un port, le port par défaut, 5555, est utilisé.
liste de diffusion Répertorie toutes les connexions de socket transférées.
vers l'avant [--no-rebind]local éloigné Transférez les connexions de socket du port local spécifié vers le port distant spécifié sur le
 dispositif. Vous pouvez spécifier les deux local et éloigné ports dans le
    manières suivantes:

  • tcp:Port. Pour choisir un port ouvert, faites le
    local valeur tcp: 0.
  • localabstract:unix_domain_socket_name.
  • localréservé:unix_domain_socket_name.
  • système de fichiers local:unix_domain_socket_name.
  • dev:caractère_nom_appareil.
  • jdwp:pid.
en avant - supprimer local Supprime la connexion de socket transférée spécifiée.
liste inverse Répertorie toutes les connexions de prise inversée à partir du périphérique.
sens inverse [--no-rebind] éloigné local Inverser une connexion de socket. le --no-rebind option signifie l'inversion
    échoue si la socket spécifiée est déjà liée via une précédente sens inverse
commander. Vous pouvez spécifier le port pour les arguments locaux et distants des manières suivantes:

  • tcp:Port. Pour choisir un port ouvert, faites le
    éloigné valeur tcp: 0.
  • localabstract:unix_domain_socket_name.
  • localréservé:unix_domain_socket_name.
  • système de fichiers local:unix_domain_socket_name.
inverser - supprimer éloigné Supprimez la connexion de prise inversée spécifiée de l'appareil.
sens inverse --Enlever tout Retirez toutes les connexions de prise inversée de l'appareil.
Commandes de transfert de fichier La description
pousser télécommande locale Copier des fichiers et des répertoires du périphérique local (ordinateur) vers un emplacement distant
    sur l'appareil.
tirez [-a] local distant Copier des fichiers et des répertoires distants sur un périphérique. Utilisez le -une option pour conserver
      l'horodatage et le mode du fichier.
synchroniser [system|vendor|oem|data|all] Synchroniser une construction locale à partir de l’emplacement spécifié dans $ ANDROID_PRODUCT_OUT
à l'appareil. Tous les fichiers modifiés sont copiés à partir de la partition spécifiée. Le défaut est de
      synchroniser toutes les partitions. Cette commande n'est utilisée que lorsque vous créez la source de la plateforme Android.
      Les développeurs d'applications n'ont pas besoin d'utiliser cette commande.

le $ ANDROID_PRODUCT_OUT variable d'environnement est automatiquement définie par l'Android
    construire le système pour contenir l'emplacement des images du système. Normalement, vous n'aurez pas besoin de définir
$ ANDROID_PRODUCT_OUT en faisant adb syncmais ça peut être utile
    si vous n'êtes pas dans un arbre de compilation (mais en avez un) ou si vous synchronisez
    entre les arbres de construction sans basculer entre eux.




$ ANDROID_PRODUCT_OUT = / out / target / product / generic
adb sync
Commandes d'installation de l'application La description
installer[[[[options] paquet

Poussez les paquets sur le périphérique et installez-les. Les options possibles sont les suivantes:

  • -l: Application de verrouillage avant.
  • -r: Remplacer l'application existante.
  • -t: Autoriser les packages de test. Si l'APK est créé à l'aide d'un SDK de prévisualisation du développeur
            (si la targetSdkVersion est une lettre au lieu d’un chiffre), vous devez inclure
            la -t option avec la commande install si vous installez un APK de test.
            Pour plus d'informations, voir -t option.
  • -s: Installez l'application sur la carte SD.
  • -ré: Autorise la rétrogradation du code de version (packages de débogage uniquement).
  • -g: Accorde toutes les autorisations d'exécution.
multiple d'installation [[[[options]paquets

Mêmes options que installer avec l'ajout de ce qui suit:

-p: Installation partielle de l'application.

désinstaller [-k] paquet Supprimer ce package d'application de l'appareil. Ajouter le -k option de garder
    les répertoires de données et de cache.
Commandes de sauvegarde et de restauration La description
sauvegarde [[[[-F fichier][[[[-apk | -noapk][[[[-obb | -noobb][[[[-partagé | -noshared][[[[-tout][[[[-système |[[[[-système] noms_package

Écrire une archive des données de l'appareil dans fichier. Si vous ne spécifiez pas de nom de fichier, le
    le fichier par défaut est backup.adb. le paquet la liste est facultative lorsque vous spécifiez
    la -tout et -partagé options. Ce qui suit décrit les utilisations de
    les autres options:

  • -apk | -noapk: Sauvegarder ou ne pas sauvegarder
    .apk des dossiers. La valeur par défaut est -noapk.
  • -obb | -noobb: Sauvegarder ou ne pas sauvegarder
            en haut .obb des dossiers. La valeur par défaut est -noobb.
  • partagé | -noshared: Sauvegarder ou ne pas sauvegarder
             stockage partagé. La valeur par défaut est -noshared.
  • -tout: Sauvegardez toutes les applications installées.
  • -système | -système: Inclure ou ne pas inclure
             applications système lors de la sauvegarde de toutes les applications installées (-tout).
             La valeur par défaut est -système.
restaurer fichier Restaurer le contenu de l'appareil à partir de fichier.
Commandes de débogage La description
rapport d'erreur chemin

Imprimer un rapport d'erreur au chemin spécifié.
   Si chemin est un répertoire, le rapport de bogue est enregistré dans ce répertoire à l'aide de
    le nom de fichier par défaut, bugreport.zip. Dispositifs
   qui ne supporte pas les rapports de bogues compressés stdout.

jdwp Imprimez une liste des processus JDWP disponibles sur un périphérique donné.
   Utilisation jdwp en avant:pid à
    se connecter à un processus JDWP spécifique. Par exemple:
annonce tcp: 8000 jdwp: 472
jdb -attach localhost: 8000
logcat [-help] [[[[option][[[[filtre-spec] Imprimer les données du journal sur l'écran. Pour des informations sur le logcat commander
    et le $ ANDROID_LOG_TAGS variable d'environnement, voir
    Filtrage de la sortie du journal sur le logcat
    page.

le $ ADB_TRACE la variable d'environnement contient une liste de débogage séparée par des virgules
    informations à enregistrer. Les valeurs peuvent être n'importe quelle combinaison des éléments suivants: tout,
adb, prises de courant, les paquets, rwx, USB,
synchroniser, sysdeps, transport, et jdwp.

Voir aussi Outil de ligne de commande Logcat.

Commandes de sécurité La description
désactiver-la vérité Désactiver dm-verité vérifier sur userdebug construit.
    le dm-verité Cette option garantit que lorsqu'un utilisateur démarre un périphérique,
    est dans le même état que lors de la dernière utilisation. Pour plus d'informations, voir
    Boot vérifié.
permettre-verité Réactiver dm-verité vérifier sur userdebug construit.
      le dm-verité Cette option garantit que lorsqu'un utilisateur démarre un périphérique,
      est dans le même état que lors de la dernière utilisation. Pour plus d'informations, voir
      Boot vérifié.
keygen fichier Générez des clés chiffrées RSA publiques et privées adb. La clé privée est stockée dans
fichier. La clé publique est stockée dans fichier.pub.
    Une paire de clés RSA est nécessaire lorsque vous utilisez adb pour vous connecter via USB pour la première fois. Vous devez
    acceptez la clé RSA de l'ordinateur hôte pour accorder explicitement un accès adb au périphérique.

Utilisez le $ ANDROID_VENDOR_KEYS variable d'environnement pour pointer vers un fichier ou un répertoire
    qui contient des paires de clés d'authentification RSA 2048 bits que vous avez générées avec le keygen
commander. Ces paires de clés s'ajoutent aux paires de clés RSA générées par le serveur adb.

Lorsque le serveur adb a besoin d'une clé, il commence par rechercher le répertoire de stockage de clés du serveur adb.
     Si aucune clé n'est trouvée, il vérifie ensuite $ ANDROID_VENDOR_KEYS environnement
     variable pour un emplacement. Si aucune clé n'est encore trouvée, le serveur adb local génère et enregistre
     une nouvelle paire de clés dans le répertoire du magasin de clés du serveur adb. Pour cette raison, seul un OEM créant un
       nouvel appareil Android devrait avoir besoin de fonctionner 'adb keygen' se.

Par défaut, les paires de clés générées par le serveur adb sont stockées dans le magasin de clés suivant.
      répertoires comme adbkey (clé privée) et adbkey.pub (Clé publique):

  • Linux et Mac: $ HOME / .android.
  • Les fenêtres: % USERPOFILE% . Android.
Commandes de script La description
attendre[[[[-transport] -Etat Attendez que le périphérique soit dans l'état spécifié.

  • Etat: Les valeurs peuvent être dispositif, récupération,
    chargement latéral, ou chargeur de démarrage.
  • transport: Les valeurs peuvent être USB, local, ou
    tout.
get-state Imprimer l'état adb d'un périphérique.
    L'état adb peut être imprimer hors ligne, chargeur de démarrage, ou
dispositif.
      Pour plus d'informations, voir Requête pour les périphériques.
get-serialno Imprimez la chaîne du numéro de série du périphérique adb. Pour plus d'informations, voir
  Requête pour les appareils.
get-devpath Imprimer le chemin du périphérique adb.
remonter sur Remonter le /système, /vendeur, et / oem
partitions en mode lecture-écriture.
redémarrer [bootloader | recovery | sideload | sideload-auto-reboot ] Redémarrez l'appareil. Par défaut, cette commande démarre l’image système, mais elle prend également en charge
chargeur de démarrage et récupération.

  • le chargeur de démarrage L'option redémarre dans le chargeur de démarrage.
  • le récupération l'option redémarre en reprise.
  • le chargement latéral option redémarre
              dans la récupération et commence chargement latéral mode.
  • le sideload-auto-reboot
    l'option est la même que chargement latéral, mais redémarre une fois le chargement latéral terminé.
chargement latéral otapackage Chargement latéral (installation au format APK) du package OTA complet spécifié sur le périphérique.
racine Redémarrez ADBD avec les autorisations root.
sans racine Redémarrez ADBD sans autorisations root.
USB Redémarrez le serveur adb en écoutant sur USB.
tcpip numéro de port Redémarrez le serveur adb en écoutant TCP sur le port spécifié.
Commandes de débogage internes La description
serveur de démarrage Vérifiez si le processus du serveur adb est en cours d'exécution.
kill-server Terminez le processus serveur adb.
reconnecter Forcer une reconnexion à partir de l'hôte.
reconnecter l'appareil Forcer une reconnexion à partir du périphérique pour forcer une reconnexion.
Commandes Shell La description
coquille Démarrez un shell interactif distant sur le périphérique cible.
      Pour plus d'informations, voir Emission de commandes shell.
coquille
      -e escape_char [-n] [-T] [-t] [-x] [[[[commander]
Émettez une commande shell dans le périphérique cible, puis quittez la télécommande.
    coquille. Utilisez n’importe quelle combinaison des options suivantes:

  • -e: Spécifiez un caractère d'échappement ou la valeur aucun si tu ne le fais pas
            vouloir utiliser un caractère d'échappement. Si vous ne fournissez pas de valeur, l'échappement par défaut
            caractère (un tiret (-)), est utilisé.
  • -n: Ne lisez pas de stdin.
  • -T: Désactive l’allocation de pseudo-terminal utiity (PTY).
  • -t: Forcer l'attribution PTY.
  • -X: Désactiver les codes de sortie à distance et stdout / stderr séparation.

Pour plus d'informations, voir Emission de commandes shell.

émeu commander Exécutez une commande de console d'émulateur. Pour plus d'informations, voir
Contrôler le
    Emulateur de la ligne de commande

Émettre des commandes shell

Vous pouvez utiliser le coquille commande pour émettre des commandes de périphérique via adb, avec ou sans
  en entrant
le shell distant adb sur le périphérique. Pour émettre une seule commande sans entrer de
shell distant, utilisez le coquille commande comme ceci:




adb[-d|-e|-s[-d|-e|-s[-d|-e|-s[-d|-e|-snuméro de série]coquille shell_command

Ou entrez un shell distant sur un périphérique comme celui-ci:




adb[-d|-e|-s[-d|-e|-s[-d|-e|-s[-d|-e|-snuméro de série]coquille

Lorsque vous êtes prêt à quitter le shell distant, appuyez sur Ctrl + D ou tapez
sortie.

Les fichiers binaires des commandes shell sont stockés dans le système de fichiers du périphérique
/ system / bin /.

Remarque:
Avec Outils de plateforme Android 23 et supérieur, adb gère les arguments de la même manière que le
ssh (1) la commande fait.
 Ce changement a résolu beaucoup de problèmes avec
 injection de commande
 et le rend
 possible d'exécuter en toute sécurité des commandes contenant un shell
  métacaractères, tels que
adb install Laissons 'sGo.apk. Mais ce changement signifie que l'interprétation
  de toute commande contenant des métacaractères shell a également changé.
 Par exemple, le adb shell setprop foo 'a b' la commande est maintenant une erreur parce que le
 Guillemets simples (') sont avalés par le shell local et l’appareil voit
adb shell setprop foo a b. Pour que la commande fonctionne, citez deux fois,
  une fois pour le shell local et une fois pour le shell distant, comme vous le feriez avec
ssh (1). Par exemple, adb shell setprop foo "'a b'".

Directeur de l'activité des appels (un m)

Dans un shell adb, vous pouvez émettre des commandes avec le gestionnaire d’activités (un m) outil pour
effectuer diverses actions du système, telles que démarrer une activité, forcer l'arrêt d'un processus,
diffuser une intention, modifier les propriétés de l'écran du périphérique, etc. Alors que dans une coquille,
la syntaxe est la suivante:




un m commander

Vous pouvez également émettre une commande de gestionnaire d'activité directement à partir d'adb
sans entrer dans un shell distant. Par exemple:




adb shell am start - a android.intent.action.VIEW

Tableau 2. Commandes disponibles du gestionnaire d'activités

Commander La description
début[[[[options] intention Commencer un Activité spécifié par
intention.

Voir le
Spécification pour les arguments d'intention.

Les options sont:

  • -RÉ: Activer le débogage.
  • -W: Attendre la fin du lancement.
  • --start-profiler fichier: Démarrer le profileur et envoyer les résultats à
    fichier.
  • -P fichier: Comme --start-profiler,
            mais le profilage s'arrête lorsque l'application devient inactive.
  • -R compter: Répéter le lancement de l'activité compter

    fois. Avant chaque répétition,
            la première activité sera terminée.

  • -S: Force l'arrêt de l'application cible avant de commencer l'activité.
  • --opengl-trace: Activer le traçage des fonctions OpenGL.
  • --utilisateur identifiant d'utilisateur | actuel: Spécifiez l'utilisateur sous lequel exécuter; si non
            spécifié, puis exécutez-le en tant qu'utilisateur actuel.

mise en service[[[[options] intention

Commencer le Un service spécifié par
intention.

Voir le
Spécification pour les arguments d'intention.

Les options sont:

  • --utilisateur identifiant d'utilisateur | actuel: Spécifiez l'utilisateur sous lequel exécuter; si non
            spécifié, puis exécutez-le en tant qu'utilisateur actuel.

arrêt forcé paquet

Force arrêter tout ce qui est associé à paquet (nom du package de l'application).

tuer[[[[options] paquet

Tuer tous les processus associés à paquet

(nom du package de l'application). Cette commande tue seulement
  processus qui sont sûrs de tuer et qui n'auront pas d'impact sur l'utilisateur
  expérience.

Les options sont:

  • --utilisateur identifiant d'utilisateur | tous | actuel: Spécifie l'utilisateur dont les processus à tuer;
            tous les utilisateurs si non spécifié.

tuer tous

Tuez tous les processus en arrière-plan.

diffuser[[[[options] intention

Émettre une intention de diffusion.

Voir le
Spécification pour les arguments d'intention.

Les options sont:

  • [--utilisateur[--utilisateur[--user[--useridentifiant d'utilisateur | tous | actuel]: Spécifiez l'utilisateur à qui envoyer; si non
            spécifié puis envoyé à tous les utilisateurs.

instrument[[[[options] composant

Commencer la surveillance avec un
Instrumentation exemple.
  Typiquement la cible composant

est la forme test_package/runner_class.

Les options sont:

  • -r: Imprimer les résultats bruts (sinon décoder
    report_key_streamresult). Utiliser avec
    [-e perf true] générer une sortie brute pour les mesures de performance.

  • -e prénom valeur: Définir l'argument prénom

    à valeur.
            Pour les coureurs de test, un formulaire commun est
    -e testrunner_flag valeur[[[[valeur...]
    .

  • -p fichier: Écrire des données de profilage dans fichier.
  • -w: Attendez que l'instrumentation soit terminée avant de revenir. Requis pour
            coureurs de test.

  • --no-window-animation: Désactive les animations de la fenêtre en cours d'exécution.
  • --utilisateur identifiant d'utilisateur | actuel: Spécifie l’instrumentation utilisateur qui s’exécute;
            utilisateur actuel si non spécifié.

début du profil processus fichier

Démarrer le profileur sur processus, écrivez les résultats dans fichier.

arrêt de profil processus

Arrêter le profileur sur processus.

dumpheap[[[[options] processus fichier

Dump le tas de processus, écrire à fichier.

Les options sont:

  • --utilisateur[[[[identifiant d'utilisateur | actuel]: Lors de la fourniture d'un nom de processus,
            spécifier l'utilisateur du processus à vider; utilise l'utilisateur actuel s'il n'est pas spécifié.
  • -n: Dump du segment de mémoire natif au lieu du segment de mémoire géré.

set-debug-app[[[[options] paquet

Définir l'application paquet déboguer.

Les options sont:

  • -w: Attendez le débogueur lorsque l'application démarre.
  • --persistant: Conserve cette valeur.

clear-debug-app

Effacer le paquet précédent défini pour le débogage avec set-debug-app.

moniteur[[[[options]

Commencez à surveiller les collisions ou les ANR.

Les options sont:

  • --gdb: Lancez gdbserv sur le port donné lors du crash / ANR.

screen-compat de paquet

Contrôle écran
compatibilité
mode de paquet.

taille d'affichage[réinitialiser|[réinitialiser|[reset|[reset|largeurXla taille]

Ignorer la taille d'affichage du périphérique.
Cette commande est utile pour tester votre application sur différentes tailles d'écran en imitant une petite
résolution d'écran à l'aide d'un appareil avec un grand écran, et inversement.

Exemple:
suis taille d'écran 1280x800

densité d'affichage dpi

Ignorer la densité d'affichage du périphérique.
Cette commande est utile pour tester votre application sur différentes densités d'écran sur des sites haute densité.
environnement d’écran utilisant un écran de faible densité, et inversement.

Exemple:
suis densité d'affichage 480

to-uri intention

Affiche la spécification d'intention donnée en tant qu'URI.

Voir le
Spécification pour les arguments d'intention.

à-intention-uri intention

Imprimer la spécification d'intention donnée en tant que intention: URI.

Voir le
Spécification pour les arguments d'intention.

Spécification pour les arguments d'intention

Pour les commandes du gestionnaire d’activités qui prennent une intention argument, vous pouvez
spécifiez l'intention avec les options suivantes:

Gestionnaire de paquets d'appel (pm)

Dans un shell adb, vous pouvez émettre des commandes avec le gestionnaire de packages (pm) outil pour
effectuer des actions et des requêtes sur les packages d'applications installés sur le périphérique. Alors que dans une coquille,
la syntaxe est la suivante:




pm commander

Vous pouvez également émettre une commande de gestionnaire de paquets directement à partir de adb
sans entrer dans un shell distant. Par exemple:




adb shell pm désinstaller com.example.MyApp

Tableau 3. Commandes disponibles du gestionnaire de paquets.

Commander La description

liste des paquets[[[[options] filtre

Imprime tous les paquets, optionnellement seulement
  ceux dont le nom du paquet contient le texte filtre.

Options:

  • -F: Voir leur fichier associé.
  • -ré: Filtre pour afficher uniquement les packages désactivés.
  • -e: Filtre pour afficher uniquement les packages activés.
  • -s: Filtre pour afficher uniquement les packages système.
  • -3: Filtre pour afficher uniquement les packages tiers.
  • -je: Voir l'installeur pour les paquets.
  • -u: Incluez également les packages désinstallés.
  • --utilisateur identifiant d'utilisateur: L'espace utilisateur à interroger.

lister les groupes de permissions

Imprime tous les groupes de permissions connus.

liste des autorisations[[[[options] groupe

Imprime toutes les autorisations connues, éventuellement uniquement.
  ceux de groupe.

Options:

  • -g: Organiser par groupe.
  • -F: Imprimer toutes les informations.
  • -s: Court résumé.
  • -ré: Énumère uniquement les autorisations dangereuses.
  • -u: Liste uniquement les autorisations que les utilisateurs verront.

liste instrumentation[[[[options]

Répertoriez tous les packages de test.

Options:

  • -F: Répertorie le fichier APK pour le package de test.
  • target_package: Liste des packages de test pour cette application uniquement.

liste des fonctionnalités

Imprime toutes les fonctionnalités du système.

listes de bibliothèques

Imprime toutes les bibliothèques prises en charge par le périphérique actuel.

liste des utilisateurs

Imprime tous les utilisateurs du système.

chemin paquet

Imprimer le chemin vers l'APK du donné paquet.

installer[[[[options] chemin

Installe un paquet (spécifié par chemin) au système.

Options:

  • -l: Installez le paquet avec le verrou avant.
  • -r: Réinstallez une application existante en conservant ses données.
  • -t: Permet d'installer les APK de test. Gradle génère un test APK quand
          vous avez uniquement exécuté ou débogué votre application ou avez utilisé Android Studio Build > Build
          APK
    commander. If the APK is built using a developer preview SDK
          (if the targetSdkVersion est
          a letter instead of a number), you must include the
    -t option
         avec le installer command if you are installing a test APK.
  • -je installer_package_name: Specify the installer package name.
  • -s: Install package on the shared mass storage (such as sdcard).
  • -F: Install package on the internal system memory.
  • -d: Allow version code downgrade.
  • -g: Grant all permissions listed in the app manifest.

désinstaller[[[[options] paquet

Removes a package from the system.

Options:

  • -k: Keep the data and cache directories around after package removal.

clair paquet

Deletes all data associated with a package.

activer package_or_component

Enable the given package or component (written as "package/class").

désactiver package_or_component

Disable the given package or component (written as "package/class").

disable-user[[[[options] package_or_component

Options:

  • --user user_id: The user to disable.

subvention package_name autorisation

Grant a permission to an app. On devices running Android 6.0 (API level 23)
and higher, the permission can be any permission declared in the app manifest. On devices
running Android 5.1 (API level 22) and lower, must be an optional permission defined by the
app.

révoquer package_name autorisation

Revoke a permission from an app. On devices running Android 6.0 (API level
23) and higher, the permission can be any permission declared in the app manifest. On devices
running Android 5.1 (API level 22) and lower, must be an optional permission defined by the
app.

set-install-location emplacement

Changes the default install location. Location values:

  • 0: Auto: Let system decide the best location.
  • 1: Internal: install on internal device storage.
  • 2: External: on external media.

Remarque: This is only intended for debugging; using this can cause
  apps to break and other undesireable behavior.

get-install-location

Returns the current install location. Return values:

  • 0 [auto]: Lets system decide the best location
  • 1 [internal]: Installs on internal device storage
  • 2 [external]: Installs on external media

set-permission-enforced autorisation [true | false]

Specifies whether the given permission should be enforced.

trim-caches desired_free_space

Trim cache files to reach the given free space.

create-user user_name

Create a new user with the given user_name,
  printing the new user identifier of the user.

remove-user user_id

Remove the user with the given user_id,
  deleting all data associated with that user

get-max-users

Prints the maximum number of users supported by the device.

Call device policy manager (dpm)

To help you develop and test your device management (or other enterprise) apps, you can issue
  commands to the device policy manager (dpm) tool. Use the tool to control the active
  admin app or change a policy's status data on the device.
While in a shell, the syntax is:




dpm commander

You can also issue a device policy manager command directly from adb
  without entering a remote shell:




adb shell dpm commander

Table 4. Available device policy manager commands

Commander La description
set-active-admin[[[[options] composant

Ensembles composant as active admin.

Options are:

  • --user user_id: Specify the target user. You can also pass
    --user current to select the current user.
set-profile-owner[[[[options] composant

Ensembles composant as active admin and its package as profile owner for an existing user.

Options are:

  • --user user_id: Specify the target user. Vous pouvez
        also pass --user current to select the current user.
  • --name prénom: Specify the human-readable organization name.
set-device-owner[[[[options] composant

Ensembles composant as active admin and its package as device owner.

Options are:

  • --user user_id: Specify the target user. You can also pass
    --user current to select the current user.
  • --name prénom: Specify the human-readable organization name.
remove-active-admin[[[[options] composant

Disables an active admin. The app must declare
android:testOnly
in the manifest. This command also removes device and profile owners.

Options are:

  • --user user_id: Specify the target user. You can also pass
    --user current to select the current user.
clear-freeze-period-record

Clears the device's record of previously-set freeze periods for system OTA updates. This is useful
to avoid the device's scheduling restrictions when developing apps that manage freeze-periods. Voir
Manage system updates.

Supported on devices running Android 9.0 (API level 28) and higher.

force-network-logs

Forces the system to make any existing network logs ready for retrieval by a DPC. If there are
connection or DNS logs available, the DPC receives the
onNetworkLogsAvailable()
callback. See Network activity logging.

This command is rate-limited. Supported on devices running Android 9.0 (API level 28) and higher.

force-security-logs

Forces the system to make any existing security logs available to the DPC. If there are logs
available, the DPC receives the
onSecurityLogsAvailable()
callback. Voir Log enterprise device
activité
.

This command is rate-limited. Supported on devices running Android 9.0 (API level 28) and higher.

Take a screenshot

le screencap command is a shell utility for taking a screenshot of a device display.
While in a shell, the syntax is:




screencap nom de fichier

To use the screencap from the command line, type the following:




adb shell screencap /sdcard/screen.png

Here's an example screenshot session, using the adb shell to capture the screenshot and the
tirez command to download the file from the device:




$ adb shell
shell@ $ screencap /sdcard/screen.png
shell@ $ exit
$ adb pull /sdcard/screen.png

Record a video

le screenrecord command is a shell utility for recording the display of devices
  running Android 4.4 (API level 19) and higher. The utility records screen activity to an MPEG-4
  fichier. You can use this file to create promotional or training videos or for debugging and testing.

In a shell, use the following syntax:




screenrecord[[[[options] nom de fichier

To use screenrecord from the command line, type the following:




adb shell screenrecord /sdcard/demo.mp4

Stop the screen recording by pressing Control + C (Command + C on Mac); otherwise, the recording
  stops automatically at three minutes or the time limit set by --time-limit.

To begin recording your device screen, run the screenrecord command to record
the video. Then, run the tirez command to download the video from the device to the host
ordinateur. Here's an example recording session:




$ adb shell
shell@ $ screenrecord --verbose /sdcard/demo.mp4
(press Control + C to stop)
shell@ $ exit
$ adb pull /sdcard/demo.mp4

le screenrecord utility can record at any supported resolution and bit rate you
  request, while retaining the aspect ratio of the device display. The utility records at the native
  display resolution and orientation by default, with a maximum length of three minutes.

Limitations of the screenrecord utility:

  • Audio is not recorded with the video file.
  • Video recording is not available for devices running Wear OS.
  • Some devices might not be able to record at their native display resolution.
        If you encounter problems with screen recording, try using a lower screen resolution.
  • Rotation of the screen during recording is not supported. If the screen does rotate during
        recording, some of the screen is cut off in the recording.

Table 5. screenrecord options

Les options La description
--Aidez-moi Displays command syntax and options
--size largeurXla taille Sets the video size: 1280x720. The default value is the device's native
      display resolution (if supported), 1280×720 if not. For best results, use a size supported
      by your device's Advanced Video Coding (AVC) encoder.
--bit-rate taux Sets the video bit rate for the video, in megabits per second. The default value is 4Mbps.
      You can increase the bit rate to improve video quality, but doing so results in larger movie
      des dossiers. The following example sets the recording bit rate to 6Mbps:

screenrecord --bit-rate 6000000 /sdcard/demo.mp4
--time-limit temps Sets the maximum recording time, in seconds. The default and maximum value is 180
      (3 minutes).
--rotate Rotates the output 90 degrees. This feature is experimental.
--verbeux Displays log information on the command-line screen. If you do not set this option,
      the utility does not display any information while running.

Read ART profiles for apps

Starting in Android 7.0 (API level 24) the Android Runtime (ART) collects execution profiles for
   installed apps, which are used to optimize app performance. You might want
   to examine the collected profiles to understand which methods are determined to be frequently
   executed and which classes are used during app startup.

To produce a text form of the profile information, use the command:




adb shell cmd package dump-profiles paquet

To retrieve the file produced, use:




adb pull /data/misc/profman/paquet.SMS

Other shell commands

For a list of all the available shell programs, use the following command:

adb shell ls /system/bin

Help is available for most of the commands.

Table below lists some of the more common adb shell commands.

Table 6. Some other adb shell commands

Shell command La description
dumpsys Dumps system data to the screen. To learn more about this command-line tool, read
dumpsys
dumpstate Dumps state to a file.
logcat [option]...
[filter-spec]...
Enables system and app logging and prints output to the screen.

See also Logcat Command-Line Tool.

dmesg Prints kernel debugging messages to the screen.
début Starts (restarts) a device.
Arrêtez Stops execution of a device.
sqlite3 Starts the sqlite3 command-line program.

le sqlite3 tool includes commands such as
.dump to print out the contents of a table and
.schema to print the SQL CREATE statement for an existing table.
You can also execute SQLite commands on the fly.

SQLite3 databases are stored in the folder
/data/data/package_name/databases/.

Par exemple:




$ adb -s emulator-5554 shell
$ sqlite3 /data/data/com.example.app/databases/rssitems.db
SQLite version 3.3.12
Enter ".help" for instructions

For more information, see the sqlite3 command line documentation.

Click to rate this post!
[Total: 0 Average: 0]

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.