在下Mac平台。
最近开发中发现AndroidStudio的profile工具越来越不好用,项目内存占用稍微大一点,一开profile就会导致应用crash。所以打算开历史倒车用MAT来看内存快照。但是每次要输一堆的adb shell指令感觉很烦,所以写了个脚本这里共享出来:
#! /bin/bash
PACKAGE=包名
#获取app的pid
PID=$(adb shell pidof $PACKAGE)
#定义各种路径
dd=`date +"%Y%m%d%H%M%S"`
hprofName="$dd.hprof"
tmpPath="/data/local/tmp/$hprofName"
dstDir=hprof文件在Mac上的目的地存储目录
mkdir $dstDir
tmpDstPath="$dstDir/tmp$hprofName"
dstPath="$dstDir/mat$hprofName"
#heap dump
adb shell am dumpheap $PID $tmpPath
#拉取到电脑
adb pull $tmpPath $tmpDstPath
#转换格式
hprof-conv $tmpDstPath $dstPath
#删除Mac上的原始hprof文件
rm $tmpDstPath
#通过Finder定位到hprof
open $dstDir
如上,很简单的一段脚本,保存为.Command文件然后双击执行,如果权限不够可能要通过chmod给权限。
我觉得对于程序员来说,技术是第一生产力的话,工具就是第二生产力,所以如果谁有更便捷的方法或工具欢迎推荐。