Crea perfiles de inicio

Los perfiles de inicio son un subconjunto de los perfiles de Baseline. El sistema de compilación usa perfiles de inicio para optimizar aún más las clases y los métodos que contienen mejorando el diseño del código en los archivos DEX de tu APK. Con los perfiles de inicio, el inicio de tu app suele ser entre un 15% y un 30% más rápido que con solo los perfiles de Baseline.

Figura 1: Mejora de la localidad del código a partir de la optimización del diseño DEX.

Requisitos

Recomendamos usar los perfiles de inicio con las siguientes herramientas:

  • Jetpack Macrobenchmark 1.2.0 o una versión posterior
  • Complemento de Android para Gradle 8.2 o una versión posterior
  • Android Studio Iguana o versiones posteriores

Además, necesitas la siguiente configuración en tu app:

  • R8 habilitado. Para tu compilación de lanzamiento, configura isMinifyEnabled = true.
  • Se habilitaron las optimizaciones del diseño DEX. En el bloque baselineProfile {} del archivo de compilación del módulo de la app, establece dexLayoutOptimization = true.

Cómo crear un perfil de inicio

Android Studio crea un perfil de inicio junto con un perfil de Baseline cuando usas la plantilla predeterminada del generador de perfiles de Baseline.

Los pasos generales para crear y generar un perfil de inicio son los mismos que los que se usan para crear un perfil de Baseline.

La forma predeterminada de crear un perfil de inicio es usar la plantilla del módulo generador de perfiles de Baseline desde Android Studio. Esto incluye las interacciones de inicio que forman un perfil de inicio básico. Para mejorar este perfil de inicio con más recorridos críticos del usuario (CUJ), agrega los CUJ de inicio de tu app a un bloque rule con includeInStartupProfile establecido en true. En el caso de las apps simples, es posible que sea suficiente iniciar la MainActivity de la app. En el caso de las apps más complejas, considera agregar los puntos de entrada más comunes, como iniciar la app desde la pantalla principal o abrir un vínculo directo.

En el siguiente fragmento de código, se muestra un generador de perfiles de Baseline (de forma predeterminada, el archivo BaselineProfileGenerator.kt) que incluye el inicio de tu app desde la pantalla principal y el inicio en un vínculo directo. El vínculo directo va directamente al feed de noticias de la app, no a la pantalla principal.

@RunWith(AndroidJUnit4::class)
@LargeTest
class BaselineProfileGenerator {

    @get:Rule
    val rule = BaselineProfileRule()

    @Test
    fun generate() {
        rule.collect(
            packageName = "com.example.app",
            includeInStartupProfile = true
        ) {
            // Launch directly into the NEWS_FEED.
            startActivityAndWait(Intent().apply {
                setPackage(packageName)
                setAction("com.example.app.NEWS_FEED")
            })
        }
    }
}

Ejecuta la configuración Generate Baseline Profile for app y busca las reglas del perfil de inicio en src/<variant>/generated/baselineProfiles/startup-prof.txt.

Consideraciones para crear perfiles de inicio

El resultado de las clases y los métodos de un perfil de inicio se limita por el tamaño del primer archivo classes.dex. Esto significa que no todos los recorridos del perfil de Baseline también deben ser recorridos del perfil de inicio.

Para decidir qué recorridos del usuario abordar cuando crees un perfil de inicio, ten en cuenta dónde inician la aplicación la mayoría de los usuarios. Por lo general, se hace desde el selector y después de haber accedido. Este también es el recorrido de perfil de Baseline más básico.

Después de cubrir el primer caso de uso, sigue el embudo de usuarios para el inicio de la app. En muchos casos, los embudos de inicio de la app siguen esta lista:

  1. Actividad del selector principal
  2. Notificaciones que activan el inicio de la app
  3. Actividades del selector opcionales

Trabaja en esta lista desde la parte superior y deténte antes de que classes.dex esté lleno. Para abarcar más recorridos más adelante, quita el código de la ruta de inicio y agrega más recorridos. Para quitar el código de la ruta de inicio, inspecciona los seguimientos de Perfetto durante el inicio de la app y busca operaciones de larga duración. También puedes usar una macrocomparativa con el seguimiento de métodos habilitado para obtener una vista completa y automatizable de las llamadas a métodos durante el inicio de la app.

No hay recomendaciones en este momento.

Intenta a tu Cuenta de Google.