Questa pagina descrive gli strumenti di debug nel servizio della videocamera per visualizzare le modifiche nei valori delle richieste e dei risultati di acquisizione inviati e ricevuti dall'HAL della videocamera. Il servizio della videocamera include i comandi watch e dumpsys.
Disponibile sui dispositivi con Android 13 o versioni successive, il comando watch consente di controllare quando i tag vengono monitorati e acceduti, di visualizzare in anteprima in tempo reale i dump di monitoraggio dei tag dai client aperti e di visualizzare i dump memorizzati nella cache dai client chiusi. Il comando dumpsys consente di accedere alle informazioni di debug, ma non fornisce dump di monitoraggio dei tag dai client chiusi.
Comando watch
Questa sezione descrive come utilizzare il comando watch e fornisce esempi.
Avviare il monitoraggio dei tag
Per avviare il monitoraggio dei tag, utilizza:
adb shell cmd media.camera watch start -m <tags> [-c <clients>]Esempio:
adb shell cmd media.camera watch start \
-m android.control.effectMode,android.control.aeMode \
-c com.google.android.GoogleCamera,com.android.chromeArgomenti:
tags: elenco di tag separati da virgole da monitorare. Accetta anche l'abbreviazione3a, dove3asi riferisce all'insieme di tutti i tagandroid.control.*relativi ad AF, AE e AWB (per l'elenco completo dei tag, consultaTagMonitor.cpp).clients: argomento facoltativo. Elenco di nomi di pacchetti client separati da virgole per i quali vengono monitorati i tag. Monitora tutti i client se non viene passato alcun argomento client o seallè presente nell'elenco dei client.
Questo comando avvia il monitoraggio dei tag nei client aperti e in tutti i client aperti successivamente (finché non viene chiamato stop). Dopo aver chiamato start, il servizio della videocamera memorizza nella cache i dump di monitoraggio dei tag dai client quando questi vengono chiusi.
A meno che non venga chiamato start, il servizio della videocamera non monitora i tag per nessun client e non memorizza nella cache i dump di monitoraggio dei tag. Se all viene passato nel parametro clients, il servizio della videocamera monitora i tag e memorizza nella cache i dump di monitoraggio di tutti i client.
Eseguire il dump delle informazioni di monitoraggio dei tag
Per eseguire il dump delle informazioni di monitoraggio dei tag, utilizza:
adb shell cmd media.camera watch dumpQuesto comando esegue il dump delle informazioni di monitoraggio dei tag nell'output standard e poi esce. Stampa i dump di monitoraggio dei tag memorizzati nella cache dai client chiusi da quando è stato chiamato start (o l'ultimo clear) e l'ultimo dump di monitoraggio dei tag dai client aperti.
Esempio di output:
$ 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
...
Visualizzare in anteprima le informazioni di monitoraggio dei tag in tempo reale
Per visualizzare in anteprima le informazioni di monitoraggio dei tag in tempo reale, utilizza:
adb shell cmd media.camera watch live [-n refresh_interval_ms]Esempio:
adb shell cmd media.camera watch live -n 250Argomenti:
refresh_interval_ms: argomento facoltativo. Intervallo in millisecondi per aggiornare le informazioni. Se non viene passato alcun valore, il valore predefinito è 1000.
Questo comando stampa le informazioni di monitoraggio dei tag in tempo reale. Per uscire, premi Invio.
Esempio di output:
$ 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]
Cancellare i dump memorizzati nella cache
Per cancellare tutti i dump di monitoraggio dei tag memorizzati nella cache, utilizza:
adb shell cmd media.camera watch clearQuesto comando non interrompe il monitoraggio dei tag.
Interrompere il monitoraggio dei tag
Per interrompere il monitoraggio dei tag in tutti i client e cancellare tutti i buffer mantenuti per la memorizzazione nella cache dei dump di monitoraggio dei tag, utilizza:
adb shell cmd media.camera watch stopComando dumpsys
Il comando dumpsys fornisce una serie di informazioni di debug dal servizio della videocamera. Il seguente comando acquisisce l'intero dump di debug dal servizio della videocamera:
adb shell dumpsys media.cameraIl comando dumpsys consente anche di acquisire i dump di monitoraggio dei tag dai client aperti. Tuttavia, dumpsys non fornisce dump di monitoraggio dei tag dai client chiusi. Di seguito sono riportati esempi di utilizzo di dumpsys per il monitoraggio dei tag:
Acquisisci i dump di monitoraggio dei tag da tutti i client aperti:
adb shell dumpsys media.camera -m 3a | grep -A50 MonitoredOttieni l'anteprima in tempo reale delle informazioni di monitoraggio dei tag utilizzando il comando
watchdi Linux:watch -n 1 -c 'adb shell dumpsys media.camera -m 3a | grep -A50 Monitored'