Debugowanie aparatu

Na tej stronie opisano narzędzia do debugowania w usłudze kamery zmiany w żądaniach przechwytywania i wartościach wyników, które są wysyłane do i z HAL aparatu. Usługa aparatu obejmuje polecenia watch i dumpsys. Funkcja dostępna na urządzeniach z Androidem 13 lub nowszym Polecenie watch umożliwia kontrolę nad tym, kiedy tagi są monitorowane i uzyskiwane do nich, w czasie ich aktywności podgląd zrzutów monitorowania tagów z otwartych klientów oraz wyświetlanie w pamięci podręcznej spadki od klientów zamkniętych. Polecenie dumpsys umożliwia dostęp do debugowania informacji, ale nie oferuje zrzutów monitorowania tagów od zamkniętych klientów.

polecenie zegarka

W tej sekcji opisujemy, jak używać polecenia watch, wraz z przykładami.

Rozpocznij monitorowanie tagów

Aby zacząć monitorować tagi, użyj polecenia:

adb shell cmd media.camera watch start -m <tags> [-c <clients>]

Przykład:

adb shell cmd media.camera watch start \
-m android.control.effectMode,android.control.aeMode \
-c com.google.android.GoogleCamera,com.android.chrome

Argumenty:

  • tags: rozdzielana przecinkami lista tagów do monitorowania. Akceptuje także skrót 3a, gdzie 3a oznacza zbiór wszystkich elementów android.control.* związane z AF, AE i AWB (pełną listę tagów znajdziesz w artykule TagMonitor.cpp).
  • clients: opcjonalny argument. Rozdzielona przecinkami lista pakietów klientów które są monitorowane. Jeśli nie ma żadnego klienta, monitoruje wszystkich klientów lub jeśli na liście klientów znajduje się argument all.

To polecenie rozpoczyna monitorowanie tagów w otwartych klientach i we wszystkich klientach które są następnie otwierane (do momentu wywołania funkcji stop). Po wywołaniu funkcji start Usługa aparatu zapisuje w pamięci podręcznej zrzuty monitorowania tagów z klientów, gdy klienty zamknięcia.

Jeśli nie zostanie wywołana funkcja start, usługa kamery nie monitoruje tagów klientów i nie zapisuje w pamięci podręcznej zrzutów monitorowania tagów. Jeśli all jest przekazywany w metodzie clients, usługa kamery monitoruje tagi i buforuje, na spadki od wszystkich klientów.

Informacje o monitorowaniu tagów zrzutu

Aby skopiować informacje o monitorowaniu tagów, użyj polecenia:

adb shell cmd media.camera watch dump

Powoduje ono przesłanie informacji z monitorowania tagów na standardowe dane wyjściowe, a następnie: . Wydrukuje zrzuty monitorowania tagów zapisane w pamięci podręcznej z klientów, które zostały zamknięte od start (lub ostatniego clear) i najnowszy zrzut monitorowania tagów z otwartego klientów.

Przykładowe dane wyjściowe:

$ 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
...

Wyświetlanie podglądu informacji z monitorowania tagu w czasie rzeczywistym

Aby wyświetlić podgląd informacji o monitorowaniu tagów w czasie rzeczywistym, użyj:

adb shell cmd media.camera watch live [-n refresh_interval_ms]

Przykład:

adb shell cmd media.camera watch live -n 250

Argumenty:

  • refresh_interval_ms: opcjonalny argument. Odstęp w milisekundach do odśwież informacje na stronie. Jeśli nie zostanie przekazana żadna wartość, domyślna wartość to 1000.

To polecenie wyświetla informacje o monitorowaniu tagów w czasie rzeczywistym. Aby wyjść, naciśnij return/Enter.

Przykładowe dane wyjściowe:

$ 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]

Usuń zrzuty z pamięci podręcznej

Aby usunąć wszystkie zrzuty monitorowania tagów w pamięci podręcznej, użyj:

adb shell cmd media.camera watch clear

To polecenie nie zatrzymuje monitorowania tagów.

Zatrzymaj monitorowanie tagów

Aby zatrzymać monitorowanie tagów u wszystkich klientów i wyczyścić wszystkie bufory przechowywane w pamięci podręcznej zrzut danych monitorowania tagów, użyj:

adb shell cmd media.camera watch stop

polecenie dumpsys

Polecenie dumpsys udostępnia host danych debugowania z kamery posprzedażna. Poniższe polecenie przechwytuje cały zrzut debugowania usługa kamery:

adb shell dumpsys media.camera

Polecenie dumpsys umożliwia też rejestrowanie zrzutów monitorowania tagów z otwartych stron klientów. dumpsys nie zapewnia jednak zrzutów monitorowania tagów z zamkniętych źródeł klientów. Oto przykłady użycia parametru dumpsys do monitorowania tagów:

  • Rejestruj zrzuty monitorowania tagów ze wszystkich otwartych klientów:

    adb shell dumpsys media.camera -m 3a | grep -A50 Monitored
    
  • Podgląd informacji o monitorowaniu tagów na żywo w systemie Linux Polecenie watch:

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