На этой странице описаны инструменты отладки в сервисе камеры, которые позволяют просматривать изменения в запросах на съемку и значениях результатов, отправляемых на уровень 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.
Эта команда выводит информацию об отслеживании тегов в режиме реального времени. Чтобы выйти, нажмите Ввод.
Пример выходных данных:
$ 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Чтобы посмотреть информацию о тегах в режиме реального времени, используйте команду
watchв Linux:watch -n 1 -c 'adb shell dumpsys media.camera -m 3a | grep -A50 Monitored'