为 Android 开发了一个 native 程序,使用 C 语言。测试时观察内存占用,发现有内存泄漏。之前在 Linux 下使用过 valgrind ,于是想针对 Android 平台编译一个 Valgrind 版本,用来检测我的 native 程序。
我的开发环境是 Windows 7,决定使用 Cygwin 来编译。
Cygwin 的具体安装不多说了,注意的是,一些开发工具必须选择,比如 gcc 、 autoconf 、 automake 等等。
Valgrind 最新的 release 版本是 3.9.0 ,官网下载。下载后解压,阅读源码根目录下的 README.android 文件,先有个初步了解。
使用 Cygwin 来编译 Valgrind 和在 Linux 环境下编译还是有一些差别。我已经编译通过并正常使用。首先进入 Cygwin 的 shell ,然后,下面是详细的步骤。
(一)设置 NDK 路径
命令很简单,export NDKROOT=E:/android-ndk-r8d (替换为你开发主机上的实际路径)。
需要注意的是,这里的 NDKROOT 不能用 Cygwin 挂载的路径 /cygdrive/e/xxx 这种形式ÿ