注意:Malloc Debug只支持6.0及以下版本
一.DDMS配置
1.1 下载低版本的tools
高版本DDMS整合进monitor里了,貌似没有Native Heap选项
Linux:dl-ssl.google.com/android/rep…
Windows:dl-ssl.google.com/android/rep…
Mac:dl-ssl.google.com/android/rep…
下载以后替换android-sdk的tool目录
2.ddms配置
打开~\.android\ddms.cfg文件(如果文件不存在,先打开一次ddms就会生成),添加native=true。打开ddms就能看到右边有Native Heap选项了
2.修改libc.debug.malloc属性
这个操作需要root权限,libc.debug.malloc存在default.prop文件里,每次开机的时候default.prop文件都会从boot.img里解压出来。所以直接修改default.prop文件没用,重启之后值还是会还原,要彻底修改只能重刷boot.img,某些手机有变砖风险,不建议使用。这里介绍另外一种方法,软重启:
# 模拟器
adb root
adb shell
setprop libc.debug.malloc 1
stop;start
# 真机
adb shell
su
setprop libc.debug.malloc 1
stop;start
运行上面三行代码就可以了。start命令会让zygote进程和所有系统服务重启,执行init.rc脚本。ps:某些真机上setprop可能不成功,推荐用magisk
adb shell
su
magisk resetprop libc.debug.malloc 1
stop;start
3.查看native内存占用
打开ddms->点击左侧要分析的进程->Native Heap->Snapshot Current Native Heap Usage
效果如下:
