На этой странице описываются инструменты отладки в сервисе камеры для просмотра изменений в запросах на захват и результатах, отправляемых в HAL-систему камеры и обратно. Сервис камеры включает команды watch
и dumpsys
. Команда watch
доступная на устройствах под управлением Android 13 и выше, позволяет контролировать мониторинг и доступ к тегам, просматривать дампы мониторинга тегов в режиме реального времени из открытых клиентов и просматривать кэшированные дампы из закрытых клиентов. Команда 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
: Необязательный аргумент. Список имён клиентских пакетов, разделённых запятыми, для которых отслеживаются теги. Отслеживает всех клиентов, если не передан аргумент client или если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.
Эта команда выводит информацию мониторинга тегов в режиме реального времени. Для выхода нажмите клавишу Enter / 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'