Primeros pasos con Performance Monitoring para Android

Antes de comenzar

Si aún no lo has hecho, agrega Firebase a tu proyecto de Android.

Paso 1: Agrega el SDK de Performance Monitoring a tu app

Una vez que agregues el SDK de Performance Monitoring, Firebase comenzará a recopilar datos de forma automática para la renderización de pantalla y los datos relacionados con el ciclo de vida de la app (como la hora de inicio de la app). Para permitir que Firebase supervise las solicitudes de red, también debes agregar el complemento de Gradle de Performance Monitoring (próximo paso).

  1. En el archivo Gradle del módulo (nivel de la app) (generalmente <project>/<app-module>/build.gradle.kts o <project>/<app-module>/build.gradle), agrega la dependencia de la biblioteca de Performance Monitoring para Android. Te recomendamos usar Firebase Android BoM para controlar las versiones de las bibliotecas.

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:33.7.0"))
    
        // Add the dependency for the Performance Monitoring library
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-perf")
    }

    Cuando usas Firebase Android BoM, tu app siempre usará versiones compatibles de las bibliotecas de Firebase para Android.

    (Alternativa)  Agrega dependencias de la biblioteca de Firebase sin usar la BoM

    Si eliges no usar la Firebase BoM, debes especificar cada versión de la biblioteca de Firebase en su línea de dependencia.

    Ten en cuenta que, si usas múltiples bibliotecas de Firebase en tu app, es muy recomendable que uses la BoM para administrar las versiones de las bibliotecas para garantizar que todas las versiones sean compatibles.

    dependencies {
        // Add the dependency for the Performance Monitoring library
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-perf:21.0.3")
    }
    ¿Buscas un módulo de biblioteca específico de Kotlin? A partir de octubre de 2023 (Firebase BoM 32.5.0), tanto los desarrolladores de Kotlin como los de Java pueden depender del módulo de la biblioteca principal (para obtener más información, consulta las Preguntas frecuentes sobre esta iniciativa).

  2. Vuelve a compilar la app.

Paso 2: Agrega el complemento de Gradle de Performance Monitoring a tu app

Después de agregar el complemento de Gradle de Performance Monitoring, Firebase comienza a recopilar automáticamente los datos de solicitudes de red HTTP/S. El complemento también te permite instrumentar el seguimiento de código personalizado con la anotación @AddTrace.

  1. En el archivo Gradle de nivel de raíz (nivel de proyecto) (<project>/build.gradle.kts o <project>/build.gradle), agrega el Complemento de Gradle de Performance Monitoring:

    Kotlin

    plugins {
        // To benefit from the latest Performance Monitoring plugin features,
        // update your Android Gradle plugin dependency to at least v3.4.0
        id("com.android.application") version "7.3.0" apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id("com.google.gms.google-services") version "4.4.2" apply false
    
        // Add the dependency for the Performance Monitoring Gradle plugin
        id("com.google.firebase.firebase-perf") version "1.4.2" apply false
    }

    Groovy

    plugins {
        // To benefit from the latest Performance Monitoring plugin features,
        // update your Android Gradle plugin dependency to at least v3.4.0
        id 'com.android.application' version '7.3.0' apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id 'com.google.gms.google-services' version '4.4.2' apply false
    
        // Add the dependency for the Performance Monitoring Gradle plugin
        id 'com.google.firebase.firebase-perf' version '1.4.2' apply false
    }
  2. En el archivo de Gradle (generalmente <project>/<app-module>/build.gradle.kts o <project>/<app-module>/build.gradle) del módulo (nivel de app), agrega el complemento de Gradle de Performance Monitoring:

    Kotlin

    plugins {
        id("com.android.application")
    
        // Make sure that you have the Google services Gradle plugin
        id("com.google.gms.google-services")
    
        // Add the Performance Monitoring Gradle plugin
        id("com.google.firebase.firebase-perf")
        ...
    }

    Groovy

    plugins {
        id 'com.android.application'
    
        // Make sure that you have the Google services Gradle plugin
        id 'com.google.gms.google-services'
    
        // Add the Performance Monitoring Gradle plugin
        id 'com.google.firebase.firebase-perf'
        ...
    }
  3. Vuelve a compilar la app.

Paso 3: Genera eventos de rendimiento para obtener una visualización inicial de los datos

