Захват следов с помощью Winscope

Запустите Winscope локально или получите к нему доступ с веб-сервера.

Вы можете записывать трассировки с помощью Winscope для локальной разработки и отладки. Winscope использует adb , который поддерживает подключение устройств через USB или Wi-Fi.

При запуске Winscope отображается экран сбора трассировок .

Подключение устройства

Вы можете подключать устройства в Winscope с помощью Winscope Proxy или Web Device Proxy . По умолчанию на домашней странице Winscope отображается интерфейс настройки подключения Winscope Proxy .

Чтобы начать сбор трассировок, выберите один из следующих механизмов подключения устройств.

Настройка прокси-сервера Winscope

Чтобы настроить Winscope Proxy, выполните следующие действия:

  1. В разделе «Собрать трассировки» на главной странице выберите «Winscope Proxy» в раскрывающемся списке «Выбрать тип подключения» :

    Capture traces using Winscope Proxy

    Рисунок 1. Захват трассировок с помощью Winscope Proxy.

  2. Запустите прокси-сервер Winscope ADB Connect для сбора трассировок непосредственно из браузера, выполнив следующую команду:

    python3 $ANDROID_BUILD_TOP/development/tools/winscope/src/adb/winscope_proxy.py
    
  3. Обратите внимание на прокси-токен Winscope, отображаемый на терминале после выполнения.

  4. После запуска прокси-сервера Winscope ADB Connect экран изменится следующим образом. Чтобы установить первоначальное подключение к прокси-серверу, введите токен прокси-сервера Winscope из шага 3 и нажмите « Подключиться» .

    Connect to Winscope Proxy

    Рисунок 2. Подключение к Winscope Proxy.

Настройка прокси-сервера веб-устройства

Чтобы настроить прокси-сервер веб-устройства, выполните следующие действия:

  1. В разделе «Собрать трассировки» на главной странице выберите «Прокси-сервер веб-устройства» в раскрывающемся списке «Выбрать тип подключения» :

    Capture traces using Web Device Proxy

    Рисунок 3. Захват трассировок с помощью Web Device Proxy.

  2. Если на вашем компьютере нет демона Web Device Proxy, нажмите «Установить» или запустите установщик .

  3. Подтвердите исходный доступ к прокси-серверу веб-устройства через диалоговое окно.

    Authorize origin WDP access

    Рисунок 4. Авторизация источника.

  4. Разрешите доступ для каждого нового устройства при первом подключении. Если диалоговое окно не открывается автоматически, нажмите на значок lock_open рядом с устройством:

    wdp_unauth_device

    Рисунок 5. Авторизация устройства.

Следы

Для сбора следов выполните следующие действия:

  1. После подключения выберите целевые устройства и настройте параметры, чтобы начать процесс захвата. Затем нажмите «Начать трассировку» , чтобы начать захват:

    Collect traces in Winscope

    Рисунок 6. Сбор трассировок в Winscope.

  2. Чтобы остановить захват, нажмите кнопку «Завершить трассировку» :

    End trace in Winscope

    Рисунок 7. Конец трассировки в Winscope.

Параметры трассировки

В этом разделе описываются параметры для каждого типа трассировки.

Запись экрана

С помощью Winscope вы можете записывать экраны нескольких дисплеев. Выберите нужный дисплей в меню для записи. Если вы не сделаете выбор, Winscope по умолчанию записывает активный дисплей.

SurfaceFlinger

  • Размер буфера: регулирует размер кольцевого буфера в памяти для трассировки SurfaceFlinger. Буфер большего размера позволяет собирать больше данных, но увеличивает использование памяти.

  • Входные данные: если поверхность содержит входные данные, отслеживает особенности входного окна.

  • Композиция: отслеживает тип композиции и видимую область.

  • Метаданные: отслеживает дополнительные метаданные поверхности, включая внеэкранные слои.

  • HWC: отслеживает дополнительные неструктурированные метаданные аппаратного композитора.

  • Трассировка буферов: настраивает SurfaceFlinger на отслеживание всех изменений буфера на поверхности. По умолчанию SurfaceFlinger отслеживает новое состояние только при изменении геометрии.

  • Виртуальные дисплеи: Включает в трассировку слои виртуального дисплея.

Менеджер окон

  • Размер буфера: регулирует размер кольцевого буфера в памяти для трассировки WindowManager. Буфер большего размера позволяет собирать больше данных, но увеличивает использование памяти.
  • Тип трассировки: определяет параметры частоты сбора состояний:

    • Кадр: В этом режиме WindowManager выводит одно состояние на кадр, гарантируя, что будут зафиксированы только допустимые состояния WindowManager. Этот режим обеспечивает минимальное снижение производительности.
    • транзакция: этот режим записывает состояние WindowManager при каждой фиксации транзакции. В одном кадре можно фиксировать несколько транзакций, что позволяет отлаживать промежуточные состояния WindowManager в течение кадра. Однако этот режим имеет более высокие накладные расходы на производительность по сравнению с кадровым режимом.
  • Уровень трассировки: определяет уровень детализации трассировок WindowManager:

    • Подробный: включает все окна и информацию о конфигурации для каждого окна. Этот режим потребляет наибольшее количество памяти и производительности.
    • отладка: включает информацию обо всех окнах, но регистрирует только конфигурацию окна, если она содержит запрошенную конфигурацию переопределения.
    • Критический: включает ту же информацию, что и режим отладки, но только видимые окна. Этот режим потребляет меньше всего памяти и производительности.

Свалки

Чтобы сделать дамп состояния с помощью Winscope, в разделе «Собрать трассировки» на главной странице выберите вкладку «Дамп» , а затем щелкните «Скопировать состояние» :

Dump state in Winscope

Рисунок 8. Состояние дампа в Winscope.

Конфигурация скриншота

Winscope позволяет делать снимки экрана нескольких дисплеев. Выберите дисплей в меню для создания скриншота. Если выбор не сделан, снимок экрана будет сделан для активного дисплея.