Posts Tagged ‘ jvisualvm ’

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