Fehlerbehebung bei der Kamera

Auf dieser Seite werden die Debugging-Tools im Kameradienst zum Ansehen Änderungen an den Erfassungsanforderungs- und Ergebniswerten, die an den und vom Kamera-HAL. Der Kameradienst umfasst die Befehle watch und dumpsys. Verfügbar auf Geräten mit Android 13 oder höher, der Mit dem Befehl watch können Sie steuern, wann Tags live überwacht und aufgerufen werden. Vorschau von Tag-Monitoring-Dumps von offenen Clients und Anzeigen der im Cache gespeicherten Daten Dumps von geschlossenen Kunden Der Befehl dumpsys ermöglicht den Zugriff auf das Debugging Daten, stellt aber keine Tag-Monitoring-Dumps von geschlossenen Clients bereit.

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 Tags, die überwacht werden sollen. Wird auch akzeptiert die Kurzschreibweise 3a, wobei sich 3a auf die Menge aller android.control.* bezieht Tags in Bezug auf AF, AE und AWB (eine vollständige Liste der Tags finden Sie unter TagMonitor.cpp)
  • clients: Optionales Argument. Durch Kommas getrennte Liste von Clientpaketen Namen, für die Tags überwacht werden. Es werden alle Clients beobachtet, wenn kein Clientargument übergeben wird oder all in der Liste der Clients vorhanden ist.

Dieser Befehl startet das Tag-Monitoring in offenen Clients und allen Clients die anschließend geöffnet werden (bis stop aufgerufen wird). Nachdem start aufgerufen wurde, Der Kameradienst speichert Tag-Überwachungs-Dumps von Clients im Cache, wenn die Clients schließen.

Sofern start nicht aufgerufen wird, überwacht der Kameradienst keine Tags auf Tags und speichert Tag-Monitoring-Dumps nicht im Cache. Wenn all im Feld clients verwendet, überwacht der Kameradienst Tags und Caches. von allen Kunden.

Monitoring-Informationen zu Dump-Tags

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. Sie gibt die im Cache gespeicherten Tag-Monitoring-Dumps von Clients aus, die geschlossen haben seit start (oder dem letzten clear) und dem letzten Tag-Monitoring-Dump vom offenen Tag Kundschaft.

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 von Tag-Überwachungsinformationen in Echtzeit anzeigen

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 bis aktualisieren Sie die Informationen unter. Die Standardeinstellung ist 1.000, wenn kein Wert übergeben wird.

Mit diesem Befehl werden Informationen zum Tag-Monitoring in Echtzeit ausgegeben. Drücken Sie zum Beenden return/enter zurück.

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 Tag-Monitoring-Dumps:

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 bietet eine Reihe von Debugging-Informationen von der Kamera. Service. Mit dem folgenden Befehl wird der gesamte Debugging-Dump aus dem Kameradienst:

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 zum Tag-Monitoring:

  • Erfassen Sie Dumps der Tag-Überwachung von allen offenen Clients:

    adb shell dumpsys media.camera -m 3a | grep -A50 Monitored
  • Livevorschau von Informationen zum Tag-Monitoring unter Linux Befehl watch:

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