有时候我们需要关注应用本身分配了多少内存,分配内存最多的是哪个类或者方法。
这时我们需要用到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重复数量过多,请优化内存分配。