Depuración de cámara

Esta página describe las herramientas de depuración en el servicio de cámara para ver los cambios en la solicitud de captura y los valores de resultado que se envían hacia y desde la cámara HAL. El servicio de cámara incluye los comandos watch y dumpsys . Disponible en dispositivos con Android 13 o superior, el comando watch permite controlar cuándo se monitorean y acceden a las etiquetas, obtener una vista previa en vivo de los volcados de monitoreo de etiquetas de clientes abiertos y ver volcados en caché de clientes cerrados. El comando dumpsys permite acceder a información de depuración pero no proporciona volcados de monitoreo de etiquetas de clientes cerrados.

comando de vigilancia

Esta sección describe cómo utilizar el comando watch y proporciona ejemplos.

Comenzar a monitorear etiquetas

Para comenzar a monitorear etiquetas, use:

adb shell cmd media.camera watch start -m <tags> [-c <clients>]

Ejemplo:

adb shell cmd media.camera watch start \
-m android.control.effectMode,android.control.aeMode \
-c com.google.android.GoogleCamera,com.android.chrome

Argumentos:

  • tags : lista de etiquetas separadas por comas que se van a monitorear. También acepta la abreviatura 3a , donde 3a se refiere al conjunto de todas las etiquetas android.control.* relacionadas con AF, AE y AWB (para obtener la lista completa de etiquetas, consulte TagMonitor.cpp ).
  • clients : Argumento opcional. Lista separada por comas de nombres de paquetes de clientes para los cuales se monitorean las etiquetas. Observa a todos los clientes si no se pasa ningún argumento de cliente o si all están presentes en la lista de clientes.

Este comando inicia la supervisión de etiquetas en los clientes abiertos y en cualquier cliente que se abra posteriormente (hasta que se llame a stop ). Después de llamar start , el servicio de cámara almacena en caché los volcados de monitoreo de etiquetas de los clientes cuando los clientes cierran.

A menos que se llame start , el servicio de cámara no monitorea las etiquetas de ningún cliente y no almacena en caché los volcados de monitoreo de etiquetas. Si se pasa all en el parámetro clients , el servicio de cámara monitorea las etiquetas y almacena en caché los volcados de monitoreo de todos los clientes.

Información de monitoreo de etiquetas de volcado

Para volcar información de monitoreo de etiquetas, use:

adb shell cmd media.camera watch dump

Este comando vuelca la información de monitoreo de etiquetas a la salida estándar y luego sale. Imprime los volcados de monitoreo de etiquetas en caché de los clientes que se han cerrado desde start (o el último clear ) y el último volcado de monitoreo de etiquetas de los clientes abiertos.

Salida de muestra:

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

Obtenga una vista previa de la información de monitoreo de etiquetas en tiempo real

Para obtener una vista previa de la información de monitoreo de etiquetas en tiempo real, use:

adb shell cmd media.camera watch live [-n refresh_interval_ms]

Ejemplo:

adb shell cmd media.camera watch live -n 250

Argumentos:

  • refresh_interval_ms : Argumento opcional. Intervalo en milisegundos para actualizar la información. El valor predeterminado es 1000 si no se pasa ningún valor.

Este comando imprime información de monitoreo de etiquetas en tiempo real. Para salir, presione regresar / entrar .

Salida de muestra:

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

Borrar volcados en caché

Para borrar todos los volcados de monitoreo de etiquetas en caché, use:

adb shell cmd media.camera watch clear

Este comando no detiene el monitoreo de etiquetas.

Dejar de monitorear etiquetas

Para detener el monitoreo de etiquetas en todos los clientes y borrar todos los buffers retenidos para almacenar en caché los volcados de monitoreo de etiquetas, use:

adb shell cmd media.camera watch stop

comando dumpsys

El comando dumpsys proporciona una gran cantidad de información de depuración del servicio de cámara. El siguiente comando captura todo el volcado de depuración del servicio de cámara:

adb shell dumpsys media.camera

El comando dumpsys también permite capturar volcados de monitoreo de etiquetas de clientes abiertos. Sin embargo, dumpsys no proporciona volcados de monitoreo de etiquetas de clientes cerrados. Los siguientes son ejemplos del uso dumpsys para el monitoreo de etiquetas:

  • Capture volcados de monitoreo de etiquetas de todos los clientes abiertos:

    adb shell dumpsys media.camera -m 3a | grep -A50 Monitored
    
  • Obtenga una vista previa en vivo de la información de monitoreo de etiquetas usando el comando watch de Linux:

    watch -n 1 -c 'adb shell dumpsys media.camera -m 3a | grep -A50 Monitored'