En esta página, se describen las herramientas de depuración del servicio de cámara para ver los cambios en los valores de solicitud y resultado de captura que se envían desde y hacia la HAL de la cámara. El servicio de cámara incluye los comandos watch
y dumpsys
.
El comando watch
, disponible en dispositivos con Android 13 o versiones posteriores, permite controlar cuándo se supervisan y se accede a las etiquetas, obtener una vista previa en vivo de los volcados de supervisión de etiquetas de los clientes abiertos y ver los volcados almacenados en caché de los clientes cerrados. El comando dumpsys
permite acceder a la información de depuración, pero no proporciona volcados de supervisión de etiquetas de los clientes cerrados.
Comando de reloj
En esta sección, se describe cómo usar el comando watch
y se proporcionan ejemplos.
Etiquetas de inicio de la supervisión
Para comenzar a supervisar etiquetas, usa el siguiente comando:
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 supervisarán. También acepta la abreviatura3a
, en la que3a
hace referencia al conjunto de todas las etiquetasandroid.control.*
relacionadas con AF, AE y AWB (para obtener la lista completa de etiquetas, consultaTagMonitor.cpp
).clients
: Argumento opcional. Lista separada por comas de los nombres de los paquetes de clientes para los que se supervisan las etiquetas. Observa todos los clientes si no se pasa ningún argumento de cliente o siall
está presente en la lista de clientes.
Este comando inicia la supervisión de etiquetas en los clientes abiertos y en los clientes que se abran posteriormente (hasta que se llame a stop
). Después de que se llama a start
, el servicio de cámara almacena en caché los volcados de supervisión de etiquetas de los clientes cuando estos se cierran.
A menos que se llame a start
, el servicio de la cámara no supervisa las etiquetas de ningún cliente ni almacena en caché los volcados de supervisión de etiquetas. Si se pasa all
en el parámetro clients
, el servicio de la cámara supervisa las etiquetas y almacena en caché los volcados de supervisión de todos los clientes.
Volca la información de supervisión de la etiqueta
Para volcar la información de supervisión de etiquetas, usa el siguiente comando:
adb shell cmd media.camera watch dump
Este comando vuelca la información de supervisión de etiquetas en la salida estándar y, luego, sale. Imprime los volcados de supervisión de etiquetas almacenados en caché de los clientes que se cerraron desde start
(o el último clear
) y el volcado de supervisión de etiquetas más reciente de los clientes abiertos.
Ejemplo de resultado:
$ 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
...
Obtén una vista previa de la información de supervisión de etiquetas en tiempo real
Para obtener una vista previa de la información de supervisión de etiquetas en tiempo real, usa lo siguiente:
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 1,000 si no se pasa ningún valor.
Este comando imprime información de supervisión de etiquetas en tiempo real. Para salir, presiona Intro o Retorno.
Ejemplo de resultado:
$ 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]
Cómo borrar volcados almacenados en caché
Para borrar todos los volcados de supervisión de etiquetas almacenados en caché, usa el siguiente comando:
adb shell cmd media.camera watch clear
Este comando no detiene la supervisión de etiquetas.
Etiquetas de detener la supervisión
Para detener la supervisión de etiquetas en todos los clientes y borrar todos los búferes que se mantienen para los volcados de supervisión de etiquetas en caché, usa lo siguiente:
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 la cámara. El siguiente comando captura todo el volcado de depuración del servicio de la cámara:
adb shell dumpsys media.camera
El comando dumpsys
también permite capturar volcados de supervisión de etiquetas de clientes abiertos. Sin embargo, dumpsys
no proporciona volcados de supervisión de etiquetas de clientes cerrados. A continuación, se muestran ejemplos del uso de dumpsys
para la supervisión de etiquetas:
Captura volcados de supervisión de etiquetas de todos los clientes abiertos:
adb shell dumpsys media.camera -m 3a | grep -A50 Monitored
Obtén una vista previa en vivo de la información de supervisión de etiquetas con el comando
watch
de Linux:watch -n 1 -c 'adb shell dumpsys media.camera -m 3a | grep -A50 Monitored'