2010-09-22 12 views

Respuesta

12

2017 actualización:valgrind is available para Android. La función de depuración de malloc incorporada se amplió significativamente en Android N, y es bastante útil para encontrar fugas de memoria. Es posible que necesite _exit() la aplicación para activar el volcado.

La función DDMS que se describe a continuación recibe actualmente un brief mention en los documentos oficiales.


Existe una función experimental no admitida que usted puede ser capaz de aprovechar.

En su archivo de configuración DDMS (por ejemplo, ~/.android/ddms.cfg en Linux), agregue "native = true". Esto habilita la pestaña Montón nativo.

A continuación, habilitar el seguimiento de asignación del montón nativo en el dispositivo y reinicie el marco de aplicación:

% adb shell setprop libc.debug.malloc 1 
% adb shell stop 
% adb shell start 

(Nota esto requiere raíz Tenga en cuenta también que esto sólo se aplica a las versiones recientes, en versiones anteriores también se necesita. reemplazar manualmente libc.so con libc_debug.so en/system/lib en el dispositivo.)

Puede ver si tiene el dispositivo configurado correctamente al ver la salida del logcat mientras emite un comando simple ("adb shell ls "). Si ve:

I/libc (4847): ls using MALLOC_DEBUG = 1 (leak checker) 

y sabe que lo ha habilitado.

Ahora puede usar las características de la ficha Heap nativo para tomar instantáneas del uso de la memoria del montón.

DDMS extraerá automáticamente símbolos de las .../symbols/system/lib bibliotecas compartidas en su árbol de fuentes de Android. Por supuesto, esto requiere que tenga un árbol de código fuente de Android completo, y su dispositivo esté ejecutando código creado a partir de él. De lo contrario, las trazas de la pila no se pueden descodificar a nombres de símbolos, lo que reduce la utilidad de la característica.

+0

Lo hice, pero no podemos confirmar que es una pérdida de memoria, solo muestra las asignaciones de memoria. – Vinay

+0

Derecha. Necesita ver las asignaciones a lo largo del tiempo. Si están creciendo continuamente, averigua dónde se encuentra el crecimiento del trazado de la pila, y rastrea desde allí. Aún no hay valgrind para Android. – fadden

+2

Defina "versiones recientes". – tomwhipple

0

U necesita tomar la instantánea antes y después de ejecutar la prueba. Luego presione el botón +/- y luego se mostrará la ubicación de la memoria retenida.

+0

Esta respuesta no proporciona ningún valor. – pkanev

0

He usado en JB, JB +, KITKAT y lollipop también. Su muy buena herramienta en Android para encontrar las fugas.

+0

quizás puedas compartir URL, gracias –

Cuestiones relacionadas