Fehlerbehebung bei der Kamera

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 Kurzform 3a, wobei 3a für die Gruppe aller android.control.*-Tags steht, die sich auf AF, AE und AWB beziehen (eine vollständige Liste der Tags finden Sie unter TagMonitor.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 wenn all 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'