现象说明: 从github上拉下LeakCanary编译时报错 原因分析: 该现象是由于Windows中Gradle调用命令未加cmd.exe /C导致Windows无法识别命令 解决方案: 定位到报错的gradle代码为leakcanary-android模块的build.gradle中的gitS ...
分类:
其他好文 时间:
2016-08-30 12:10:17
阅读次数:
146
开始使用 在 build.gradle 中加入引用,不同的编译使用不同的引用: dependencies { debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3' releaseCompile 'com.squareup.leak ...
分类:
移动开发 时间:
2016-08-23 13:18:44
阅读次数:
260
教程 LeakCanary: 让内存泄露无所遁形 一些对象有着有限的生命周期。当这些对象所要做的事情完成了,我们希望他们会被回收掉。但是如果有一系列对这个对象的引用,那么在我们期待这个对象生命周期结束的时候被收回的时候,它是不会被回收的。它还会占用内存,这就造成了内存泄露。持续累加,内存很快被耗尽。 ...
分类:
移动开发 时间:
2016-07-19 15:29:32
阅读次数:
176
内存泄漏的概念
一个内存泄漏的例子
Java中”失效”的private修饰符
回头看内存泄漏例子泄漏的重点
强引用与弱引用
解决内部类的内存泄漏
Context造成的泄漏
使用LeakCanary工具查找内存泄漏...
分类:
移动开发 时间:
2016-06-28 13:09:07
阅读次数:
794
曾经检测内存泄露的方式让我们来看看在没有LeakCanary之前,检测内存泄露的方式1.Bug收集
通过Bugly、友盟这样的统计平台,统计Bug,了解OutOfMemaryError的情况。
1. 重现问题
对Bug进行筛选,归类,排除干扰项。然后为了重现问题,有时候你必须找到出现问题的机型,因为有些问题只会在特定的设备上才会出现。为了找到特定的机型,可能会想尽一切办法,去买、去借、去求...
分类:
移动开发 时间:
2016-06-12 07:19:47
阅读次数:
403
虽然VM接管了内存分配和回收,但是人类在解决问题的同时也会重新创造出一些新的问题,所以问题永远都解决不了,就产生各种稀奇古怪的就业机会了(跑题跑不停)。 无论各种VM用什么算法管理内存, 造成内存泄漏的主要原因都是VM认为那些其实可以回收的内存没有被回收,比如各种数据集合中的垃圾数据,各种类静态成员 ...
分类:
移动开发 时间:
2016-06-12 00:23:23
阅读次数:
171
本章以实际案例分析在android开发中,性能方面的优化和处理。设计到知识点有弱引用,memory monitor,Allocation Tracker和leakcanary插件。 1.测试demo 下载bug项目:https://github.com/lzyzsd/MemoryBugs,请注意配合 ...
分类:
移动开发 时间:
2016-05-18 01:40:10
阅读次数:
357
在之前的文章Android内存泄露的几种情形中提到过在开发中常见的内存泄露问题,但是过于草率。由于刚开年,工作还没正式展开,就看了一下Github开源大户Square的LeakCanary,并用公司项目的测试环境来练手,试图找出项目中存在的内存泄露。与上一篇不同,这一篇我会先说一下Java的内存区域以及垃圾回收机制,然后再讲LeakCanary的应用,并且会用一个在项目中遇到的真实案例来结尾。Jav...
分类:
其他好文 时间:
2016-02-19 10:50:31
阅读次数:
304
http://www.liaohuqiu.net/cn/posts/leak-canary-read-me/LeakCanary 中文使用说明10 May 2015LeakCanaryAndroid 和 Java 内存泄露检测。“A small leak will sink a great ship...
分类:
移动开发 时间:
2016-01-20 12:58:36
阅读次数:
205