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

На этой странице описаны инструменты отладки в службе камеры для просмотра изменений в запросе захвата и результирующих значениях, которые отправляются в 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 : необязательный аргумент. Список имен клиентских пакетов, разделенных запятыми, для которых отслеживаются теги. Отслеживает всех клиентов, если не передан ни один аргумент клиента или 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'