Esta página descreve as ferramentas de depuração no serviço de câmera para visualizar alterações na solicitação de captura e nos valores de resultado que são enviados de e para o HAL da câmera. O serviço de câmera inclui os comandos watch
e dumpsys
. Disponível em dispositivos com Android 13 ou superior, o comando watch
permite controlar quando as tags são monitoradas e acessadas, visualização ao vivo de dumps de monitoramento de tags de clientes abertos e visualização de dumps em cache de clientes fechados. O comando dumpsys
permite acessar informações de depuração, mas não fornece dumps de monitoramento de tags de clientes fechados.
comando de observação
Esta seção descreve como usar o comando watch
e fornece exemplos.
Comece a monitorar tags
Para começar a monitorar tags, use:
adb shell cmd media.camera watch start -m <tags> [-c <clients>]
Exemplo:
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 separada por vírgulas de tags a serem monitoradas. Também aceita a abreviação3a
, onde3a
se refere ao conjunto de todas as tagsandroid.control.*
relacionadas a AF, AE e AWB (para a lista completa de tags, consulteTagMonitor.cpp
). -
clients
: argumento opcional. Lista separada por vírgulas de nomes de pacotes de clientes para os quais as tags são monitoradas. Observa todos os clientes se nenhum argumento de cliente for passado ou seall
estiverem presentes na lista de clientes.
Este comando inicia o monitoramento de tags em clientes abertos e em quaisquer clientes que sejam abertos posteriormente (até que stop
seja chamado). Depois que start
é chamado, o serviço de câmera armazena em cache dumps de monitoramento de tags dos clientes quando os clientes fecham.
A menos que start
seja chamado, o serviço de câmera não monitora tags para nenhum cliente e não armazena em cache dumps de monitoramento de tags. Se all
for passado no parâmetro clients
, o serviço de câmera monitora tags e armazena em cache os dumps de monitoramento de todos os clientes.
Informações de monitoramento de tag de despejo
Para despejar informações de monitoramento de tags, use:
adb shell cmd media.camera watch dump
Este comando despeja as informações de monitoramento de tag na saída padrão e depois sai. Ele imprime os dumps de monitoramento de tags em cache de clientes que foram fechados desde start
(ou pela última clear
) e o dump de monitoramento de tags mais recente de clientes abertos.
Exemplo de saída:
$ 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
...
Visualize informações de monitoramento de tags em tempo real
Para visualizar informações de monitoramento de tags em tempo real, use:
adb shell cmd media.camera watch live [-n refresh_interval_ms]
Exemplo:
adb shell cmd media.camera watch live -n 250
Argumentos:
-
refresh_interval_ms
: argumento opcional. Intervalo em milissegundos para atualizar as informações. O padrão é 1000 se nenhum valor for passado.
Este comando imprime informações de monitoramento de tags em tempo real. Para sair, pressione return / enter .
Exemplo de saída:
$ 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]
Limpar dumps em cache
Para limpar todos os dumps de monitoramento de tags em cache, use:
adb shell cmd media.camera watch clear
Este comando não interrompe o monitoramento de tags.
Pare de monitorar tags
Para interromper o monitoramento de tags em todos os clientes e limpar todos os buffers retidos para armazenar em cache dumps de monitoramento de tags, use:
adb shell cmd media.camera watch stop
comando dumpsys
O comando dumpsys
fornece uma série de informações de depuração do serviço de câmera. O comando a seguir captura todo o dump de depuração do serviço de câmera:
adb shell dumpsys media.camera
O comando dumpsys
também permite capturar dumps de monitoramento de tags de clientes abertos. No entanto, dumpsys
não fornece dumps de monitoramento de tags de clientes fechados. A seguir estão exemplos de uso dumpsys
para monitoramento de tags:
Capture dumps de monitoramento de tags de todos os clientes abertos:
adb shell dumpsys media.camera -m 3a | grep -A50 Monitored
Obtenha uma visualização ao vivo das informações de monitoramento de tags usando o comando
watch
do Linux:watch -n 1 -c 'adb shell dumpsys media.camera -m 3a | grep -A50 Monitored'