zoukankan      html  css  js  c++  java
  • LeakCanary:简单粗暴的内存泄漏检測工具

            差点儿每一个程序猿在开发的过程中都会遇到内存泄漏。那么我们怎样检測到app是否哪里出现内存泄漏呢?square公司推出了一款简单粗暴的检測内存泄漏的工具-- LeakCanary

    什么是内存泄漏?

           内存泄漏是指因为疏忽或者错误造成程序未能释放已经不再使用的内存,内存泄漏不是指内存在物理上的消失,而是应用程序分配某段内存后,因为设计错误失去了对于这段内存的控制。因而造成内存的浪费。

           内存泄漏和内存溢出是两码事,不要混淆,内存溢出通俗的讲就是内存不够用,如今的仅仅能手机内存越来越大,内存溢出的情况不是非常多,可是内存泄露情况比較严重,LeakCanary的到来对我们来说是一个简单粗暴,直观的好工具


    上面这个图片就是这个工具的图标了,当你的程序处于debug模式的时候,就能看到他了,当然release没有


    LeakCanary作为一个简单粗暴的工具,使用方法也相当简单

    在build.gradle中引入LeakCanary

    debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3'
        releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3'


    一个是debug包,一个是release包的,从引入包的结构也能看出端倪

    因为LeakCanary是測试整个app的内存泄露情况,所以你须要在你的application中启动它

    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

  • 相关阅读:
    [Swift]LeetCode1249. 移除无效的括号 | Minimum Remove to Make Valid Parentheses
    [Swift]LeetCode1240. 铺瓷砖 | Tiling a Rectangle with the Fewest Squares
    一位资深程序员大牛给予Java初学者的学习路线建议
    Java基础——集合源码解析 List List 接口
    Java定时任务调度详解
    Java实现CORS跨域请求
    假如时光倒流,我会这么学习Java
    Java后端程序员1年工作经验总结
    20个高级Java面试题汇总
    JVM内幕:Java虚拟机详解
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/7003690.html
Copyright © 2011-2022 走看看