Skip to content

Most visited

Recently visited

navigation

Genera registros de seguimiento mediante la instrumentación de tu app

Para generar un seguimiento de métodos de la ejecución de tu app, puedes instrumentarla usando la clase Debug . Al instrumentar tu app de esta manera, tienes más control sobre el momento exacto en el cual el dispositivo inicia y finaliza el registro de la información de seguimiento. El dispositivo también guarda tus registros de seguimiento con los nombres que especifiques, por lo que podrás identificar fácilmente cada registro más adelante. Luego puedes ver cada registro de seguimiento usando Android Studio o Traceview.

Otra forma de hacer el seguimiento de tu app, sin necesidad de instrumentar el código de esta, es iniciar y detener el seguimiento de métodos usando CPU Profiler de Android Studio. Para obtener más información, consulta Inspeccionar la actividad de la CPU y los seguimientos de métodos con CPU Profiler.

Antes de comenzar a generar registros de seguimiento, asegúrate de que tu app tenga permisos de escritura en medios de almacenamiento externo (WRITE_EXTERNAL_STORAGE) para que pueda guardar los registros de seguimiento en el dispositivo.

Instrumenta tu app

Para crear registros de seguimiento, llama a startMethodTracing() donde desees que el sistema comience a registrar datos de seguimiento.

En la llamada, puedes especificar el nombre para el archivo .trace; el sistema lo guardará en un directorio específico del paquete destinado a datos persistentes de la app en el dispositivo de destino. Este es el mismo directorio que muestra getExternalFilesDir() y se encuentra en el directorio ~/sdcard/ en la mayoría de los dispositivos. Este archivo contiene los datos binarios del seguimiento de métodos y una tabla de asignación con nombres de métodos y subprocesos. Para detener el seguimiento, llama a stopMethodTracing().

En el siguiente ejemplo, se inicia y detiene la grabación del registro de seguimiento con el nombre sample.trace:

// Starts recording a trace log with the name you provide. For example, the
// following code tells the system to start recording a .trace file to the
// device with the name "sample.trace".
Debug.startMethodTracing("sample");
...
// The system begins buffering the generated trace data, until your
// application calls stopMethodTracing(), at which time it writes
// the buffered data to the output file.
Debug.stopMethodTracing();

Ten en cuenta que si tu app llama a startMethodTracing() nuevamente sin cambiar el nombre del registro de seguimiento, reemplaza el registro existente guardado en el dispositivo. Si deseas aprender a cambiar de forma dinámica el nombre de cada registro de seguimiento, visita la sección sobre cómo guardar varios registros.

Si el sistema alcanza el tamaño de búfer máximo antes de que llames a stopMethodTracing(), detiene el seguimiento y envía una notificación a la consola. Los métodos que inician y detienen los seguimientos funcionan durante todo el proceso de tu app. Es decir, puedes llamar a startMethodTracing() en el método onCreate(Bundle) de tu actividad y a stopMethodTracing() en el método onDestroy() de esa actividad.

Ten en cuenta que tu app se ejecuta con mayor lentitud cuando la generación de perfiles se encuentra activada. Es decir, no debes usar los datos de generación de perfiles para determinar sincronizaciones absolutas (por ejemplo, “el método foo() tarda 2,5 segundos en ejecutarse”). La información de sincronización de los registros de seguimiento es útil solo cuando se compara con datos de registros de seguimiento anteriores; esto te permite ver si los cambios recientes hacen a tu app más rápida o lenta.

Al realizar implementaciones en dispositivos con Android 5.0 (nivel de API 21) o versiones posteriores, puedes usar generación de perfiles basada en muestras para generar perfiles con menor impacto en el rendimiento durante el tiempo de ejecución. Para habilitar la generación de perfiles basada en muestras, llama a startMethodTracingSampling() (en vez de llamar a startMethodTracing()) con un intervalo de muestreo especificado. El sistema reúne ejemplos de forma periódica hasta que tu app llama a stopMethodTracing().

Guarda varios registros

Si tu app inicia y detiene un seguimiento de métodos varias veces sin especificar un nuevo nombre para el registro de seguimiento, el dispositivo reemplaza el registro de seguimiento más antiguo por el nuevo; es decir, solo conserva el más reciente. Para guardar varios registros de seguimiento en tu dispositivo, cambia el nombre de los registros de seguimiento de forma dinámica cada vez que tu app llame a startMethodTracing(). En el siguiente ejemplo se usa la clase SimpleDateFormat para incluir la fecha y hora actuales al nombrar a cada registro de seguimiento:

// Uses the SimpleDateFormat class to create a String with
// the current date and time.
SimpleDateFormat date =
        new SimpleDateFormat("dd_MM_yyyy_hh_mm_ss");
String logDate = date.format(new Date());
// Applies the date and time to the name of the trace log.
Debug.startMethodTracing(
        "sample-" + logDate);

Accede a los registros de seguimiento en el dispositivo

Luego de que el sistema cree un registro de seguimiento en tu dispositivo, podrás acceder al archivo de una de las siguientes maneras:

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Seguir a Google Developers en WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience. (Dec 2017 Android Platform & Tools Survey)