Na tej stronie opisujemy narzędzia debugowania w usłudze aparatu, które umożliwiają wyświetlanie zmian w żądaniach rejestrowania i wartościach wyników przesyłanych do interfejsu aparatu HAL i z niego. 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 opisaliśmy, jak używać polecenia watch
, i zamieściliśmy przykłady.
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 też skrót3a
, gdzie3a
oznacza zbiór wszystkich tagówandroid.control.*
związanych z AF, AE i AWB (pełna lista tagów:TagMonitor.cpp
).clients
: opcjonalny argument. Lista nazw pakietów klienta rozdzielona przecinkami, dla których monitorowane są tagi. Jeśli nie ma żadnego klienta, monitoruje wszystkich klientów lub jeśli na liście klientów znajduje się argumentall
.
To polecenie uruchamia monitorowanie tagów w otwartych klientach i w tych, które zostaną otwarte później (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 ci ostatni się zamkną.
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.
Wyświetlanie informacji o monitorowaniu tagów
Aby skopiować informacje o monitorowaniu tagów, użyj polecenia:
adb shell cmd media.camera watch dump
To polecenie wypisuje informacje o monitorowaniu tagów na standardowe dane wyjściowe, a potem się zamyka. 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
...
Podgląd 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 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 wypisuje 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]
Wyczyść 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 powoduje przerwania 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 ekranu z tagami, 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. Usługa dumpsys
nie udostępnia jednak plików z danymi z monitorowania tagów pochodzących od zamkniętych klientów. Oto przykłady użycia właściwości dumpsys
do monitorowania tagów:
Pobieranie zrzutów dzienników 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'