Red de conocimiento informático - Material del sitio web - Cómo probar el tiempo de inicio de su aplicación

Cómo probar el tiempo de inicio de su aplicación

Para las pruebas de rendimiento de la aplicación, el tiempo de inicio es un indicador importante. El tiempo de inicio se divide en dos situaciones, una es el tiempo de inicio en frío (generalmente el reinicio del sistema, es decir, no hay ningún proceso de aplicación antes del inicio) y la otra es el tiempo de inicio en caliente. es decir, la aplicación cambia al primer plano (haga clic en Volver para salir y luego haga clic en el icono para comenzar).

A partir de Android 4.4 (API 19), puede obtener información de inicio de actividad desde logcat, como se muestra a continuación. Utilicé App Store para realizar experimentos. Puede ver el siguiente resultado, desde aquí podemos verlo. tarda 639 ms en iniciar la actividad de la aplicación.

12-13 00:10:41.331 855-957/?I/ActivityManager: [AppLaunch] Se muestra com.tencent.android.qqdownloader/com.tencent. Assistantv2.activity.MainActivity: 639 ms (total 751 ms)

12-13 00:10:41.331 855-957/?D/ActivityManager:AP_PROF:AppLaunch_LaunchTime:com.tencent.android.qqdownloader/com. .assistantv2.activity.MainActivity: 639.50307447

Este mensaje de registro se generará cuando la actividad se dibuje por primera vez, es decir, si la actividad está en la pila de actividades, luego cuando se reinicie (generalmente a través de la tarea reciente). no habrá salida cuando la lista vuelva a una actividad inmediatamente después de cambiar a otra actividad).

El tiempo en el registro incluye el tiempo desde que el sistema comienza a procesar la actividad de inicio hasta que se completan las funciones de diseño y dibujo, pero no incluye el tiempo desde que se hace clic en el icono hasta que el sistema recibe el mensaje. Obviamente, este tiempo tampoco incluye el tiempo dedicado a dibujar de forma asincrónica la interfaz de usuario durante el inicio. Pero en lo que nos centramos en la prueba es en realidad el tiempo de inicio de la experiencia del usuario, por lo que el tiempo en el registro anterior no satisface nuestras necesidades.

Pero afortunadamente, dado que se trata de una experiencia de usuario, podemos usar screenrecord para grabar la pantalla y luego analizar el vídeo para completar la prueba de una manera más intuitiva. Utilice el siguiente comando para grabar un vídeo.

adb shell screenrecord -bugreport /sdcard/launch.mp4

El parámetro "-bugreport" hará que el video genere cierta información de tiempo y fotograma para que podamos analizar el tiempo de inicio. Después de que comience el evento, use ctrl c para finalizar la grabación de video y luego use

adb shell pull /sdcard/launch.mp4 /Users/xxx/Downloads/launch.mp4

para exportar el video a la computadora y abrirlo con un programa de video que pueda reproducir el video cuadro por cuadro (quicktime en mac funcionará). Utilice Quicktime en Mac o kmplayer en Win) y reprodúzcalo cuadro por cuadro.

Al reproducir un vídeo fotograma a fotograma, el tiempo (con una precisión de milisegundos) y el número de fotogramas por fotograma se mostrarán en la esquina superior izquierda del vídeo. En el video, verá que el ícono se oscurece y luego se aclara, y cuando el ícono se vuelve más brillante, el sistema comienza a manejar eventos de clic para ese ícono. Puede tomar este tiempo como el tiempo de clic y luego, según la experiencia, puede ver que la página de inicio de la aplicación está completamente dibujada como el tiempo de finalización, y este tiempo menos el tiempo de clic es el tiempo de inicio de la aplicación.

Al probar el tiempo de inicio de la aplicación, otras aplicaciones que se ejecutan en el sistema interferirán con el tiempo de inicio.

Si necesita comparar versiones con la competencia, es mejor mantener el entorno lo más consistente posible y tomar un promedio repitiéndolo varias veces. Por último, no olvide probar el arranque en frío y el arranque en caliente por separado~