标签:
本文译自:https://corner.squareup.com/2015/05/leak-canary.html(LeakCanary是由Square公司刚刚开源用于查找Android内存泄露的库)
java.lang.OutOfMemoryError
at android.graphics.Bitmap.nativeCreate(Bitmap.java:-2)
at android.graphics.Bitmap.createBitmap(Bitmap.java:689)
at com.squareup.ui.SignView.createSignatureBitmap(SignView.java:121)尝试重现该问题。你可能需要通过购买或者借用遇到崩溃问题的特定设备。(并非所有设备都会呈现这些泄漏) !你还需要弄清楚是哪一系列操作触发泄漏,有可能是蛮力。
当泄露发送时,记录堆栈内容(点击此处获取代码)
计算最短到 GC 根从该对象的强引用路径。
找出哪个引用路径不应该存在,并修复内存溢出问题。
class Cat {
}
class Box {
Cat hiddenCat;
}
class Docker {
static Box container;
}
// ...
Box box = new Box();
Cat schrodingerCat = new Cat();
box.hiddenCat = schrodingerCat;
Docker.container = box;// We expect schrodingerCat to be gone soon (or not), let‘s watch it. refWatcher.watch(schrodingerCat);
* GC ROOT static Docker.container * references Box.hiddenCat * leaks Cat instance
public class ExampleApplication extends Application {
@Override public void onCreate() {
super.onCreate();
LeakCanary.install(this);
}
}2015年,开始尝试玩一下微信公众账号:
标签:
原文地址:http://blog.csdn.net/lilu_leo/article/details/45624735