有时候我们需要关注应用本身分配了多少内存,分配内存最多的是哪个类或者方法。
这时我们需要用到Allocation Tracker这个工具。
来看一个简单的例子 我们创建了一个MyLayout
public class TestActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new MyLayout(this));
}
class MyLayout extends LinearLayout {
public MyLayout(Context context) {
super(context);
}
}
}
怎么打开 Allocation Tracker?
Allocation Tracker 在Android Device Monitor TAB栏有个按钮 Allocation Tracker,选中你要监听的应用包名。
点击Start Tracking就可以开启,再次点击(Stop Tracking)就可以停止。
点击Get Allocations来更新列表。
监听测试程序
选中我们要监听的应用包名 com.laomou.example,开启监听。
Filter输入框可以输入我们想要过滤的内容,比如关注的包名,类名。
Allocation Tracker 视图
Allocation Tracker 视图我们知道了提供了Alloc Order、Allocation Size(分配大小)、Allocated Class(分配的类)、Thread Id(线程ID)、Allocated in(在哪个类分配)、Allocated in(在哪个方法分配)。
注意:
可以通过点击Allocation Size(分配大小) 来排序分配的内存大小。
点击行可以查看详细的堆栈信息。
如果Allocated Class/in重复数量过多,请优化内存分配。