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ót- 3a, gdzie- 3aodnosi się do zbioru wszystkich tagów- android.control.*związanych z AF, AE i AWB (pełną listę tagów znajdziesz w- TagMonitor.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ę znak- all.
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 Monitored
- Uzyskaj 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'
