Захват системной трассировки на устройстве

Устройства под управлением Android 9 (уровень API 28) и выше включают системное приложение System Tracing. Это приложение похоже на утилиту командной строки systrace , но позволяет записывать трассировки непосредственно с тестового устройства, без необходимости его подключения через adb . Затем вы можете использовать приложение для передачи результатов трассировки своей команде разработчиков.

Устройства под управлением Android 10 и выше записывают трассировки в формате Perfetto, тогда как более ранние версии — в формате Systrace. Мы рекомендуем использовать средство просмотра трассировок Perfetto для открытия обоих форматов и последующего анализа трассировок.

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

Запись трассировки системы

Приложение «Трассировка системы» позволяет записывать трассировку системы с помощью плитки быстрых настроек или меню внутри самого приложения. В следующих разделах описывается, как выполнить запись с помощью этих интерфейсов.

Запись с использованием плитки быстрых настроек

Плитка быстрых настроек обычно является более удобным способом завершения процесса отслеживания системы на устройстве.

Установить плитку

Если вы впервые используете функцию «Трассировка системы» на тестовом устройстве или если вы не видите плитку « Трассировка системы» на панели быстрых настроек вашего устройства, как показано на рисунке 2, выполните следующие действия по настройке:

  1. Включить параметры разработчика .
  2. Откройте экран настроек «Параметры разработчика» .
  3. В разделе «Отладка» выберите «Трассировка системы» . Откроется приложение «Трассировка системы» с меню.
  4. В меню приложения включите опцию «Показать плитку быстрых настроек» , как показано на рисунке 1. Система добавит плитку «Трассировка системы» на панель быстрых настроек , как показано на рисунке 2:

    Рисунок 1. Переключатель « Показать быстрые настройки» в приложении «Трассировка системы».
    Рисунок 2. Плитка «Трассировка системы» на панели быстрых настроек .

    Примечание: По умолчанию система добавляет плитку «Трассировка системы» первой на панель быстрых настроек . Если вы хотите, чтобы плитка отображалась в другом месте, переместите её в режиме редактирования на панели.

Завершить запись трассировки системы

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

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

    Уведомление с сообщением «Идёт запись трассировки. Нажмите, чтобы остановить отслеживание».
    Рисунок 3. Постоянное уведомление, появляющееся после запуска трассировки системы на устройстве.
  2. Выполните в своем приложении действия, которые должна проверить система.

  3. Остановите отслеживание, нажав либо на плитку «Отслеживание системы» на панели быстрых настроек , либо на уведомление «Отслеживание системы».

    Система отобразит новое уведомление с сообщением «Сохранение трассировки». После завершения сохранения система закроет это уведомление и отобразит третье, подтверждающее, что трассировка сохранена и вы готовы поделиться ею , как показано на рисунке 4:

    Уведомление с сообщением «Трассировка сохранена. Нажмите, чтобы поделиться своей трассировкой».
    Рисунок 4. Постоянное уведомление, которое появляется после того, как система завершает сохранение записанного следа.

Запись с помощью меню приложения

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

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

  1. Включить параметры разработчика .
  2. Откройте экран настроек «Параметры разработчика» . В разделе «Отладка» выберите «Трассировка системы» . Откроется приложение «Трассировка системы».

    Кроме того, если вы настроили плитку «Трассировка системы» , вы можете нажать и удерживать ее, чтобы войти в приложение «Трассировка системы».

  3. Убедитесь, что выбран параметр Трассировка отлаживаемых приложений , чтобы включить приложения, для которых включена отладка, в трассировку системы.

  4. При желании выберите категории системных и сенсорных вызовов для отслеживания, а также размер буфера на процессор ( в КБ). Выберите категории, соответствующие тестируемому варианту использования, например, категорию «Аудио» для тестирования операций Bluetooth или категорию « Память» для выделения кучи.

  5. При желании выберите «Длинные трассировки» , чтобы включить непрерывное сохранение трассировок в хранилище устройства. Для этого параметра задайте ограничения для максимального размера длинной трассировки и максимальной длительности длинной трассировки .

  6. Включите переключатель «Запись трассировки» , выделенный на рисунке 5. Плитка станет активной, и появится постоянное уведомление о том, что система записывает трассировку, как показано на рисунке 3 .

    Рисунок 5. Переключатель записи трассировки в настройках системной трассировки.
  7. Выполните в своем приложении действия, которые должна проверить система.

  8. Остановите трассировку, отключив переключатель Запись трассировки .

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

Поделитесь системным следом

Приложение System Tracing помогает делиться результатами трассировки системы в рамках различных рабочих процессов. На устройствах под управлением Android 10 (уровень API 29) и выше файлы трассировки сохраняются с расширением .perfetto-trace и могут быть открыты в пользовательском интерфейсе Perfetto . На устройствах под управлением более ранних версий Android файлы трассировки сохраняются с расширением .ctrace , что соответствует формату Systrace.

Поделиться как сообщение

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

После записи трассировки системы нажмите на уведомление, которое появится на устройстве, как показано на рисунке 4. Появится средство выбора намерений платформы, позволяющее вам поделиться своей трассировкой с помощью выбранного вами приложения для обмена сообщениями.

Поделиться из приложения «Файлы»

На устройствах под управлением Android 10 (API уровня 29) и выше трассировки отображаются в приложении «Файлы». Вы можете поделиться трассировкой из этого приложения.

Загрузить отчет с помощью ADB

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

cd /path-to-traces-on-my-dev-machine && \
  adb pull /data/local/traces/ .

Конвертация между форматами трассировки

Вы можете преобразовать файлы трассировки Perfetto в формат Systrace. Подробнее см. в разделе «Преобразование между форматами трассировки» .

Создать HTML-отчет

При отправке трассировки сам отчет находится в файле .perfetto-trace на устройствах под управлением Android 10 и выше или в файле .ctrace для всех остальных версий.

Создайте HTML-отчет из файла трассировки с помощью веб-интерфейса или из командной строки .

Веб-интерфейс

Используйте пользовательский интерфейс Perfetto для открытия файла трассировки и создания отчета.

Для файла Perfetto нажмите «Открыть файл трассировки» . Для файла Systrace нажмите « Открыть с использованием устаревшего интерфейса» . Устаревший интерфейс имеет тот же внешний вид и функции, что и отчёт Systrace .

Командная строка

Выполните следующие команды в окне терминала, чтобы создать HTML-отчет из файла трассировки:

cd /path-to-traces-on-my-dev-machine && \
  systrace --from-file trace-file-name{.ctrace | .perfetto-trace}

Если у вас еще нет программы командной строки systrace , вы можете загрузить ее из проекта Catapult на GitHub или непосредственно из Android Open Source Project .

{% дословно %} {% endverbatim %} {% дословно %} {% endverbatim %}