Каков наилучший способ обнаружения утечек памяти в собственном коде, построенном с помощью Android NDK?
Есть ли какой-нибудь инструмент, такой как valgrind, который я мог бы использовать?
Вы загружаете библиотеку * .so с помощью System.loadLibrary, чем вызываете любые функции jni. Таким образом, вы можете определить функции «запуска» и «очистки» - вы можете выполнить инициализацию в первом func и освободить все ресурсы во втором. В этом случае можно использовать любой из большого количества доступных средств отслеживания утечек - например, вы можете увидеть следующее:
System.loadLibrary
http://dmalloc.com/
http://www.andreasen.org/LeakTracer/
http://memwatch.sourceforge.net/
http://mpatrol.sourceforge.net/
О Валгринде: https://stackoverflow.com/a/7815977/814297