Отладка камеры

На этой странице описываются инструменты отладки в сервисе камеры для просмотра изменений в запросах на захват и результатах, отправляемых в 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'