欢迎来到代码驿站!

Android代码

当前位置:首页 > 移动开发 > Android代码

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

时间:2021-12-27 11:17:00|栏目:Android代码|点击:

目标

使用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编程中Tween动画和Frame动画实例分析

栏    目:Android代码

下一篇:Android实现闹钟小程序

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

本文地址:http://www.codeinn.net/misctech/188237.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有