android 内存检测框架,Android项目内存泄漏检测

 2023-09-18 阅读 15 评论 0

摘要:关于Android项目的内存泄漏是一个老生常谈的问题,之前一直是在写代码时各种注意,比如IO流要及时关闭,引用的curcor要及时关闭等,这样做确实能规避一部分的内存泄漏,不过还是会有漏网之鱼,因此除了养成良好的编程习惯之外,还

关于Android项目的内存泄漏是一个老生常谈的问题,之前一直是在写代码时各种注意,比如IO流要及时关闭,引用的curcor要及时关闭等,这样做确实能规避一部分的内存泄漏,不过还是会有漏网之鱼,因此除了养成良好的编程习惯之外,还需要引用各种框架来主动检测,对于框架,本人习惯使用leakcanary。需要注意的一点是,leakcanary可以检测Activity和fragment中的内存泄漏,网上有些文章中并没有写全而是只写了Activity的。下面是本人总结的引用leakcanary的步骤:

1:在项目的build.gradle中加入依赖:

debugCompile'com.squareup.leakcanary:leakcanary-android:1.5+'

releaseCompile'com.squareup.leakcanary:leakcanary-android-no-op:1.5+'

分布式计算存储框架。testCompile'com.squareup.leakcanary:leakcanary-android-no-op:1.5+'

debugCompile'com.squareup.haha:haha:2.0.3'

debugCompile跟releaseCompile 引入的是不同的包,这样在在 debug 版本上,集成 LeakCanary 执行内存泄漏监测,而在 release 版本上,集成一个无操作的 wrapper ,对程序性能不会有影响

需要依赖:debugCompile'com.squareup.haha:haha:2.0.3',然后另外三个的依赖的版本号要写1.5+,从而获取最新的版本,否则可能会报异常

2:在项目的application类的onCreate()方法中设置LeakCanary,下面是application类代码:

hadoop内存框架是,public class MyAppextends Application {

public static MyApp instance;

private RefWatcher refWatcher;

@Override

public void onCreate() {

分布式内存缓存应用?super.onCreate();

instance =this;

refWatcher = setLeakCanary();

}

private RefWatcher setLeakCanary()

android 内存泄漏分析。{

//初始化leakCanary,用来检测内存泄漏

if (LeakCanary.isInAnalyzerProcess(this)) {

return RefWatcher.DISABLED;

}

android内存泄漏、return LeakCanary.install(this);

}

public RefWatcher getRefWatcher() {

if (refWatcher !=null)

{

分布式内存框架?return refWatcher;

}else {

return null;

}

}

android内存泄露的根本原因?//单例模式中获取唯一的MyApp实例

public static MyApp getInstance() {

if (null ==instance) {

instance =new MyApp();

}

android内存溢出?return instance;

}

}

3:在application类中设置完成后,就可以检测activity的内存泄漏了,想要检测fragment的内存泄漏,需要在fragment的onDestroy()方法中加入以下代码:

//用来检测Fragment中的内存泄漏

内存计算框架。RefWatcher refWatcher = MyApp.getInstance().getRefWatcher();

if (refWatcher !=null)

{

refWatcher.watch(this);

}

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/76840.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息