Auf dieser Seite werden die Tools zum Entfernen von Fehlern im Kameradienst beschrieben, mit denen sich Änderungen an Aufnahmeanfragen und -ergebniswerten ansehen lassen, die an die und von der Kamera-HAL gesendet werden. Der Kameradienst umfasst die Befehle watch
und dumpsys
.
Der Befehl watch
ist auf Geräten mit Android 13 oder höher verfügbar. Mit ihm können Sie steuern, wann Tags überwacht und darauf zugegriffen wird, und sich eine Live-Vorschau von Dumps der Tag-Überwachung von offenen Clients sowie von im Cache gespeicherten Dumps von geschlossenen Clients ansehen. Mit dem Befehl dumpsys
können Sie auf Informationen zur Fehlerbehebung zugreifen. Es werden jedoch keine Dumps zum Tag-Monitoring von geschlossenen Clients bereitgestellt.
watch-Befehl
In diesem Abschnitt wird die Verwendung des Befehls watch
beschrieben und es werden Beispiele aufgeführt.
Tags überwachen
So starten Sie das Monitoring von Tags:
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. Die Kurzform3a
ist ebenfalls zulässig.3a
bezieht sich auf die Gesamtheit allerandroid.control.*
-Tags, 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. Überwacht alle Clients, wenn kein Clientargument übergeben wird oderall
in der Liste der Clients vorhanden ist.
Mit diesem Befehl wird das Tag-Monitoring in offenen Clients und in allen Clients gestartet, die danach 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.
Wenn start
nicht aufgerufen wird, überwacht der Kameradienst keine Tags für Clients und speichert keine Dumps für das Tag-Monitoring im Cache. Wenn all
im Parameter clients
übergeben wird, überwacht der Kameradienst Tags und speichert Monitoring-Dumps von allen Clients im Cache.
Informationen zum Monitoring von Tags dumpen
So rufen Sie Informationen zum Tag-Monitoring ab:
adb shell cmd media.camera watch dump
Mit diesem Befehl werden die Informationen zur Tag-Überwachung in die Standardausgabe ausgegeben und der Befehl beendet. Es werden die im Cache gespeicherten Dumps des Tag-Monitorings von Clients ausgegeben, die seit dem start
(oder dem letzten clear
) geschlossen wurden, sowie der aktuelle Dump des Tag-Monitorings 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
...
Informationen zum Tag-Monitoring in Echtzeit ansehen
So rufen Sie eine Vorschau der 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. 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.
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]
Gecachte Dumps löschen
So löschen Sie alle im Cache gespeicherten Dumps für das Tag-Monitoring:
adb shell cmd media.camera watch clear
Mit diesem Befehl wird die Tag-Überwachung nicht beendet.
Monitoring von Tags beenden
So beenden Sie das Überwachen von Tags in allen Clients und löschen alle Puffer, die zum Caching von Dumps für das Tag-Monitoring verwendet werden:
adb shell cmd media.camera watch stop
dumpsys-Befehl
Der Befehl dumpsys
liefert eine Vielzahl von Informationen zur Fehlerbehebung vom Kameradienst. Mit dem folgenden Befehl wird der gesamte Debug-Dump vom Kameradienst erfasst:
adb shell dumpsys media.camera
Mit dem Befehl dumpsys
können Sie auch Dumps des Tag-Monitorings von offenen Clients erfassen. dumpsys
stellt jedoch keine Dumps für das Tag-Monitoring von geschlossenen Clients bereit. Im Folgenden finden Sie Beispiele für die Verwendung von dumpsys
für das Tag-Monitoring:
Dumps für das Tag-Monitoring 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'