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

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

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

При запуске Winscope появляется экран «Сбор трассировок» .

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

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

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

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

Выполните следующие действия для настройки прокси-сервера Winscope:

  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.

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

Выполните следующие шаги для настройки веб-прокси для устройств:

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

    Capture traces using Web Device Proxy

    Рисунок 3. Трассировка захвата с помощью веб-прокси для устройств.

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

  3. Разрешите доступ источника к Web Device Proxy через диалоговое окно.

    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. Больший размер буфера позволяет собирать больше данных, но увеличивает использование памяти.
  • Тип трассировки: Определяет параметры частоты сбора состояний:

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

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

Дампы

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

Dump state in Winscope

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

Настройка скриншота

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