Débogage de la caméra

Cette page décrit les outils de débogage du service de caméra permettant d'afficher les modifications apportées aux demandes de capture et aux valeurs de résultat envoyées vers et depuis la caméra HAL. Le service de caméra comprend les commandes watch et dumpsys . Disponible sur les appareils exécutant Android 13 ou version ultérieure, la commande watch permet de contrôler le moment où les balises sont surveillées et accessibles, de prévisualiser en direct les dumps de surveillance des balises à partir de clients ouverts et d'afficher les dumps 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 dumps de surveillance des balises à partir de clients fermés.

regarder la commande

Cette section décrit comment utiliser la commande watch et fournit des exemples.

Commencer à surveiller les balises

Pour démarrer la surveillance des 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 balises séparées par des virgules à surveiller. Accepte également le raccourci 3a , où 3a fait référence à l'ensemble de toutes les balises android.control.* liées à AF, AE et AWB (pour la liste complète des balises, voir TagMonitor.cpp ).
  • clients : argument facultatif. Liste de noms de packages clients séparés par des virgules pour lesquels les balises sont surveillées. Surveille tous les clients si aucun argument client n'est transmis ou si all est présent dans la liste des clients.

Cette commande démarre la surveillance des balises dans les clients ouverts et dans tous les clients ouverts ultérieurement (jusqu'à ce que stop soit appelé). Après l'appel du start , le service de caméra met en cache les vidages de surveillance des balises des clients lorsque ceux-ci se ferment.

À moins que start ne soit appelé, le service de caméra ne surveille les balises d’aucun client et ne met pas en cache les vidages de surveillance des balises. 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 des balises de vidage

Pour vider les informations de surveillance des balises, utilisez :

adb shell cmd media.camera watch dump

Cette commande transfère les informations de surveillance des balises vers la sortie standard, puis se termine. Il imprime les vidages de surveillance des balises mis en cache des clients fermés depuis start (ou le dernier clear ) et le dernier vidage de surveillance des balises des clients ouverts.

Exemple de sortie :

$ 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évisualisez 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. La valeur par défaut est 1 000 si aucune valeur n'est transmise.

Cette commande imprime les informations de surveillance des balises en temps réel. Pour quitter, appuyez sur retour / entrée .

Exemple de sortie :

$ 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]

Effacer les dumps mis en cache

Pour effacer tous les dumps 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 de surveiller les balises

Pour arrêter la surveillance des balises dans tous les clients et effacer tous les tampons détenus 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 une multitude d'informations de débogage provenant du service de 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 dumps de surveillance des balises à partir de clients ouverts. Cependant, dumpsys ne fournit pas de dumps de surveillance des balises à partir de clients fermés. Voici des exemples d'utilisation dumpsys pour la surveillance des balises :

  • Capturez les dumps de surveillance des balises 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'