上层为安卓, 下层为调用c/c++ 库
1、将vargind 按官网方法下载源码编译 得Inst目录
2、通过win 下安卓sdk 中 platform-tools 中的adb push Inst 到/data/local 下
3、可把adb.exe所在目录 设置到系统环境变量中
4、在cmd 中把执行adb push Inst /data/local/
5、adb shell 进入安卓手机环境
5、chmod -r 777 目录, 更改相应目录权限
chown -R root.root *
编写脚本
var.sh:
#!/system/bin/sh
VGPARAMS=‘--error-limit=no --leak-check=full --track-origins=yes --log-socket=192.168.1.153:12345 ‘
export TMPDIR=/data/data/org.bl
exec /data/local/Inst/bin/valgrind $VGPARAMS $*
保存:
其中192.168.1.153:12345 为接收将vargrind 日志重定向的IP 地址和端口,(所以可以自己写个监听程序监听vargrind 的输出, 可将输出打印或者写文件)
/data/data/org.bl 为手机上java 包的路径
/data/local/Inst/bin/valgrind 为手机上vargrind 路径
将var.sh 通过adb push 到 /data/local/tmp/
chmod 777 var.sh
setprop wrap.org.bl "logwrapper
/data/local/val.sh"
am start -a android.intent.action.MAIN -n org.bl/org.bl.ApjsuaActivity
(org.bl java 包名, ApjsuaActivity java包的类名)
ps 查看valgrind 程序是否启动, 若启动, 则等待3~5分钟之后界面才出现, 出现之后操作观看vargrind 输出的日志信息