Auf dieser Seite werden die Debugging-Tools im Kameradienst beschrieben, mit denen Sie Änderungen an Erfassungsanfrage- und Ergebniswerten ansehen können, die an und von der Kamera-HAL gesendet werden. Der Kameradienst umfasst die Befehle watch
und dumpsys
.
Der watch
-Befehl ist auf Geräten mit Android 13 oder höher verfügbar und ermöglicht die Steuerung, wann Tags überwacht und auf sie zugegriffen wird, die Live-Vorschau von Tag-Monitoring-Dumps von geöffneten Clients und die Anzeige von im Cache gespeicherten Dumps von geschlossenen Clients. Mit dem Befehl dumpsys
kann auf Debugging-Informationen zugegriffen werden, es werden aber keine Tag-Monitoring-Dumps von geschlossenen Clients bereitgestellt.
Befehl für die Smartwatch
In diesem Abschnitt wird beschrieben, wie Sie den Befehl watch
verwenden. Außerdem finden Sie Beispiele.
Tags überwachen
Verwenden Sie Folgendes, um mit der Überwachung von Tags zu beginnen:
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 Kurzform3a
, wobei3a
für die Gruppe allerandroid.control.*
-Tags steht, die sich auf AF, AE und AWB beziehen (eine vollständige Liste der Tags finden Sie unterTagMonitor.cpp
).clients
: Optionales Argument. Durch Kommas getrennte Liste von Clientpaketnamen, für die Tags überwacht werden. Beobachtet alle Clients, wenn kein Client-Argument übergeben wird oder wennall
in der Liste der Clients vorhanden ist.
Mit diesem Befehl wird die Tag-Überwachung in offenen Clients und in allen Clients gestartet, die anschließend geöffnet werden (bis stop
aufgerufen wird). Nachdem start
aufgerufen wurde, speichert der Kameradienst Tag-Monitoring-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-Monitoring-Dumps im Cache. Wenn all
im Parameter clients
übergeben wird, überwacht der Kameradienst Tags und speichert Überwachungs-Dumps von allen Clients im Cache.
Informationen zum Tag-Monitoring ausgeben
So geben Sie Informationen zur Tag-Überwachung aus:
adb shell cmd media.camera watch dump
Mit diesem Befehl werden die Informationen zur Tag-Überwachung in die Standardausgabe geschrieben und das Programm wird beendet. Es werden die im Cache gespeicherten Tag-Monitoring-Dumps von Clients ausgegeben, die seit start
(oder dem letzten clear
) geschlossen wurden, sowie der letzte Tag-Monitoring-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
...
Tag-Monitoring-Informationen in Echtzeit ansehen
So rufen Sie Informationen zum Tag-Monitoring in Echtzeit auf:
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 sollen. Wenn kein Wert übergeben wird, ist der Standardwert 1.000.
Mit diesem Befehl werden Informationen zur Tag-Überwachung in Echtzeit ausgegeben. Drücken Sie zum Beenden die Eingabetaste/Return.
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]
Gespeicherte Dumps löschen
So löschen Sie alle im Cache gespeicherten Tag-Monitoring-Dumps:
adb shell cmd media.camera watch clear
Mit diesem Befehl wird die Tag-Überwachung nicht beendet.
Überwachung von Tags beenden
So beenden Sie die Überwachung von Tags in allen Clients und leeren alle Puffer, die zum Zwischenspeichern von Tag-Überwachungsdumps verwendet werden:
adb shell cmd media.camera watch stop
dumpsys-Befehl
Der Befehl dumpsys
liefert eine Vielzahl von Debugging-Informationen vom Kameradienst. Mit dem folgenden Befehl wird der gesamte Debugging-Dump vom Kameraservice erfasst:
adb shell dumpsys media.camera
Mit dem Befehl dumpsys
können auch Tag-Monitoring-Dumps von geöffneten Clients erfasst werden. dumpsys
stellt jedoch keine Tag-Monitoring-Dumps von geschlossenen Clients bereit. Im Folgenden finden Sie Beispiele für die Verwendung von dumpsys
für die Tag-Überwachung:
Tag-Monitoring-Dumps von allen geöffneten Clients erfassen:
adb shell dumpsys media.camera -m 3a | grep -A50 Monitored
Mit dem Linux-Befehl
watch
können Sie eine Live-Vorschau der Informationen zur Tag-Überwachung abrufen:watch -n 1 -c 'adb shell dumpsys media.camera -m 3a | grep -A50 Monitored'