Cette page décrit les outils de débogage du service de caméra permettant d'afficher les modifications apportées aux requêtes de capture et aux valeurs de résultat envoyées vers et depuis l'HAL de la caméra. Le service de caméra inclut les commandes watch
et dumpsys
.
Disponible sur les appareils équipés d'Android 13 ou version ultérieure, la commande watch
permet de contrôler le moment où les balises sont surveillées et consultées, de prévisualiser en direct les vidages de surveillance des balises à partir de clients ouverts et d'afficher les vidages mis en cache à partir de clients fermés. La commande dumpsys
permet d'accéder aux informations de débogage, mais ne fournit pas de vidages de surveillance des balises à partir de clients fermés.
commande de visionnage
Cette section explique comment utiliser la commande watch
et fournit des exemples.
Commencer à surveiller les balises
Pour commencer à surveiller les balises, utilisez:
adb shell cmd media.camera watch start -m <tags> [-c <clients>]
Exemple :
adb shell cmd media.camera watch start \
-m android.control.effectMode,android.control.aeMode \
-c com.google.android.GoogleCamera,com.android.chrome
Arguments :
tags
: liste de tags à surveiller, séparés par une virgule. Accepte également le raccourci3a
, où3a
fait référence à l'ensemble de tous les tagsandroid.control.*
associés à AF, AE et AWB (pour obtenir la liste complète des tags, consultezTagMonitor.cpp
).clients
: argument facultatif. Liste de noms de packages client pour lesquels les tags sont surveillés, séparés par une virgule. Surveille tous les clients si aucun argument client n'est transmis ou siall
figure dans la liste des clients.
Cette commande lance la surveillance des tags dans les clients ouverts et dans tous ceux qui sont ensuite ouverts (jusqu'à ce que stop
soit appelé). Une fois start
appelé, le service de caméra met en cache les vidages de surveillance des balises des clients lorsque les clients se ferment.
Sauf si start
est appelé, le service de caméra ne surveille pas les tags pour aucun client et ne met pas en cache les vidages de surveillance des tags. Si all
est transmis dans le paramètre clients
, le service de caméra surveille les balises et met en cache les vidages de surveillance de tous les clients.
Informations de surveillance de la balise de vidage
Pour extraire les informations de surveillance des balises, utilisez:
adb shell cmd media.camera watch dump
Cette commande vide les informations de surveillance des balises dans la sortie standard, puis s'arrête. Il imprime les vidages de surveillance des balises mis en cache des clients qui se sont fermés depuis start
(ou le dernier clear
) et le dernier vidage de surveillance des balises des clients ouverts.
Exemple de résultat :
$ adb shell cmd media.camera watch dump
Client: com.android.chrome (active)
1:com.android.chrome f0:532642803202286ns: REQ:android.control.aeMode: [ON] output stream ids: 0
1:com.android.chrome f0:532642803202286ns: REQ:android.control.afMode: [CONTINUOUS_PICTURE] output stream ids: 0
..
Client: com.google.android.GoogleCamera (cached)
0:com.google.android.GoogleCamera f0:532601698728552ns: REQ:android.control.aeMode: [ON] output stream ids: 0 3 1 2
0:com.google.android.GoogleCamera f0:532601698728552ns: REQ:android.control.afMode: [CONTINUOUS_PICTURE] output stream ids: 2 1 3 0
0:com.google.android.GoogleCamera f0:532601698728552ns: REQ:android.control.awbMode: [AUTO] output stream ids: 0 3 1 2
...
Prévisualiser les informations de surveillance des balises en temps réel
Pour prévisualiser les informations de surveillance des balises en temps réel, utilisez:
adb shell cmd media.camera watch live [-n refresh_interval_ms]
Exemple :
adb shell cmd media.camera watch live -n 250
Arguments :
refresh_interval_ms
: argument facultatif. Intervalle en millisecondes pour actualiser les informations. Si aucune valeur n'est transmise, la valeur par défaut est 1 000.
Cette commande affiche des informations de surveillance des balises en temps réel. Pour quitter, appuyez sur Entrée/Retour.
Exemple de résultat :
$ adb shell cmd media.camera watch live
Press return to exit...
0:com.google.android.GoogleCamera f0:533016991302201ns: REQ:android.control.aeMode: [ON] output stream ids: 1 3 0 2
0:com.google.android.GoogleCamera f0:533016991302201ns: REQ:android.control.afMode: [CONTINUOUS_PICTURE] output stream ids: 2 0 3 1
...
0:com.google.android.GoogleCamera f0:533017066793915ns: RES:android.control.aeState: [SEARCHING]
0:com.google.android.GoogleCamera f0:533017066793915ns: 3 RES:android.control.aeState: [SEARCHING]
0:com.google.android.GoogleCamera f0:533017066793915ns: 2 RES:android.control.aeState: [SEARCHING]
0:com.google.android.GoogleCamera f0:533017066793915ns: RES:android.control.afState: [PASSIVE_SCAN]
Vider les vidages mis en cache
Pour effacer tous les vidages de surveillance des balises mis en cache, utilisez:
adb shell cmd media.camera watch clear
Cette commande n'arrête pas la surveillance des balises.
Arrêter la surveillance des balises
Pour arrêter la surveillance des balises dans tous les clients et effacer tous les tampons conservés pour la mise en cache des vidages de surveillance des balises, utilisez:
adb shell cmd media.camera watch stop
Commande dumpsys
La commande dumpsys
fournit un grand nombre d'informations de débogage à partir du service de la caméra. La commande suivante capture l'intégralité du vidage de débogage du service de caméra:
adb shell dumpsys media.camera
La commande dumpsys
permet également de capturer les vidages de la surveillance des balises à partir de clients ouverts. Toutefois, dumpsys
ne fournit pas de vidages de surveillance des balises à partir de clients fermés. Voici des exemples d'utilisation de dumpsys
pour la surveillance des balises:
Capturez les fichiers de dump de la surveillance des tags de tous les clients ouverts:
adb shell dumpsys media.camera -m 3a | grep -A50 Monitored
Obtenez un aperçu en direct des informations de surveillance des balises à l'aide de la commande Linux
watch
:watch -n 1 -c 'adb shell dumpsys media.camera -m 3a | grep -A50 Monitored'