Na tej stronie opisujemy narzędzia do debugowania w usłudze aparatu, które umożliwiają wyświetlanie zmian w wartościach żądań i wyników przechwytywania wysyłanych do i z warstwy HAL aparatu. Usługa aparatu obejmuje polecenia watch i dumpsys.
Dostępne na urządzeniach z Androidem 13 lub nowszym polecenie watch umożliwia kontrolowanie, kiedy tagi są monitorowane i dostępne, podgląd na żywo zrzutów monitorowania tagów z otwartych klientów oraz wyświetlanie zrzutów z pamięci podręcznej z zamkniętych klientów. Polecenie dumpsys umożliwia dostęp do informacji o debugowaniu, ale nie udostępnia zrzutów monitorowania tagów z zamkniętych klientów.
polecenie zegarka
W tej sekcji opisujemy, jak używać polecenia watch, i podajemy przykłady.
Rozpocznij monitorowanie tagów
Aby rozpocząć monitorowanie tagów, użyj:
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.chromeArgumenty:
tags: lista tagów oddzielonych przecinkami, które mają być monitorowane. Akceptuje też skrót3a, gdzie3aodnosi się do zbioru wszystkich tagówandroid.control.*związanych z AF, AE i AWB (pełną listę tagów znajdziesz wTagMonitor.cpp).clients: argument opcjonalny. Lista nazw pakietów klienta rozdzielona przecinkami, w których przypadku tagi są monitorowane. Obserwuje wszystkich klientów, jeśli nie zostanie przekazany argument client lub jeśli na liście klientów znajduje się znakall.
To polecenie rozpoczyna monitorowanie tagów na otwartych kontach klienta i na wszystkich kontach, które zostaną później otwarte (do momentu wywołania polecenia stop). Po wywołaniu funkcji start usługa aparatu buforuje zrzuty monitorowania tagów z klientów, gdy ci klienci zamykają aplikację.
Jeśli nie zostanie wywołana funkcja start, usługa aparatu nie monitoruje tagów w przypadku żadnych klientów ani nie buforuje zrzutów monitorowania tagów. Jeśli w parametrze all zostanie przekazana wartość clients, usługa kamery będzie monitorować tagi i buforować zrzuty monitorowania ze wszystkich klientów.
Zrzucanie informacji o monitorowaniu tagów
Aby zrzucić informacje o monitorowaniu tagów, użyj tego polecenia:
adb shell cmd media.camera watch dumpTo polecenie zapisuje informacje o monitorowaniu tagów w standardowym strumieniu wyjściowym, a następnie kończy działanie. Drukuje zrzuty monitorowania tagów z pamięci podręcznej klientów, którzy zostali zamknięci od czasu start (lub ostatniego clear), oraz najnowszy zrzut monitorowania tagów z otwartych 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 o monitorowaniu tagów 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 250Argumenty:
refresh_interval_ms: argument opcjonalny. Odstęp w milisekundach, po którym informacje mają być odświeżane. Jeśli nie zostanie przekazana żadna wartość, domyślnie przyjmuje się 1000.
To polecenie wyświetla informacje o monitorowaniu tagów w czasie rzeczywistym. Aby wyjść, naciśnij Return lub 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]
Czyszczenie zrzutów z pamięci podręcznej
Aby usunąć wszystkie zrzuty monitorowania tagów zapisane w pamięci podręcznej, użyj tego polecenia:
adb shell cmd media.camera watch clearTo polecenie nie zatrzymuje monitorowania tagu.
Zatrzymywanie monitorowania tagów
Aby zatrzymać monitorowanie tagów we wszystkich klientach i wyczyścić wszystkie bufory przechowywane na potrzeby zrzutów monitorowania tagów w pamięci podręcznej, użyj tego polecenia:
adb shell cmd media.camera watch stoppolecenie dumpsys
Polecenie dumpsys udostępnia wiele informacji o debugowaniu z usługi kamery. To polecenie przechwytuje cały zrzut debugowania z usługi aparatu:
adb shell dumpsys media.cameraPolecenie dumpsys umożliwia też przechwytywanie zrzutów monitorowania tagów z otwartych klientów. dumpsys nie udostępnia jednak zrzutów monitorowania tagów z zamkniętych klientów. Oto przykłady użycia tagu dumpsys do monitorowania tagów:
Przechwytywanie zrzutów monitorowania tagów ze wszystkich otwartych klientów:
adb shell dumpsys media.camera -m 3a | grep -A50 MonitoredUzyskaj podgląd na żywo informacji o monitorowaniu tagów za pomocą polecenia Linux
watch:watch -n 1 -c 'adb shell dumpsys media.camera -m 3a | grep -A50 Monitored'