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

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

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

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

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

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

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

Настройка Winscope Proxy

Для настройки 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:

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

Свалки

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

Dump state in Winscope

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

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

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