Как локально захватить трассировку системы на Android Pie
Трассировка — бесценный инструмент, который позволяет разработчикам понять влияние различных изменений на систему и может дать подсказки для выявления основной причины проблем.
системная трасса является одним из таких мощных инструментов отслеживания, который собирает информацию о времени от процессов работает на Android-устройстве. системная трасса широко использовалась Команда производительности Android в Google для оптимизации производительности на телефонах Google Pixel. я использовал системная трасса например, для проверки влияния изменений планировщика ядра на размещение задач на процессорах и для выявления возможных причин джэнков. системная трасса может собирать широкий спектр данных, включая планирование ЦП, частоту ЦП, дисковый ввод-вывод, графику, активность Binder и многое другое. Информация объединяется в отчет, который можно анализировать в Google Chrome.
До появления Android Pie единственным способом захвата следов с помощью системная трасса заключалась в том, чтобы подключить Android-устройство к компьютеру и запустить оттуда systrace — обычно с терминала. Однако не у всех есть постоянный доступ к компьютеру или знания и уверенность в использовании systrace.
С выпуском Android Pie это неудобство было устранено введением Пакет Traceur, который представляет собой инструмент, который собирает необработанные данные трассировки. прямо на телефоне Android. Traceur доступен как опция «Трассировка системы» в параметрах разработчика приложения «Настройки», а необработанные данные трассировки, полученные на устройстве с помощью Traceur, могут быть позже преобразованы с помощью системная трасса в HTML-отчет для анализа.
Новая опция «Трассировка системы» позволяет пользователям легко собирать и делиться трассировками с разработчиками без необходимости знать, как запускать системная трасса на компьютере. Разработчики получают выгоду от возможности фиксировать трассировки без компьютера и позже анализировать их в удобное для них время. Полные необработанные данные трассировки, собранные с помощью «Трассировки системы», также значительно меньше по размеру, чем отчет в формате HTML, сгенерированный с помощью системная трассачто делает необработанные данные трассировки более подходящими для хранения и обмена с другими.
Руководство: сбор системы и анализ системных трассировок
Во-первых, убедитесь, что у вас есть устройство с Android Pie и компьютер с установленным Python 2. Следующие инструкции были выполнены на OnePlus 6 с последней бета-версией OxygenOS Android Pie.
- Включите параметры разработчика в приложении «Настройки», а затем получите доступ к параметру «Трассировка системы». в разделе «Отладка» параметров разработчика.
- При открытии трассировки системы вам будет представлен переключатель для включения трассировки системы, а также возможность настраивать категории трассировки и размер буфера трассировок. Для этой демонстрации используются категории по умолчанию, которых достаточно в большинстве случаев. Переключатель «Показать плитку быстрых настроек» позволяет запускать/останавливать трассировку с помощью быстрых настроек. Я включил это для этого руководства.
- Чтобы начать захват трассировки, коснитесь недавно добавленной плитки быстрых настроек «Запись трассировки».
- Когда вы закончите трассировку тестового примера, вы можете остановить трассировку из панели уведомлений.
- Большой! Вы успешно захватили необработанную трассировку. В уведомлении вам будет предложено поделиться необработанным файлом трассировки. Вы должны иметь возможность сохранить его на своем устройстве, загрузить в онлайн-хранилище, отправить кому-нибудь по электронной почте и т. д. В качестве альтернативы вы можете использовать ADB, чтобы напрямую перенести трассировку с вашего устройства на компьютер (
adb pull /data/local/traces/
). Продолжайте и сохраните файл трассировки на свой компьютер. - Необработанный файл трассировки содержит формат .ctrace. Его нельзя интерпретировать в необработанном виде. Мы можем использовать системная трасса для создания более полезного и понятного интерактивного HTML-отчета из нашего необработанного файла трассировки.
- Мы будем использовать последнюю версию системная трасса от репозиторий проекта катапульты. В терминальном приложении клонируйте репозиторий (убедитесь, что git установлен):
git clone https://github.com/catapult-project/catapult.git
- Чтобы сгенерировать отчет HTML из нашего необработанного файла трассировки, используя системная трассавведите следующие команды:
python2 catapult/systrace/bin/systrace --from-file=<path to raw trace file>
Будет создан HTML-файл с тем же именем, что и у исходного файла трассировки. Примечание: на момент написания systrace поддерживает только Python 2.
- Чтобы просмотреть отчет в формате HTML, запустите браузер Google Chrome и перейдите по URL-адресу «chrome://tracing». Не открывайте HTML-отчет непосредственно в Google Chrome, так как он будет пустым.
- Нажмите «Загрузить» и откройте файл отчета в формате HTML во всплывающем диалоговом окне. Вуаля! Ваш отчет о трассировке теперь доступен для проверки.
Что дальше?
Теперь, когда вы можете зафиксировать трассировку и сгенерировать системная трасса отчет, важно понимать, как читать и интерпретировать данные, представленные в отчете. Для начала рекомендую прочитать «Понимание Системная трасса“, и смотреть”Производительность Android: обзор (Google I/O ’17)” а также “Системная трасса для игр” увидеть системная трасса в действии.
Это гостевой пост, изначально написанный Джошем Чу, также известным как XDA Recognized Developer. веселый. Пост был слегка отредактирован для форматирования.