Какой лучший способ измерить время запуска приложения / активности?
После поиска в этой теме, я знаю, что есть несколько способов измерить время запуска приложения для Android.
- adb logcat -b events | grep am_activity_launch_time, см. этот пост
- adb logcat -s ActivityManager:I | grep Отображается
- использовать reportFullyDrawn программно
- adb shell screenrecord --bugreport /sdcard/launch.mp4, чтобы проверить видео кадр за кадром, см. этот пост
- adb shell am start -w packagename/MainActivity для проверки вывода
- adb logcat -s Временная шкала:I, чтобы проверить "App_transition_ready" и Activity_windows_visible в выходных данных.
Как наиболее точно измерить время запуска приложения для Android? Каковы различия между ними?
1 ответ
Это из официальной документации Android
Начиная с API 19, logcat включает в себя строку вывода, содержащую значение с именем Displayed. Это значение представляет количество времени, прошедшее между запуском процесса и завершением рисования соответствующего действия на экране. Прошедшее время охватывает следующую последовательность событий:
- Запустите процесс
- Инициализируйте объекты.
- Создайте и инициализируйте активность.
- Раздуйте макет.
- Нарисуйте свою заявку в первый раз.
Журнал выглядит следующим образом
ActivityManager: Displayed com.android.myexample/.StartupTiming: +3s534ms
Чтобы это работало, отключите фильтры в представлении logcat в Android Studio, поскольку этот журнал обслуживает системный сервер, а не само приложение.
Проверьте эту официальную ссылку для дальнейшего объяснения различных методов.