На этой странице описаны инструменты отладки в службе камеры для просмотра изменений в запросе захвата и результирующих значениях, которые отправляются в HAL камеры и из нее. Служба камеры включает в себя команды watch
и dumpsys
. Доступная на устройствах под управлением Android 13 или более поздней версии, команда watch
позволяет контролировать время отслеживания и доступа к тегам, предварительный просмотр дампов мониторинга тегов от открытых клиентов и просмотр кэшированных дампов от закрытых клиентов. Команда dumpsys
позволяет получить доступ к отладочной информации, но не предоставляет дампы мониторинга тегов от закрытых клиентов.
смотреть команду
В этом разделе описывается, как использовать команду watch
, и приводятся примеры.
Начать мониторинг тегов
Чтобы начать мониторинг тегов, используйте:
adb shell cmd media.camera watch start -m <tags> [-c <clients>]
Пример:
adb shell cmd media.camera watch start \
-m android.control.effectMode,android.control.aeMode \
-c com.google.android.GoogleCamera,com.android.chrome
Аргументы:
-
tags
: список тегов, разделенных запятыми, которые необходимо отслеживать. Также принимает сокращение3a
, где3a
относится к набору всехandroid.control.*
, связанных с AF, AE и AWB (полный список тегов см. вTagMonitor.cpp
). -
clients
: необязательный аргумент. Список имен клиентских пакетов, разделенных запятыми, для которых отслеживаются теги. Отслеживает всех клиентов, если не передан ни один аргумент клиента илиall
они присутствуют в списке клиентов.
Эта команда запускает мониторинг тегов в открытых клиентах и во всех клиентах, которые открываются впоследствии (до тех пор, пока не будет вызвана stop
). После вызова start
служба камеры кэширует дампы мониторинга тегов от клиентов, когда клиенты закрываются.
Если не вызван start
, служба камеры не отслеживает теги для каких-либо клиентов и не кэширует дампы мониторинга тегов. Если в параметре clients
указано all
, служба камеры отслеживает теги и кэширует дампы мониторинга со всех клиентов.
Дамп данных мониторинга тегов
Чтобы сбросить информацию мониторинга тегов, используйте:
adb shell cmd media.camera watch dump
Эта команда выводит информацию о мониторинге тегов в стандартный вывод, а затем завершает работу. Он печатает дампы мониторинга кэшированных тегов от клиентов, которые закрылись с момента start
(или последней clear
), а также последний дамп мониторинга тегов от открытых клиентов.
Пример вывода:
$ 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
...
Предварительный просмотр информации о мониторинге тегов в режиме реального времени
Чтобы просмотреть информацию мониторинга тегов в режиме реального времени, используйте:
adb shell cmd media.camera watch live [-n refresh_interval_ms]
Пример:
adb shell cmd media.camera watch live -n 250
Аргументы:
-
refresh_interval_ms
: необязательный аргумент. Интервал в миллисекундах для обновления информации. По умолчанию 1000, если значение не передано.
Эта команда печатает информацию мониторинга тегов в режиме реального времени. Для выхода нажмите return / enter .
Пример вывода:
$ 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]
Очистить кэшированные дампы
Чтобы очистить все дампы мониторинга кэшированных тегов, используйте:
adb shell cmd media.camera watch clear
Эта команда не останавливает мониторинг тегов.
Прекратить мониторинг тегов
Чтобы остановить мониторинг тегов на всех клиентах и очистить все буферы, предназначенные для кэширования дампов мониторинга тегов, используйте:
adb shell cmd media.camera watch stop
команда dumpsys
Команда dumpsys
предоставляет массу отладочной информации из службы камеры. Следующая команда записывает весь дамп отладки из службы камеры:
adb shell dumpsys media.camera
Команда dumpsys
также позволяет захватывать дампы мониторинга тегов от открытых клиентов. Однако dumpsys
не предоставляет дампы мониторинга тегов от закрытых клиентов. Ниже приведены примеры использования dumpsys
для мониторинга тегов:
Захват дампов мониторинга тегов со всех открытых клиентов:
adb shell dumpsys media.camera -m 3a | grep -A50 Monitored
Получите предварительный просмотр информации мониторинга тегов в реальном времени с помощью команды Linux
watch
:watch -n 1 -c 'adb shell dumpsys media.camera -m 3a | grep -A50 Monitored'