Android中内存泄漏是比较让人头痛的一块问题,这两天研究了下,放点干货吧,有时间再好好解析。
首先是如何检查内存泄漏,这里推荐使用square的leakCanary,绝对的神器。Github地址:
然后是一个自己写的Demo,里面有用到leakCanary进行内存泄漏的检查,主要针对四种情况,使用Thread,使用Handler,使用RxJava和使用AsyncTask。Github地址:
最后是一些关于Java中线程模型的文章,因为像RxJava,AsyncTask等等这样封装好的异步操作框架,其核心基本上都是使用了线程池,FutureTask来操作线程,而最重要的中断任务,例如RxJava的unsubscribe(),AsyncTask的cancel,到最后都会调用Thread的interrupt(),所以好好了解下Java的线程模型是非常有必要的!
Thread 常搞混的几个概念sleep、wait、yield、interrupt