LeakCanary:简单粗暴的内存泄漏检测工具
2015-10-14 11:15
183 查看
几乎每个程序员在开发的过程中都会遇到内存泄漏,那么我们如何检测到app是否哪里出现内存泄漏呢?square公司推出了一款简单粗暴的检测内存泄漏的工具-- LeakCanary
什么是内存泄漏?
内存泄漏是指由于疏忽或者错误造成程序未能释放已经不再使用的内存,内存泄漏不是指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误失去了对于这段内存的控制,因而造成内存的浪费。
内存泄漏和内存溢出是两码事,不要混淆,内存溢出通俗的讲就是内存不够用,现在的只能手机内存越来越大,内存溢出的情况不是很多,但是内存泄露情况比较严重,LeakCanary的到来对我们来说是一个简单粗暴,直观的好工具.
上面这个图片就是这个工具的图标了,当你的程序处于debug模式的时候,就能看到他了,当然release没有
LeakCanary作为一个简单粗暴的工具,用法也相当简单
在build.gradle中引入LeakCanary
[java] view plaincopy
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3'
一个是debug包,一个是release包的,从引入包的结构也能看出端倪
由于LeakCanary是测试整个app的内存泄露情况,所以你需要在你的application中启动它
[java] view plaincopy
package com.zimo.guo;
import android.app.Application;
import com.squareup.leakcanary.LeakCanary;
/**
* Created by zimo on 15/8/7.
*/
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
LeakCanary.install(this);
}
}
ok,现在就可以测试程序中的内存泄露情况,直观明了
这么有逼格的工具,赶紧来试试吧,要想使你的app的内存泄露灰飞烟灭,try it
什么是内存泄漏?
内存泄漏是指由于疏忽或者错误造成程序未能释放已经不再使用的内存,内存泄漏不是指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误失去了对于这段内存的控制,因而造成内存的浪费。
内存泄漏和内存溢出是两码事,不要混淆,内存溢出通俗的讲就是内存不够用,现在的只能手机内存越来越大,内存溢出的情况不是很多,但是内存泄露情况比较严重,LeakCanary的到来对我们来说是一个简单粗暴,直观的好工具.
上面这个图片就是这个工具的图标了,当你的程序处于debug模式的时候,就能看到他了,当然release没有
LeakCanary作为一个简单粗暴的工具,用法也相当简单
在build.gradle中引入LeakCanary
[java] view plaincopy
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3'
一个是debug包,一个是release包的,从引入包的结构也能看出端倪
由于LeakCanary是测试整个app的内存泄露情况,所以你需要在你的application中启动它
[java] view plaincopy
package com.zimo.guo;
import android.app.Application;
import com.squareup.leakcanary.LeakCanary;
/**
* Created by zimo on 15/8/7.
*/
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
LeakCanary.install(this);
}
}
ok,现在就可以测试程序中的内存泄露情况,直观明了
这么有逼格的工具,赶紧来试试吧,要想使你的app的内存泄露灰飞烟灭,try it
相关文章推荐
- 转-用Eclipse 开发Dynamic Web Project应用程序
- Java编程机试:获取某一字符串中(只要字母),每一个字母出现的次数输出格式为a(x)b(y)c(z).....m(n)
- PHP图像处理--不超过给定大小的等比例的缩放
- 需要解决的问题ionic nvbar 和 view的分离
- 【leetcode】73. Set Matrix Zeroes
- Linux入门(一):50个最常用的指令
- 事件总结
- Android实现跑马灯效果的方法
- iOS中读取照片库
- outline轮廓线在不同CSS样式下的表现
- js追加元素,以及元素位置
- Linux 下网络性能优化方法简析
- Web性能优化系列
- jmeter测试TCP服务器/模拟发送TCP请求 设置16进制发送(转)
- 使用intellij的svn时提示出错: Can't use Subversion command line client: svn.Errors found while svn working co
- 制作iOS推送-Step by step
- 几种存储器类型总结
- 图片的缩放----等比例缩放
- 报表(折线图,柱形图)
- 【学习ios之路:UI系列】ios中常见的几种控件.(UISlider,UISwitch,UIStepper,UISegmentedControl)