Як локально захопити трасування системи на Android Pie

systrace — потужний інструмент, який збирає інформацію про час із процесів, запущених на Android. Ось як записати трасування системи на Android Pie.

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

systrace є одним із таких потужних засобів відстеження, який збирає інформацію про час із процесів працює на пристрої Android. systrace широко використовувався Команда продуктивності Android у Google для оптимізації роботи телефонів Google Pixel. Я використовував systrace щоб перевірити вплив змін планувальника ядра на розміщення завдань на ЦП, наприклад, і визначити можливі причини сміття. systrace може фіксувати широкий спектр даних, включаючи планування ЦП, частоту ЦП, дисковий ввід/вивід, графіку, діяльність Binder та багато іншого. Інформація об’єднується у звіт, який можна аналізувати в Google Chrome.

До того, як Android Pie був єдиним способом захоплення слідів systrace полягала в тому, щоб підключити пристрій Android до комп’ютера та запустити звідти systrace — зазвичай із терміналу. Однак не всі мають постійний доступ до комп’ютера або знання та впевненість, щоб запускати systrace.

З випуском Android Pie ця незручність була усунена завдяки введенню Пакет Traceur, який є інструментом, який збирає необроблені дані трасування безпосередньо на телефоні Android. Traceur доступний як параметр «Системне відстеження» в параметрах розробника програми «Налаштування», а необроблені дані трасування, отримані на пристрої за допомогою Traceur, можна пізніше перетворити за допомогою systrace у звіт HTML для аналізу.

Нова опція «Системне відстеження» дозволяє користувачам легко отримувати трасування та ділитися ними з розробниками, не знаючи, як їх запускати. systrace на комп'ютері. Розробники отримують вигоду від можливості фіксувати сліди без комп’ютера та аналізувати пізніше, коли їм зручно. Повні необроблені дані трасування, зібрані «Системною трасуванням», також значно менші за розміром, ніж звіт HTML, створений systrace, що робить необроблені дані трасування більш придатними для зберігання та обміну з іншими.

Посібник: Збір системних і аналіз трасувань системи

По-перше, переконайтеся, що у вас є пристрій під керуванням Android Pie і комп’ютер із інстальованим Python 2. Наступні інструкції було виконано на OnePlus 6 з останньою бета-версією OxygenOS Android Pie.

  1. Увімкніть «Параметри розробника» в програмі «Налаштування», а потім перейдіть до опції «Системне відстеження». у розділі «Налагодження» параметрів розробника.
  2. Відкривши трасування системи, ви побачите перемикач для ввімкнення трасування системи та можливість налаштувати категорії трасування та розмір буфера трасувань. Для цієї демонстрації використовуються стандартні категорії, яких достатньо для більшості випадків. Перемикач «Показати плитку швидких налаштувань» дозволяє запускати/зупиняти відстеження через швидкі налаштування. Я ввімкнув це для цього посібника.
  3. Щоб розпочати запис трасування, торкніться нещодавно доданої плитки швидких налаштувань «Записати трасування».
  4. Коли ви завершите трасування тестового випадку, ви можете зупинити трасування на панелі сповіщень.
  5. Чудово! Ви успішно захопили необроблену трасу. Сповіщення запропонує вам поділитися необробленим файлом трасування. Ви повинні мати можливість зберегти його на своєму пристрої, завантажити в онлайн-сховище, надіслати комусь електронною поштою тощо. Крім того, ви можете використовувати ADB для безпосереднього отримання трасування з пристрою на комп’ютер (adb pull /data/local/traces/). Збережіть файл трасування на своєму комп’ютері.
  6. Необроблений файл трасування має виправлений вигляд Формат .ctrace. Його не можна інтерпретувати в сирому вигляді. Ми можемо використовувати systrace щоб створити більш корисний і зрозумілий інтерактивний HTML-звіт із нашого необробленого файлу трасування.
  7. Ми будемо використовувати останню версію systrace від репо проекту катапульти. У термінальній програмі клонуйте репо (переконайтеся, що git встановлено):
    git clone https://github.com/catapult-project/catapult.git
  8. Щоб створити HTML-звіт із нашого необробленого файлу трасування за допомогою systrace, введіть такі команди:
    python2 catapult/systrace/bin/systrace --from-file=<pathtorawtracefile>
    Буде створено HTML-файл із такою ж назвою, як і необроблений файл трасування. Примітка: на момент написання статті systrace підтримує лише Python 2.
  9. Щоб переглянути звіт HTML, запустіть браузер Google Chrome і перейдіть за URL-адресою «chrome://tracing». Не відкривайте HTML-звіт безпосередньо в Google Chrome, оскільки він буде порожнім.
  10. Натисніть «Завантажити» та відкрийте файл звіту HTML у спливаючому діалоговому вікні. Вуаля! Ваш звіт про трасування тепер доступний для перевірки.

Що далі?

Тепер, коли ви можете захопити трасування та створити a systrace звіту, важливо розуміти, як читати та інтерпретувати дані, представлені у звіті. Для початку рекомендую прочитати "Розуміння Systrace", і дивитися "Продуктивність Android: огляд (Google I/O ‘17)" і "Systrace для ігор" бачити systrace в дії.

Це гостьовий допис, який спочатку написав Джош Чу, також відомий як визнаний розробник XDA joshuous. Публікацію було трохи відредаговано для форматування.