¿Cómo detectar fugas de memoria en el código JNI de Android? Estoy usando FroyoDetección de fugas de memoria nativas en el código JNI de Android
Respuesta
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.
Lo hice, pero no podemos confirmar que es una pérdida de memoria, solo muestra las asignaciones de memoria. – Vinay
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
Defina "versiones recientes". – tomwhipple
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.
Esta respuesta no proporciona ningún valor. – pkanev
He usado en JB, JB +, KITKAT y lollipop también. Su muy buena herramienta en Android para encontrar las fugas.
quizás puedas compartir URL, gracias –
- 1. Detección de fugas de memoria en nodejs
- 2. Visual C++ - Detección de fugas de memoria
- 3. Detección de fugas de memoria en el proyecto ActionScript-3
- 4. automatizado de detección de fugas de memoria en Java
- 5. Biblioteca de detección automática de fugas de memoria C++
- 6. G ++ herramienta de detección de fugas de memoria multiplataforma
- 7. Perfiles de uso de memoria Perl y detección de fugas?
- 8. La detección de la memoria de fugas mediante programación
- 9. Android: campos estáticos y fugas de memoria
- 10. Comprobación de fugas de memoria en aplicaciones de Android
- 11. Fugas de memoria detectadas
- 12. Fugas de memoria WPF
- 13. Evitar fugas de memoria en el dojo?
- 14. Fugas de memoria en .NET
- 15. Herramienta para detectar fugas de memoria
- 16. Fugas de memoria de CDialog en VC10
- 17. Fugas de memoria de Python
- 18. Rastreando las fugas de memoria/ventanas en Android?
- 19. Fugas de memoria usando socket.io
- 20. Herramientas de detección de fuga de memoria
- 21. herramienta para verificar fugas de memoria en android
- 22. ¿Cómo probar las fugas de memoria?
- 23. Detección de fugas de memoria, VisualVM: "No se encontró raíz de GC". ¿Que sigue?
- 24. ¿Cómo evitar fugas de memoria?
- 25. ¿Detecta fugas de memoria en programas C?
- 26. memoria riesgo de fugas en JavaScript cierres
- 27. C# Fugas de memoria basadas en eventos
- 28. Enfrentando fugas de memoria en el método de cifrado AES
- 29. Android: referencias a un contexto y fugas de memoria
- 30. Fugas de memoria de prueba unitaria
posible Duplicado: http://stackoverflow.com/questions/2851483/tracing-the-memory-window-leaks-in-android – Praveen
Estoy buscando fugas de memoria de código nativo – Vinay