En esta página, se describen las herramientas de depuración del servicio de cámara para ver los cambios en las solicitudes de captura y los valores de resultados que se envían desde y hacia la HAL de la cámara. El servicio de la cámara incluye los comandos watch
y dumpsys
.
Disponible en dispositivos con Android 13 o versiones posteriores, el comando watch
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 clientes cerrados.
comando watch
En esta sección, se describe cómo usar el comando watch
y se proporcionan ejemplos.
Cómo comenzar a supervisar etiquetas
Para comenzar a supervisar etiquetas, usa lo siguiente:
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
: Es una 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
: Es un argumento opcional. Es una lista de nombres de paquetes de clientes separados por comas para los que se supervisan las etiquetas. Supervisa 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 cualquier cliente que se abra posteriormente (hasta que se llame a stop
). Después de llamar a start
, el servicio de la 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.
Cómo volcar información de supervisión de etiquetas
Para volcar la información de supervisión de etiquetas, usa lo siguiente:
adb shell cmd media.camera watch dump
Este comando vuelca la información de supervisión de etiquetas en el resultado estándar y, luego, se cierra. 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.
Resultado 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
...
Obtén una vista previa de la información de supervisión de las 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
: Es un argumento opcional. Es el intervalo en milisegundos en el que se actualiza 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.
Resultado 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]
Cómo borrar volcados almacenados en caché
Para borrar todos los volcados de supervisión de etiquetas almacenados en caché, usa lo siguiente:
adb shell cmd media.camera watch clear
Este comando no detiene la supervisión de etiquetas.
Cómo dejar de supervisar etiquetas
Para dejar de supervisar las etiquetas en todos los clientes y borrar todos los búferes que se mantienen para almacenar en caché los volcados de supervisión de etiquetas, 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. Los siguientes son 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'