Cómo probar el tiempo de inicio
A partir de Android 4.4 (API 19), puede obtener la información de inicio de la actividad desde logcat, como se muestra a continuación. Hice el experimento usando App Store. Desde aquí podemos ver el siguiente resultado. Se necesitan 639 ms para 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. .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 .tencent. 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 al reiniciar (generalmente después de la más reciente). No habrá salida cuando la lista de tareas vuelva a otra 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, al ser experiencia de usuario, podemos usar screenrecord para grabar la pantalla y luego analizar el vídeo para completar la prueba de una forma 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 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 esto como el tiempo de clic y luego, según la experiencia, puede dibujar la página de inicio de la aplicación completamente como la hora de finalización. En este momento, restar 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 una versión con la de la competencia, es mejor mantener el entorno lo más consistente posible y realizar la prueba varias veces para obtener un promedio.
Por último, no olvide probar el arranque en frío y el arranque en caliente por separado~