Configura el entorno para realizar pruebas de rendimiento
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Para identificar posibles cuellos de botella y mejorar el rendimiento general de la app, puedes registrar la actividad del dispositivo durante un período corto y recopilar registros del tiempo de inicio de tu app. En esta página, se muestra cómo configurar tu entorno para realizar pruebas de rendimiento.
Usa la biblioteca de Macrobenchmark
La biblioteca de Macrobenchmark mide las interacciones del usuario final más grandes, como el inicio, la interacción con la IU y las animaciones. La biblioteca ofrece un control directo sobre el entorno de rendimiento que estás probando. Te permite controlar la compilación, el inicio y la detención de la app para medir directamente el tiempo preciso de inicio de la app. También funciona para minimizar el ruido y las diferencias entre las ejecuciones de prueba.
Usa dispositivos de gama media para identificar posibles problemas de rendimiento
Haz pruebas de rendimiento en cada tipo de dispositivo que te interese. Los dispositivos de alta gama con componentes rápidos pueden ocultar problemas de rendimiento en dispositivos más antiguos, más lentos o con menos memoria RAM.
Los dispositivos de gama baja pueden tardar más en cargar datos o ejecutar código, lo que facilita la identificación de los cuellos de botella. Por lo general, optimizar el rendimiento en dispositivos de gama baja también beneficia la optimización de los de alta gama.
Reduce el ruido
- Red: prueba tus apps o procesos con velocidades de Internet estables y fuertes con conexión de Wi-Fi. Si el tiempo de inicio de la app incluye una solicitud de red, recuerda que es aquí donde se puede encontrar variabilidad.
- Uso de RAM: no tengas otras apps ejecutándose en el segundo plano del dispositivo mientras pruebas el rendimiento del inicio de la app.
- Batería: asegúrate de que el dispositivo esté cargado para evitar cualquier limitación de rendimiento específica de hardware relacionada con la carga baja.
Haz pruebas en compilaciones de lanzamiento
Prueba el rendimiento con compilaciones de lanzamiento. Las compilaciones de depuración no son adecuadas para la depuración de rendimiento, ya que no proporcionan una optimización para la compilación y tienen un impacto significativo en el rendimiento.
Sin embargo, sí puedes usar una compilación de lanzamiento no ofuscada para identificar los nombres de las operaciones y las clases. En particular, te recomendamos que habilites minify (R8) e inhabilites la ofuscación con -dontobfuscate
en el archivo de ProGuard.
Es más sencillo identificar diseños, elementos y recursos si la compilación no está ofuscada.
Asegúrate de incluir la marca de perfil en el manifiesto para que tus eventos personalizados sean visibles en compilaciones no depurables. Esta marca está disponible en Android 10 (nivel de API 29) y versiones posteriores.
Agrega registros personalizados a las operaciones de tu app
Agrega registros personalizados a tu app facilita la identificación de las operaciones que realiza la app en comparación con otras bibliotecas. Esto te brindará más contexto sobre lo que hace la app en todo momento.
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-07-27 (UTC)"],[],[],null,["# Set up your environment for performance testing\n\nYou can identify potential bottlenecks and improve overall app performance by\nrecording device activity over a short period of time and [collecting traces of\nyour app's startup period](/topic/performance/tracing). This page shows how to\nset up your environment for performance testing.\n\nUse the Macrobenchmark library\n------------------------------\n\nThe [Macrobenchmark\nlibrary](/topic/performance/benchmarking/macrobenchmark-overview) measures\nlarger end-user interactions, such as startup, interacting with the UI, and\nanimations. The library provides direct control over the performance environment\nyou're testing. It lets you control compiling, starting, and stopping your app\nto directly measure precise app startup time. It also works to minimize the\nnoise and differences between test runs.\n\nUse mid-range devices to identify potential performance issues\n--------------------------------------------------------------\n\nTest performance on each device type you care about. High-end devices with fast\ncomponents can hide performance problems on earlier, slower, or low RAM devices.\nLower-end devices can take longer to load data or run code, making it easier to\nidentify bottlenecks. Optimizing performance for low-end devices usually also\nbenefits optimization for high-end devices.\n\nReduce noise\n------------\n\n- Network: test your apps or processes with strong and stable internet Wi-Fi speeds. If the app startup time includes a network request, note this as a place where variability might occur.\n- RAM usage: don't have any other apps running in the background of your device while testing app startup performance.\n- Battery: ensure your device is charged to avoid any hardware-specific low power performance throttling.\n\nTest on release builds\n----------------------\n\nUse release builds to test performance. Debug builds are [unsuitable for\nperformance\ndebugging](/studio/profile/measuring-performance#apk-considerations), as they\ndon't provide compilation optimization and significantly impact performance.\n\nHowever, it's okay to use an unobfuscated release build to identify classes and\noperation names. Specifically, we recommend enabling [minify\n(R8)](/studio/build/shrink-code) and disabling obfuscation, with\n[`-dontobfuscate`](/studio/build/shrink-code#obfuscate) in the proguard file.\nIt's easier to identify layouts, assets, and resources if the build is\nunobfuscated.\n\nMake sure you include the\n[profileable](/guide/topics/manifest/profileable-element) flag in the manifest\nso that your custom events are visible in non-debuggable builds. This flag is\navailable on Android 10 (API level 29) and later.\n\nAdd custom traces to your app operations\n----------------------------------------\n\nAdd [custom traces](/topic/performance/tracing/custom-events) within your app to\nmake it easier to identify what operations are performed by your app compared to\nother libraries. This helps give you more context about what the app is doing at\nall times."]]