Android代码分析工具-Allocation Tracker

本文介绍了如何使用Android的AllocationTracker工具来监控应用程序中的内存分配情况。通过具体示例展示了如何启动跟踪、获取分配信息及如何解读这些信息,帮助开发者发现潜在的内存问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有时候我们需要关注应用本身分配了多少内存,分配内存最多的是哪个类或者方法。

这时我们需要用到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重复数量过多,请优化内存分配。

转载于:https://my.oschina.net/oldmou/blog/684165

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值