Auf dieser Seite werden die Debugging-Tools im Kameradienst zum Anzeigen von Änderungen in den Erfassungsanforderungen und Ergebniswerten beschrieben, die an und von der Kamera-HAL gesendet werden. Der Kameradienst umfasst die Befehle watch
und dumpsys
. Der auf Geräten mit Android 13 oder höher verfügbare Befehl watch
ermöglicht die Kontrolle darüber, wann Tags überwacht und auf sie zugegriffen werden, eine Live-Vorschau von Tag-Überwachungs-Dumps von offenen Clients und die Anzeige zwischengespeicherter Dumps von geschlossenen Clients. Der Befehl dumpsys
ermöglicht den Zugriff auf Debugging-Informationen, stellt jedoch keine Tag-Überwachungs-Dumps von geschlossenen Clients bereit.
Watch-Befehl
In diesem Abschnitt wird die Verwendung des watch
Befehls beschrieben und Beispiele bereitgestellt.
Beginnen Sie mit der Überwachung von Tags
Um mit der Überwachung von Tags zu beginnen, verwenden Sie:
adb shell cmd media.camera watch start -m <tags> [-c <clients>]
Beispiel:
adb shell cmd media.camera watch start \
-m android.control.effectMode,android.control.aeMode \
-c com.google.android.GoogleCamera,com.android.chrome
Argumente:
-
tags
: Durch Kommas getrennte Liste der zu überwachenden Tags. Akzeptiert auch die Abkürzung3a
, wobei3a
sich auf die Menge allerandroid.control.*
Tags bezieht, die sich auf AF, AE und AWB beziehen (die vollständige Liste der Tags finden Sie unterTagMonitor.cpp
). -
clients
: Optionales Argument. Durch Kommas getrennte Liste der Client-Paketnamen, für die Tags überwacht werden. Überwacht alle Clients, wenn kein Client-Argument übergeben wird oderall
in der Liste der Clients vorhanden sind.
Dieser Befehl startet die Tag-Überwachung in geöffneten Clients und in allen anschließend geöffneten Clients (bis stop
aufgerufen wird). Nach dem Aufruf von start
speichert der Kameradienst Tag-Überwachungs-Dumps von Clients im Cache, wenn die Clients geschlossen werden.
Sofern start
nicht aufgerufen wird, überwacht der Kameradienst keine Tags für Clients und speichert keine Tag-Überwachungs-Dumps zwischen. Wenn all
im Parameter clients
übergeben wird, überwacht der Kameradienst Tags und speichert Überwachungsdumps von allen Clients im Cache.
Informationen zur Dump-Tag-Überwachung
Um Tag-Überwachungsinformationen zu sichern, verwenden Sie Folgendes:
adb shell cmd media.camera watch dump
Dieser Befehl gibt die Tag-Überwachungsinformationen an die Standardausgabe aus und wird dann beendet. Es druckt die zwischengespeicherten Tag-Überwachungs-Dumps von Clients, die seit start
(oder der letzten clear
) geschlossen wurden, und den neuesten Tag-Überwachungs-Dump von geöffneten Clients.
Beispielausgabe:
$ 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
...
Vorschau der Tag-Überwachungsinformationen in Echtzeit
Um eine Vorschau der Tag-Überwachungsinformationen in Echtzeit anzuzeigen, verwenden Sie:
adb shell cmd media.camera watch live [-n refresh_interval_ms]
Beispiel:
adb shell cmd media.camera watch live -n 250
Argumente:
-
refresh_interval_ms
: Optionales Argument. Intervall in Millisekunden, in dem die Informationen aktualisiert werden. Der Standardwert ist 1000, wenn kein Wert übergeben wird.
Dieser Befehl druckt Tag-Überwachungsinformationen in Echtzeit. Zum Beenden drücken Sie die Eingabetaste / Eingabetaste .
Beispielausgabe:
$ 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]
Zwischengespeicherte Dumps löschen
Um alle zwischengespeicherten Tag-Überwachungs-Dumps zu löschen, verwenden Sie:
adb shell cmd media.camera watch clear
Dieser Befehl stoppt die Tag-Überwachung nicht.
Stoppen Sie die Überwachung von Tags
Um die Überwachung von Tags in allen Clients zu stoppen und alle Puffer zum Zwischenspeichern von Tag-Überwachungs-Dumps zu löschen, verwenden Sie Folgendes:
adb shell cmd media.camera watch stop
dumpsys-Befehl
Der Befehl dumpsys
stellt eine Vielzahl von Debugging-Informationen vom Kameradienst bereit. Der folgende Befehl erfasst den gesamten Debugging-Dump vom Kameradienst:
adb shell dumpsys media.camera
Der Befehl dumpsys
ermöglicht auch die Erfassung von Tag-Überwachungs-Dumps von offenen Clients. dumpsys
stellt jedoch keine Tag-Überwachungs-Dumps von geschlossenen Clients bereit. Im Folgenden finden Sie Beispiele für die Verwendung von dumpsys
zur Tag-Überwachung:
Erfassen Sie Tag-Überwachungs-Dumps von allen geöffneten Clients:
adb shell dumpsys media.camera -m 3a | grep -A50 Monitored
Erhalten Sie eine Live-Vorschau der Tag-Überwachungsinformationen mit dem Linux-Befehl
watch
:watch -n 1 -c 'adb shell dumpsys media.camera -m 3a | grep -A50 Monitored'