文档章节

android优化----内存泄漏分析

HzhiBo
 HzhiBo
发布于 2017/07/05 15:07
字数 339
阅读 159
收藏 1

在开发到后期,更多的去维护App的性能和体验。比如app长时间使用带来的卡顿,闪退等原因。今天记录下我刚学习的内存泄漏分析。

内存泄漏:

通俗易懂的来说:就是java虚拟机在回收垃圾,无法回收该垃圾(无用对象)。无论多少内存,迟早会被占光。 在android中常见的就是 生命周期长的对象引用生命周期短的对象。

    常见的静态对象持有Activity

public class SpeechUtils {
    private Context context;

    private static final String TAG="speechUtils";

    private TextToSpeech textToSpeech;
    public static SpeechUtils getInstance(Context context){
        return new SpeechUtils(context);
    }
}

//Activity 实例化SpeechUtils
public class SpeechActivity extends AppCompatActivity implements TextToSpeechBeta.OnInitListener {
    @BindView(R.id.textView)
    EditText textView;
    @BindView(R.id.button2)
    Button button2;
    private SpeechUtils speechUtils;
    private int CODE = 0x01;
    private TextToSpeechBeta mTts;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_speech);
        ButterKnife.bind(this);
        speechUtils =SpeechUtils.getInstance(this);
    }
}

分析流程:

采用AS的Monitor工具:

运行APP,针对某一功能重复使用后,点击GC 接着抓取JAVA Heap.

这里写图片描述

然后生成hprof文件,点击右边的Analyzer Tasks 进行分析

点击Leaked Activityes, 可以看到SppechActivity无法回收,展开列表,发现是有一个TextToSpeech占用。

分析问题代码位置:

 

 

© 著作权归作者所有

共有 人打赏支持
HzhiBo
粉丝 8
博文 27
码字总数 21222
作品 0
泉州
Android工程师
Android应用内存泄漏的定位、分析与解决策略

Hello,大家好,我是Clock。翻了一下简书,发现有一个多月没有更新博客,本来今天打算和妹纸去电影院看《你的名字》,然后再去到处浪的。 结果因为妹纸公司临时有事,她不得不回公司一趟......

D_clock爱吃葱花
06/29
0
0
Android内存优化(六)LeakCanary使用详解

相关文章 Android性能优化系列 Java虚拟机系列 1.概述 如果使用MAT来分析内存问题,会有一些难度,并且效率也不是很高,对于一个内存泄漏问题,可能要进行多次排查和对比。 为了能够简单迅速...

刘望舒
2017/09/10
0
0
【android测试】值得学习的android测试知识连接

Android应用程序的debug属性: http://blog.csdn.net/hudashi/article/details/8698142 彻底解决Android 应用方法数不能超过65535的问题 http://blog.csdn.net/yuanzeyao/article/details/418......

beijing_zbs
2014/12/02
0
0
一步步拆解 LeakCanary

本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 java 源码系列 - 带你读懂 Reference 和 ReferenceQueue https://blog.csdn.net/gdutxiaoxu/article/details/80738581 一步步拆解 ...

xujun9411
07/04
0
0
Android--面试中遇到的问题总结(三)

《Android 开发工程师面试指南 LearningNotes 》,作者是陶程,由梁观全贡献部分。大家可以去知乎关注这两位用心的少年。这份指南包含了大部分Android开发的基础、进阶知识,不仅可以帮助准备...

sealin
2017/02/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

一个可能的NEO链上安全随机数解决方案

0x00 困境 链上安全随机数生成应该算是一个比较蛋疼的问题,哪怕你的系统再牛逼,合约程序困在小小的虚拟机里,哪怕天大的本事也施展不开。 更悲催的是,交易执行的时候,是在每一个节点都执...

暖冰
今天
1
0
【大福利】极客时间专栏返现二维码大汇总

我已经购买了如下专栏,大家通过我的二维码你可以获得一定额度的返现! 然后,再给大家来个福利,只要你通过我的二维码购买,并且关注了【飞鱼说编程】公众号,可以加我微信或者私聊我,我再...

飞鱼说编程
今天
1
0
Spring5对比Spring3.2源码之容器的基本实现

最近看了《Spring源码深度解析》,该书是基于Spring3.2版本的,其中关于第二章容器的基本实现部分,目前spring5的实现方式已有较大改变。 Spring3.2的实现: public void testSimpleLoad(){...

Ilike_Java
今天
1
0
【王阳明心学语录】-001

1.“破山中贼易,破心中贼难。” 2.“夫万事万物之理不外于吾心。” 3.“心即理也。”“心外无理,心外无物,心外无事。” 4.“人心之得其正者即道心;道心之失其正者即人心。” 5.“无...

卯金刀GG
今天
2
0
OSChina 周三乱弹 —— 我们无法成为野兽

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ _刚刚好: 霸王洗发水这波很骚 手机党少年们想听歌,请使劲儿戳(这里) hahahahahahh @嘻酱:居然忘了喝水。 让你喝可乐的话, 你准忘不了...

小小编辑
今天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部