Какой лучший способ измерить время запуска приложения / активности?

После поиска в этой теме, я знаю, что есть несколько способов измерить время запуска приложения для Android.

  1. adb logcat -b events | grep am_activity_launch_time, см. этот пост
  2. adb logcat -s ActivityManager:I | grep Отображается
  3. использовать reportFullyDrawn программно
  4. adb shell screenrecord --bugreport /sdcard/launch.mp4, чтобы проверить видео кадр за кадром, см. этот пост
  5. adb shell am start -w packagename/MainActivity для проверки вывода
  6. adb logcat -s Временная шкала:I, чтобы проверить "App_transition_ready" и Activity_windows_visible в выходных данных.

Как наиболее точно измерить время запуска приложения для Android? Каковы различия между ними?

1 ответ

Это из официальной документации Android

Начиная с API 19, logcat включает в себя строку вывода, содержащую значение с именем Displayed. Это значение представляет количество времени, прошедшее между запуском процесса и завершением рисования соответствующего действия на экране. Прошедшее время охватывает следующую последовательность событий:

  1. Запустите процесс
  2. Инициализируйте объекты.
  3. Создайте и инициализируйте активность.
  4. Раздуйте макет.
  5. Нарисуйте свою заявку в первый раз.

Журнал выглядит следующим образом

ActivityManager: Displayed com.android.myexample/.StartupTiming: +3s534ms

Чтобы это работало, отключите фильтры в представлении logcat в Android Studio, поскольку этот журнал обслуживает системный сервер, а не само приложение.

Проверьте эту официальную ссылку для дальнейшего объяснения различных методов.

Другие вопросы по тегам