Производительность приложения для Android
Производительность приложения для Android
Мониторинг производительности приложений позволяет получить представление о том, как Android-приложение отображается на экране. Это включает в себя время, необходимое приложению для загрузки, какие экраны отображаются и как пользователи перемещаются между ними.
ЕдиныйАгент для Android отслеживает этот процесс от запуска приложения до навигации между представлениями внутри приложения и до тех пор, пока приложение не будет переведено в фоновый режим или завершено.
ЕдиныйАгент для Android перехватывает следующие концепции и сохраняет их в виде событий в Хранилище данных:
- События запуска приложения — измеряют время запуска приложения и переходы в активный режим.
- Представления — это экраны, видимые пользователю.
- События навигации — это переходы между экранами и изменения состояний (например, запуск приложения и переход приложения в фоновый режим).
- Сводные данные по представлениям — это агрегированные события, создаваемые при завершении отображения представления, и суммирующие то, что произошло, пока представление было видимым.
Эти концепции соответствуют общей модели мобильного RUM, описанной в разделе «Концепции мобильного RUM». Определения см. в разделах «Запуск приложения», «Представления и сводки представлений» и «Навигация».
Каждое событие состоит из четко определенных полей типа «ключ-значение», как указано в Семантическом словаре для пользовательских событий, включая app_start.*, navigation.* и view.*.
Эти данные можно анализировать в таких приложениях, как Experience Vitals и Пользователи и сессии, или запрашивать напрямую в Хранилище данных с помощью DQL.
ЕдиныйАгент для Android автоматически собирает информацию о запуске и жизненном цикле, регистрируясь для получения обратных вызовов жизненного цикла Android (через ActivityLifecycleCallbacks). На основе этой информации ЕдиныйАгент может автоматически определять представления (в настоящее время ограничено активностями). Для фрагментов, экранов Jetpack Compose или других компонентов пользовательского интерфейса представления можно собирать вручную с помощью Astromkey.startView(...).
Событие запуска приложения
Событие App Start измеряет время, необходимое приложению для готовности после запуска или перехода в активный режим.
ЕдиныйАгент классифицирует запуск приложений на три типа: холодный, теплый и горячий (см. раздел «Запуск приложения» для определений и примеров).
В Android классификация определяется на основе сигналов процесса и жизненного цикла Activity (например, нужно ли было создавать процесс и нужно ли было создавать запуск Activity заново).
Помимо того, что запуск приложения доступен в качестве события запуска, он также представлен как событие навигации (навигация без отображения исходного кода).
Как фиксируется запуск приложения
ЕдиныйАгент отслеживает запуск приложения на основе обратных вызовов жизненного цикла Android, фиксируя последовательность фаз, таких как:
- Инициализация
Application Activity.onCreateActivity.onStartActivity.onResume
Обеспечьте точное измерение
Для фиксации полной продолжительности запуска приложения измерение должно начинаться как можно раньше. Для приложений с автоматической инструментацией ЕдиныйАгент начинает измерение с момента запуска Application.onCreate. Если автоматический запуск отключен в DSL или агент запускается вручную, измерение начинается только при запуске агента. В этом случае вызов функции Astromkey.startup(...) как можно раньше гарантирует точные результаты. В противном случае сообщаемая продолжительность может быть короче фактического времени запуска.
Событие навигации
Событие навигации представляет собой контекст перехода между представлениями или изменение видимого состояния приложения (см. раздел «Навигация»).
Событие навигации может содержать:
- Исходный вид — вид, который был активен до перехода.
- Текущий вид — вид, который становится активным после перехода.
В большинстве случаев событие Navigation выступает в качестве связующего звена между двумя представлениями.
События навигации генерируются как для автоматического отслеживания просмотра (переходы между действиями), так и для ручного отслеживания просмотра (с помощью Astromkey.startView(...)).
Особые случаи
- Запуск приложения — навигация без отображения исходного кода.
- Изменение видимости на фоновый режим — навигация с исходным представлением, но без текущего представления.
Представления
В Ключ-АСТРОМ представление представляет собой экран, видимый пользователю (см. «Представления» и «Сводки представлений»).
Для получения справочной информации по этому полю см. раздел «Атрибуты представления».
ЕдиныйАгент автоматически отслеживает просмотры для отслеживания действий. Другие компоненты пользовательского интерфейса можно отслеживать вручную.
Одновременно может быть активен только один элемент интерфейса. Запуск нового элемента автоматически закрывает предыдущий и запускает навигацию.
Пока приложение находится на переднем плане, ЕдиныйАгент для Android поддерживает текущий контекст представления. Имя представления прикрепляется к событиям, автоматически перехватываемым (например, веб-запросам), и к событиям, создаваемым с помощью API Ключ-АСТРОМ. Это обеспечивает контекст экрана, в котором произошло событие.
Автоматическое отслеживание обзора
Для анализа действий ЕдиныйАгент получает представления на основе обратных вызовов жизненного цикла:
- Представление начинается, когда в него входит какое-либо действие
onResume. - Представление завершается, когда начинается какое-либо действие
onPause.
Отслеживание просмотра вручную
Для компонентов пользовательского интерфейса, которые не определяются автоматически (например, фрагменты, экраны Jetpack Compose или пользовательские представления), используйте Astromkey.startView(...):
Kotlin
Astromkey.startView("Login")
Java
Astromkey.startView("Login");
Вызов startView запускает новое представление и автоматически завершает предыдущее активное представление.
Просмотреть сводку
Когда представление завершается, ЕдиныйАгент создает сводку представления — агрегированное событие, суммирующее все, что произошло за время существования представления (см. «Представления и сводки представлений»). Сводки представлений отображаются отдельно от других событий.
- Время начала — когда открылся вид.
- Продолжительность — как долго отображалось активное изображение.
- Количество ошибок — число зарегистрированных ошибок, ошибок запросов и исключений, произошедших во время активности представления. Справочную информацию по этому полю см. в разделе «Сводка по представлению».