返回顶部
首页 > 资讯 > 移动开发 >Android Studio使用Profiler来完成内存泄漏的定位
  • 488
分享到

Android Studio使用Profiler来完成内存泄漏的定位

2024-04-02 19:04:59 488人浏览 泡泡鱼
摘要

目录目标 引用 步骤 模拟内存泄漏 使用Profiler 来完成定位 目标 使用Android Studio 4.1来完成内存泄漏的定位 目前网上大多数的文章都是在介绍Profil

目标

使用Android Studio 4.1来完成内存泄漏的定位 目前网上大多数的文章都是在介绍Profile的使用,可以帮忙你检查出有内存泄漏,谁的内存泄漏.但是根据文章定位谁引起的这个泄漏,一直没有找到方法,通过几次努力,自己找到了比较容易的路径,希望对其他的朋友有帮助

引用

下面文章内使用的Demo在下面的地址 GitHubDemo 在页面内点击简单例子-> 内存泄漏-> 接着退回到上一个页面完成泄漏模拟

步骤

  • 自己模拟一个内存泄漏
  • 使用Profiler来完成内存泄漏的位置定位

模拟内存泄漏

在TestActivity类中定义context的静态变量,onCreate时把这个变量赋值为当前Activity的context.在回退到上一个页面时,因为静态变量的持有,导致这个TestActivity无法释放,产生内存泄漏

使用Profiler 来完成定位

首先完成Dump收集

首先我们吊起TestActivity,然后回退到上一个页面,此时内存中应该没有TestActivity,如果有,那么就说明出现了内存泄漏.然后根据下图来完成一次dump收集

点击3时进入下图

首先先点击1来完成GC内存回收 2选择产生dump文件

Profiler根据dump文件来分析内存泄漏,跳转到下图.

1.表示有几个内存泄漏

2.查看当前的内存泄漏对象,我们可以先关注自己的工程的内存泄漏.

3.是对象实例,可能这个对象有多个泄漏对象

4.代表引用

5.点击5以后,6就可以很容易定位到是什么变量导致的这个对象的内存泄漏.

从下图就可以很容易看到是因为我们定位的静态变量引用导致的问题.

以上就是Android Studio使用Profiler来完成内存泄漏的定位的详细内容,更多关于Android Studio用Profiler定位内存泄漏的资料请关注编程网其它相关文章!

--结束END--

本文标题: Android Studio使用Profiler来完成内存泄漏的定位

本文链接: https://lsjlt.com/news/122201.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作