Firebase comienza a procesar los eventos cuando agregas correctamente el SDK a tu app. Si aún estás desarrollando de manera local, interactúa con la app a fin de generar eventos para la recopilación y el procesamiento iniciales de los datos.

  1. Puedes generar eventos si alternas varias veces la ejecución de la app entre el primer y segundo plano, interactúas con la app mediante la navegación por las pantallas o activas solicitudes de red.

  2. Ve al panel Rendimiento de Firebase console. Deberías ver tus datos iniciales en pocos minutos.

    Si no ves los datos iniciales, revisa las sugerencias para solucionar problemas.

Paso 4: Revisa los mensajes de registro de los eventos de rendimiento (opcional)

  1. Agrega un elemento <meta-data> al archivo AndroidManifest.xml de la app para habilitar el registro de depuración de Performance Monitoring en el tiempo de compilación, como en el siguiente ejemplo:

    <application>
        <meta-data
          android:name="firebase_performance_logcat_enabled"
          android:value="true" />
    </application>
  2. Revisa si hay mensajes de error en los mensajes de registro.

  3. Performance Monitoring etiqueta sus mensajes de registro con FirebasePerformance. Con el filtro de logcat, puedes ver de forma específica el seguimiento de duración y el registro de solicitudes de red HTTP/S mediante la ejecución del siguiente comando:

    adb logcat -s FirebasePerformance
  4. Verifica los siguientes tipos de registros que indican que Performance Monitoring está registrando eventos de rendimiento:

    • Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URL
    • Logging network request trace: URL
  5. Haz clic en la URL para ver tus datos en Firebase console. Los datos pueden tardar unos minutos en actualizarse en el panel.

Si tu app no registra eventos de rendimiento, revisa las sugerencias para solucionar problemas.

Paso 5: Agrega supervisión personalizada para código específico (opcional)

Para supervisar los datos de rendimiento asociados con una parte específica del código de tu app, puedes instrumentar el seguimiento de código personalizado.

Con un seguimiento de código personalizado, puedes medir cuánto tiempo tarda la app en completar una tarea o un conjunto de tareas en específico, como cargar un conjunto de imágenes o consultar la base de datos. La métrica predeterminada de un seguimiento de código personalizado es su duración, pero también puedes agregar métricas personalizadas, como aciertos de caché y advertencias de memoria.

En el código, tú defines el inicio y el final de un seguimiento de código personalizado (y agregas cualquier métrica personalizada que desees) con la API que proporciona el SDK de Performance Monitoring. En las apps para Android, también puedes supervisar la duración de métodos específicos con la anotación @AddTrace.

Consulta cómo agregar supervisión para código específico si necesitas más información sobre estas funciones y cómo agregarlas a tu app.

Paso 6: Implementa tu app y revisa los resultados

Después de validar Performance Monitoring con uno o más dispositivos de prueba, puedes implementar la versión actualizada de tu app en tus usuarios.

Puedes supervisar los datos de rendimiento en el panel Rendimiento de Firebase console.

Problemas conocidos

  • La versión 1.1.0 del complemento de Gradle de Performance Monitoring puede causar un desajuste en las dependencias de Guava, lo que genera el siguiente error:

    Error:Execution failed for task ':app:packageInstantRunResourcesDebug'.
    > com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;

    Si ves este error, tienes las siguientes alternativas:

    • Actualiza el complemento de Performance Monitoring a la versión 1.1.1 o una posterior (la más reciente es la versión 1.4.2).

    • Reemplaza la línea de dependencia del complemento de Performance Monitoring en tu Archivo Gradle de nivel de raíz (nivel de proyecto) (<project>/build.gradle.kts o <project>/build.gradle), de la siguiente manera:

      Kotlin

      buildscript {
        // ...
      
        dependencies {
          // ...
      
          // Replace the standard Performance Monitoring plugin dependency line, as follows:
          classpath("com.google.firebase:perf-plugin:1.1.0") {
              exclude(group = "com.google.guava", module = "guava-jdk5")
          }
        }
      }

      Groovy

      buildscript {
        // ...
      
        dependencies {
          // ...
      
          // Replace the standard Performance Monitoring plugin dependency line, as follows:
          classpath('com.google.firebase:perf-plugin:1.1.0') {
              exclude group: 'com.google.guava', module: 'guava-jdk5'
          }
        }
      }
  • Performance Monitoring informa el tamaño total de la carga útil para las solicitudes de red HTTP según el valor configurado en el encabezado de longitud de contenido de HTTP. Es posible que este valor no siempre sea exacto.

  • Performance Monitoring solo admite el proceso principal en las apps para Android de varios procesos.

Próximos pasos