Debug della fotocamera

Questa pagina descrive gli strumenti di debug nel servizio della fotocamera per visualizzare le modifiche nella richiesta di acquisizione e nei valori dei risultati inviati da e verso l'HAL della fotocamera. Il servizio fotocamera include i comandi watch e dumpsys . Disponibile sui dispositivi con Android 13 o versioni successive, il comando watch consente il controllo su quando monitorare e accedere ai tag, l'anteprima in tempo reale dei dump di monitoraggio dei tag dai client aperti e la visualizzazione dei dump memorizzati nella cache dai client chiusi. Il comando dumpsys consente l'accesso alle informazioni di debug ma non fornisce dump di monitoraggio dei tag dai client chiusi.

comando di guardia

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 di tag da monitorare. Accetta anche la scorciatoia 3a , dove 3a si riferisce all'insieme di tutti i tag android.control.* relativi ad AF, AE e AWB (per l'elenco completo dei tag, vedere TagMonitor.cpp ).
  • clients : argomento facoltativo. Elenco separato da virgole di nomi di pacchetti client per i quali vengono monitorati i tag. Controlla tutti i client se non viene passato alcun argomento client o se sono presenti all nell'elenco dei client.

Questo comando avvia il monitoraggio dei tag nei client aperti e in tutti i client che verranno aperti successivamente (fino al richiamo stop ). Dopo aver richiamato start , il servizio fotocamera memorizza nella cache i dump di monitoraggio dei tag dai client quando i client vengono chiusi.

A meno che non venga chiamato start , il servizio fotocamera non monitora i tag per nessun client e non memorizza nella cache i dump del monitoraggio dei tag. Se viene passato all nel parametro clients , il servizio fotocamera monitora i tag e memorizza nella cache i dump di monitoraggio di tutti i client.

Scarica le informazioni sul monitoraggio dei tag

Per scaricare le informazioni sul monitoraggio dei tag, utilizzare:

adb shell cmd media.camera watch dump

Questo comando scarica le informazioni di monitoraggio del tag sull'output standard e quindi esce. Stampa i dump di monitoraggio dei tag memorizzati nella cache dai client che sono stati chiusi start (o dall'ultima clear ) e l'ultimo dump di monitoraggio dei tag dai client aperti.

Output di esempio:

$ 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
...

Anteprima delle informazioni sul monitoraggio dei tag in tempo reale

Per visualizzare in anteprima le informazioni sul monitoraggio dei tag in tempo reale, utilizzare:

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 in cui aggiornare le informazioni. Il valore predefinito è 1000 se non viene passato alcun valore.

Questo comando stampa le informazioni sul monitoraggio dei tag in tempo reale. Per uscire, premere Invio / Invio .

Output di esempio:

$ 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]

Cancella i dump memorizzati nella cache

Per cancellare tutti i dump del monitoraggio dei tag memorizzati nella cache, utilizzare:

adb shell cmd media.camera watch clear

Questo comando non interrompe il monitoraggio dei tag.

Smetti di monitorare i tag

Per interrompere il monitoraggio dei tag in tutti i client e cancellare tutti i buffer trattenuti per la memorizzazione nella cache dei dump del monitoraggio dei tag, utilizzare:

adb shell cmd media.camera watch stop

comando dumpsys

Il comando dumpsys fornisce una serie di informazioni di debug dal servizio fotocamera. Il comando seguente acquisisce l'intero dump di debug dal servizio fotocamera:

adb shell dumpsys media.camera

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

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

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

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