Visualizar hprof de Android en jvisualvm

Para analizar la memoria de la máquina virtual de java de nos encontramos con el problema de extraer acceder directamente a la máquina virtual del dispositivo que estamos utilizando para las pruebas.

Para poder realizar el análisis primero se debe obtener el fichero de memoria. Para ello seguimos los pasos descritos en el blog de Peter Karich.

  1. Añadir permiso adicional a la app para escribir en una memoria externa en el manifest.
    <uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE” />
  2. En el activity crear el hprof al destruir la clase añadiendo el método onDestroy.
    protected void onDestroy() {
    super.onDestroy();
    try {
    Debug.dumpHprofData(“/sdcard/data.hprof”);
    } catch (Exception e) {
    Log.e(“xy”, “No se ha podido crear el hprof”);
    }
    }

El segundo paso consiste en copiar el fichero generado data.hprof en el PC, y transformarlo para su lectura.

hprofconv [-z] <infile> <outfile>

Finalmente se utiliza alguna herramienta como jvisualvm que se incluye el jdk para abrir el fichero convertido.

Anuncios
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: