Na tej stronie opisano narzędzia debugowania w usłudze kamery umożliwiające przeglądanie zmian w żądaniach przechwytywania i wartościach wyników wysyłanych do i z warstwy HAL kamery. Usługa kamery obejmuje polecenia watch
i dumpsys
. Dostępne na urządzeniach z systemem Android 13 lub nowszym polecenie watch
umożliwia kontrolę nad tym, kiedy tagi są monitorowane i kiedy uzyskuje się do nich dostęp, podgląd na żywo zrzutów monitorowania tagów z otwartych klientów oraz przeglądanie buforowanych zrzutów z zamkniętych klientów. Komenda dumpsys
umożliwia dostęp do informacji debugowania, ale nie zapewnia zrzutów monitorowania tagów od zamkniętych klientów.
polecenie oglądania
W tej sekcji opisano sposób korzystania z polecenia watch
i podano 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.chrome
Argumenty:
-
tags
: oddzielona przecinkami lista tagów, które mają być monitorowane. Akceptuje również skrót3a
, gdzie3a
odnosi się do zestawu wszystkich tagówandroid.control.*
związanych z AF, AE i AWB (pełna lista tagów znajduje się wTagMonitor.cpp
). -
clients
: Argument opcjonalny. Rozdzielana przecinkami lista nazw pakietów klientów, dla których monitorowane są znaczniki. Obserwuje wszystkich klientów, jeśli nie został przekazany żaden argument klienta lub jeśliall
są obecni na liście klientów.
To polecenie uruchamia monitorowanie tagów w otwartych klientach i w każdym kliencie, który zostanie otwarty później (aż do wywołania stop
). Po start
uruchomienia usługa kamery buforuje zrzuty monitorowania znaczników od klientów po ich zamknięciu.
O ile nie zostanie wywołany start
, usługa kamery nie monitoruje tagów dla żadnego klienta i nie buforuje zrzutów monitorowania tagów. Jeśli w parametrze clients
zostanie przekazane all
, usługa kamery monitoruje znaczniki i buforuje zrzuty monitorujące ze wszystkich klientów.
Informacje o monitorowaniu znacznika zrzutu
Aby zrzucić informacje o monitorowaniu tagów, użyj:
adb shell cmd media.camera watch dump
To polecenie zrzuca informacje monitorujące znacznik na standardowe wyjście, a następnie kończy działanie. Drukuje buforowane zrzuty monitorowania tagów od klientów, które zamknęły się od start
(lub ostatniego clear
) oraz najnowszy zrzut monitorowania tagów od otwartych klientów.
Przykładowe wyjście:
$ 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
: Argument opcjonalny. Interwał w milisekundach, o którym należy odświeżyć informacje. Wartość domyślna to 1000, jeśli nie przekazano żadnej wartości.
To polecenie drukuje informacje o monitorowaniu tagów w czasie rzeczywistym. Aby wyjść, naciśnij klawisz Return / Enter .
Przykładowe wyjście:
$ 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 pamięci podręcznej
Aby wyczyścić wszystkie buforowane zrzuty monitorowania tagów, użyj:
adb shell cmd media.camera watch clear
To polecenie nie zatrzymuje monitorowania tagów.
Przestań monitorować tagi
Aby zatrzymać monitorowanie tagów na wszystkich klientach i wyczyścić wszystkie bufory przechowywane w celu buforowania zrzutów monitorowania tagów, użyj:
adb shell cmd media.camera watch stop
polecenie dumpsys
Komenda dumpsys
udostępnia wiele informacji debugowania z usługi kamery. Następujące polecenie przechwytuje cały zrzut debugowania z usługi kamery:
adb shell dumpsys media.camera
Komenda dumpsys
umożliwia także przechwytywanie zrzutów monitorowania znaczników z otwartych klientów. Jednak dumpsys
nie zapewnia zrzutów monitorowania tagów od zamkniętych klientów. Poniżej znajdują się przykłady wykorzystania dumpsys
do monitorowania tagów:
Przechwytuj zrzuty 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'