Трассировка системы на смартфонах Huawei скрыта в меню «Для разработчиков» и запускается через встроенное приложение HiTrace или командную строку ADB. В актуальных версиях EMUI 13+ и HarmonyOS 3+ точка входа перенесена в раздел «Система» → «Для разработчиков» → «Трассировка системы», где доступен выбор категорий событий и длительность записи. Результат сохраняется в формате .trace или .perfetto-trace для последующего анализа производительности.
Многие пользователи путают системную трассировку с логированием ошибок через logcat или созданием отчетов об ошибках (Bugreport). Главное отличие — трассировка фиксирует временные метки выполнения процессов, потоков и системных вызовов с микросекундной точностью, что критично для поиска заиканий интерфейса (jank) и утечек ресурсов. На устройствах с HarmonyOS NEXT механизм интегрирован в DevEco Profiler, поэтому доступ к «сырым» файлам может требовать авторизации разработчика.
Как открыть меню разработчика и найти настройки трассировки
Прежде чем искать пункт трассировки, необходимо активировать скрытое меню. Настройка идентична для телефонов, планшетов и ноутбуков на MatePad. После активации меню путь к настройкам выглядит единообразно, но визуальное расположение может отличаться в зависимости от версии оболочки.
- 🔧 Зайдите в Настройки → О телефоне → Версия ПО и тапните 7 раз по Номер сборки.
- 🔐 Введите ПИН-код или пароль экрана блокировки для подтверждения.
- ⚙️ Вернитесь в Систему → Для разработчиков (в EMUI 14/15 может быть в корне настроек).
- 📋 Прокрутите вниз до раздела Отладка и найдите строку Трассировка системы.
Если пункта нет — проверьте версию ОС. На старых EMUI 10-11 функция называлась «Профилирование GPU» или скрывалась в «Мониторинге производительности». В HarmonyOS 4.0+ интерфейс переведен на русский полностью, но термин «System Tracing» иногда остается английским в поиске настроек.
⚠️ Внимание: Включение «Трассировки системы» без остановки записи быстро заполнит внутреннюю память. Файл лога за 10 минут активного использования может весить 500 МБ – 1.5 ГБ. Очистите место перед длительной сессией.
Работа с нативным приложением HiTrace
Huawei поставляет собственный инструмент HiTrace (или «Системная трассировка» в лаунчере), который позволяет записать лог без подключения к ПК. Приложение преустановлено на всех устройствах с GMS и HMS, иконка появляется в меню приложений только после включения режима разработчика. Это удобнее ADB для быстрой проверки «лагов» в конкретном приложении.
Запуск записи занимает пару тапов: выбираете категории (CPU Scheduling, GPU, Memory, Disk I/O, Network), задаете длительность от 5 секунд до 30 минут и нажимаете «Начать». По завершении файл автоматически сохраняется в /data/local/traces/ или предлагается к отправке через «Файлы» / почту. В HarmonyOS 4.2 добавлена кнопка «Открыть в Perfetto», которая загружает веб-интерфейс анализатора прямо в браузере телефона.
☑️ Чек-лист перед записью в HiTrace
Запись трассировки через ADB и Perfetto CLI
Профессиональная отладка требует большего контроля, чем дает GUI. Утилита perfetto встроена в Android 10+ и доступна через ADB shell. Она позволяет задать точную конфигурацию буферов, счетчиков и триггеров старта/стопа. Метод работает даже если экран сломан или интерфейс завис, так как управление идет с хост-машины.
Базовая команда для записи 30-секундного трейса с дефолтным конфигом:
adb shell perfetto -c - -o /data/misc/perfetto-traces/trace.perfetto-trace --txt << 'EOF'
duration_ms: 30000
buffers: { size_kb: 65536 fill_policy: RING_BUFFER }
data_sources: { config { name: "linux.ftrace" } }
data_sources: { config { name: "linux.sys_stats" } }
data_sources: { config { name: "android.heapprofd" target_buffer: 65536 } }
EOF
После выполнения файл скачивается командой adb pull /data/misc/perfetto-traces/trace.perfetto-trace. Для сложных сценариев (запуск по событию, трассировка конкретного PID) используйте текстовые конфиги .pbtx или генератор на ui.perfetto.dev. На HarmonyOS NEXT доступ к perfetto бинарнику может быть ограничен политиками SELinux — в таком случае помогает только HiTrace или DevEco.
Пример конфига для поиска UI-джиттеров (jank)
data_sources: { config { name: "android.surfaceflinger" } }
data_sources: { config { name: "android.choreographer" } }
data_sources: { config { name: "linux.ftrace" ftrace_config { atrace_categories: "gfx view sched freq idle am wm" } } }
duration_ms: 60000
-
Особенности сбора логов на HarmonyOS NEXT
С переходом на ядро Hongmeng и ArkTS изменилась архитектура сбора телеметрии. Традиционные ftrace-точки сохранены, но добавлены новые провайдеры данных: arkts.runtime (GC, JIT, компиляция AOT), hiview (системный фреймворк логирования) и distributed_sched (распределенные задачи между устройствами). Меню «Трассировка системы» в настройках теперь лишь запускает системный сервис hitrace, а конфигурирование перенесено в DevEco Studio → Profiler.
Разработчикам приложений на ArkUI рекомендуется использовать встроенный профайлер DevEco: он автоматически сопоставляет JS/TS стек с нативными системными вызовами. Для системных инженеров доступен CLI-инструмент hitrace с флагами -a (app), -k (kernel), -b (buffer size). Файлы сохраняются в /data/log/hitrace/ в формате .htrace, который конвертируется в Perfetto через hitrace_converter.
⚠️ Внимание: На HarmonyOS NEXT обычный пользователь не может прочитать /data/log/hitrace/ без root-прав или статуса «Разработчик системы» (System Developer Mode), который требует верификации аккаунта Huawei Developer и привязки устройства к профилю.
Анализ полученных файлов в Perfetto UI
Универсальный стандарт анализа — веб-интерфейс ui.perfetto.dev. Он работает офлайн (PWA), поддерживает файлы до нескольких гигабайт и не требует установки ПО. Перетащите .trace, .perfetto-trace или конвертированный .htrace в окно браузера. Основные вкладки: Timeline (потоки, CPU, слайсы), CPU (частота, idle, wakeups), Memory (RSS, PSS, Java/ArkTS куча), SQL (запросы к внутренней БД трейса).
Для поиска причины фриза откройте вкладку Timeline, найдите поток RenderThread или UI Thread (main). Длинные слайсы Choreographer#doFrame дольше 16.6 мс (или 8.3 мс на 120 Гц) — это пропущенные кадры. Клик по слайсу показывает стек вызовов (Callstack), если включена категория sched или gfx. В HarmonyOS ищите слайсы ArkUI::Render и ArkTS::GC.
Используйте клавиатурные сокращения в Perfetto: «W/A/S/D» — зум/панорамирование, «M» — замерять длительность между двумя точками, «/» — поиск по имени слайса или PID. Это ускоряет анализ в 3-4 раза по сравнению с мышью.
Типичные ошибки и ограничения прав доступа
Частая проблема — пустой трейс или ошибка «Permission denied» при запуске через ADB. Причины: SELinux блокирует запись в /data/misc/perfetto-traces/ (решается запуском от shell пользователя, который есть по дефолту), или включен «Режим повышенной безопасности» в настройках разработчика, запрещающий профилирование. Также на корпоративных устройствах MDM-политики могут отключить adb shell perfetto и скрыть пункт меню.
Другая ловушка — несовпадение форматов. Файл .trace от HiTrace старых версий (EMUI 10) не открывается в современном Perfetto UI. Нужен конвертер trace2perfetto из исходников AOSP или онлайн-конвертер на perfetto.dev. Если трейс записан на HarmonyOS NEXT в формате .htrace, он не откроется напрямую — обязательна конвертация утилитой hitrace_converter из SDK DevEco.
| Метод | Формат вывода | Требует ПК | Гибкость конфига | Подходит для |
|---|---|---|---|---|
| HiTrace (GUI) | .trace / .perfetto-trace | Нет | Низкая (пресеты) | Быстрая проверка лагов пользователем |
| ADB perfetto CLI | .perfetto-trace | Да | Максимальная (protobuf конфиг) | Автоматизация, CI, глубокая отладка |
| DevEco Profiler | .htrace → .perfetto-trace | Да (IDE) | Высокая (GUI + ArkTS контекст) | Разработка приложений на HarmonyOS |
| Bugreport (системный) | .zip (внутри trace.txt) | Нет | Нет (фиксированный набор) | Отправка в поддержку Huawei |
Альтернативные инструменты: Systrace и DevEco Profiler
Устаревший systrace.py (Python-скрипт из Android SDK) до сих пор работает на EMUI 12 и ниже, но не поддерживает новые категории ftrace и формат Protobuf. Google объявлен deprecated в пользу Perfetto. Используйте только для легаси-проектов. На HarmonyOS полноценной заменой является DevEco Profiler — он умеет снимать трейсы с запущенного приложения, привязывать к исходному коду ArkTS/JS и показывать Flame Graph по нативному стеку (C++/Rust) через интеграцию с perf.
Для анализа батареи и wake locks удобен Battery Historian (на базе bugreport), но он не заменяет системную трассировку по CPU/GPU. Если задача — найти, почему процесс держит wakelock, лучше включить категорию power в Perfetto конфиге и смотреть слайсы PowerManager::acquireWakeLock на Timeline.
Главный вывод: для разовых проверок используйте HiTrace на телефоне, для системной отладки и CI — ADB + Perfetto CLI, для разработки под HarmonyOS — DevEco Profiler. Формат .perfetto-trace — единый стандарт анализа во всех случаях.-
Часто задаваемые вопросы (FAQ)
Где лежит файл трассировки после записи в HiTrace?
По умолчанию: /data/local/traces/ (требует root для прямого доступа) или в папке «Загрузки» / «Файлы» → «Внутреннее хранилище» → «Traces», если приложение предложило экспорт. В HarmonyOS 4.2+ можно сразу нажать «Поделиться» и отправить в Telegram/Почту.
Почему Perfetto UI не открывает .trace файл с моего старого Honor/Huawei?
Старые версии HiTrace (до EMUI 12) писали проприетарный формат .trace на базе protobuf, несовместимый с Perfetto. Нужен конвертер trace2perfetto или запись заново на актуальной ОС. Обновите систему или используйте ADB perfetto для получения стандартного формата.
Можно ли снять трассировку без включения «Режима разработчика»?
Нет. И пункт меню, и бинарник perfetto в shell, и HiTrace недоступны без флага settings put global development_settings_enabled 1, который ставится только через меню «Для разработчиков». Обход возможен только через кастомный recovery или exploit, что выходит за рамки пользовательской настройки.
Какие категории выбрать для поиска причин разряда батареи?
В Perfetto конфиге включите power, wakeup, sched, freq, idle. В HiTrace выберите «Питание» + «CPU» + «Планировщик». Ищите частые пробуждения (wakeups) и длительное удержание wakelock'ов в Timeline.
Работает ли трассировка на ноутбуках MateBook с HarmonyOS?
Да, на MateBook с HarmonyOS (не Windows) механизм идентичен планшетам: меню разработчика → Трассировка системы → HiTrace. Файлы сохраняются в то же место. На Windows-трекинг Huawei не распространяется, там используются ETW (Event Tracing for Windows) и WPR/WPA.