Android进阶——性能优化——内存泄漏检测——eclipse使用 leakcanary AS使用leakcanary
来源:互联网 发布:java 调用kettle job 编辑:程序博客网 时间:2024/04/29 07:38
Leakcanary简介
我们经常被OOM所困扰,引起OOM往往都是内存泄漏长期没有解决造成的,如果在对象的生命周期本该结束的时候,这个对象还被一系列的引用,这就会导致内存泄漏,随着泄漏的累积,app将消耗完内存,直到OOM,LeakCanary 是一个开源的在debug版本中检测内存泄漏的java库。下面介绍其使用方法:
在eclipse中使用
1.下载为eclipse优化的Leakcanary,下载链接 http://download.csdn.net/detail/wo_ha/9755042;
2. 将项目导入eclipse中;
3. 将Leakcanary作为自己项目的依赖库(右键单击自己的项目—–>Properties—–>Android—–>在Libary选择Add—–>选择导入的Leakcanary项目—–>Apply—–>OK),若出现V4包报错,请选择其中一个项目的V4包去替换另一个项目的V4包,参考http://blog.csdn.net/jackrex/article/details/8984033;
4. 在自己项目的AndroidManifest中添加权限和相关的Activity、Service;
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <activity android:name="com.squareup.leakcanary.internal.DisplayLeakActivity" android:enabled="false" android:icon="@drawable/__leak_canary_icon" android:label="@string/__leak_canary_display_activity_label" android:taskAffinity="com.squareup.leakcanary" android:theme="@style/__LeakCanary.Base" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name="com.squareup.leakcanary.internal.HeapAnalyzerService" android:enabled="false" android:process=":leakcanary" /> <service android:name="com.squareup.leakcanary.DisplayLeakService" android:enabled="false" />
5.自定义一个 Application;
public class ExampleApplication extends Application { public static RefWatcher getRefWatcher(Context context) { ExampleApplication application = (ExampleApplication) context.getApplicationContext(); return application.refWatcher; } private RefWatcher refWatcher; @Override public void onCreate() { super.onCreate(); refWatcher = LeakCanary.install(this); }}别忘在AndroidManifest的Application节点添加name哦
6.在需要观察的Activity的Destory方法添加如下代码;
@Override protected void onDestroy() { super.onDestroy(); RefWatcher refWatcher = ExampleApplication.getRefWatcher(this); refWatcher.watch(this); }
好啦,把Leakcanary集成到我们的eclipse项目中就完成了,如果有内存泄漏如下图,本讲解例子的源码:http://download.csdn.net/detail/wo_ha/9755057
在Android Studio中使用
这可比在eclipse中使用简单多了,只需要在需要的Mode的gradle中添加如下代码在同步下就可以了,使用的方法都是一样的,我就不贴代码了
dependencies { ....... 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'}
1 0
- Android进阶——性能优化——内存泄漏检测——eclipse使用 leakcanary AS使用leakcanary
- 检测内存泄漏——LeakCanary的使用
- Android实战——LeakCanary检测内存泄漏
- 内存泄漏检测工具—LeakCanary的配置和使用
- 检测内存泄漏的常见工具——LeakCanary
- 使用LeakCanary检测内存泄漏
- Android开源框架——内存泄漏检测工具 LeakCanary
- Android内存泄漏检查利器——LeakCanary
- Android 内存泄漏分析利器——leakcanary
- Android 在Coding中防止内存泄漏——LeakCanary
- Android工具:LeakCanary—内存泄露检测神器
- 安卓学习笔记--内存泄漏检测工具—LeakCanary的配置和使用
- 使用LeakCanary源代码检测内存泄漏
- LeakCanary (Android 检测内存泄漏工具的使用)
- 使用LeakCanary检测Android项目是否存在内存泄漏
- Android 使用LeakCanary检测安卓中的内存泄漏
- leakcanary——Android 内存泄露检测工具
- Android内存泄漏检测-LeakCanary
- CI3初识-程序分析器
- AndroidStudio使用gitLab进行版本库的管理
- 字符集
- 界面贴图及WM_NCHITTEST消息的使用
- Cornerstone在Mac系统10.12上崩溃的问题
- Android进阶——性能优化——内存泄漏检测——eclipse使用 leakcanary AS使用leakcanary
- ubuntu14.04 安装gitlab
- leetcode_middle_46_309. Best Time to Buy and Sell Stock with Cooldown
- Incorrect string value: '\xE7\x94\x98\xE5\xB7\x9E...' for column 'SystemName' at row 1
- Centos 7 快速安装 Docker
- 简单配置nginx使之支持pathinfo
- Error:java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException:
- 二,iOS部分获取设备信息的方法
- Oracle中使用SQL语句拼接DAL层模型中的字段