Debug della videocamera

Questa pagina descrive gli strumenti di debug nel servizio della fotocamera per visualizzare le modifiche ai valori della richiesta di acquisizione e dei risultati inviati verso e da HAL della fotocamera. 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 vengono monitorati e a cui viene eseguito l'accesso ai tag, di visualizzare in anteprima 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.

Inizia a monitorare i tag

Per iniziare a monitorare i 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.chrome

Argomenti:

  • tags: elenco separato da virgole dei tag da monitorare. Accetta anche la rappresentazione abbreviata 3a, dove 3a fa riferimento all'insieme di tutti i tag android.control.* relativi ad AF, AE e AWB (per l'elenco completo dei tag, consulta TagMonitor.cpp).
  • clients: argomento facoltativo. Elenco separato da virgole di nomi di pacchetti client per i quali vengono monitorati i tag. Monitora tutti i client se non viene passato alcun argomento client o se all è presente nell'elenco dei client.

Questo comando avvia il monitoraggio dei tag nei client aperti e in tutti i client che vengono aperti successivamente (fino alla chiamata di stop). Dopo la chiamata a start, il servizio della videocamera memorizza nella cache i dump del monitoraggio dei tag dei client quando questi si chiudono.

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 del 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 dump

Questo comando esegue il dump delle informazioni di monitoraggio dei tag nell'output standard e poi esce. Stampa i dump del monitoraggio dei tag memorizzati nella cache dei client chiusi da start (o dall'ultimo clear) e l'ultimo dump del monitoraggio dei tag dei 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 l'anteprima delle informazioni di monitoraggio dei tag in tempo reale

Per visualizzare l'anteprima delle 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 250

Argomenti:

  • 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 Return/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 del monitoraggio dei tag memorizzati nella cache, utilizza:

adb shell cmd media.camera watch clear

Questo 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 memorizzati per la memorizzazione nella cache dump del monitoraggio dei tag, utilizza:

adb shell cmd media.camera watch stop

Comando 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 fotocamera:

adb shell dumpsys media.camera

Il comando dumpsys consente anche di acquisire dump di monitoraggio dei tag dai client aperti. Tuttavia, dumpsys non fornisce dump di monitoraggio dei tag da client chiusi. Di seguito sono riportati alcuni esempi di utilizzo di dumpsys per il monitoraggio dei tag:

  • Acquisisci i dump del monitoraggio dei tag da tutti i client aperti:

    adb shell dumpsys media.camera -m 3a | grep -A50 Monitored
    
  • Visualizza l'anteprima in tempo reale delle informazioni di monitoraggio dei tag utilizzando il comando watch per Linux:

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