Fehlerbehebung für die Kamera

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 Kurzform 3a ist ebenfalls zulässig. 3a bezieht sich auf die Gesamtheit aller android.control.*-Tags, 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. Überwacht alle Clients, wenn kein Clientargument übergeben wird oder all 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'