AS如何调试内存泄漏

首先 创建一个内存泄漏的例子
AS如何调试内存泄漏
因为匿名内部类默认持有外部类的强引用,所以当跳转到第二个activity,本应该被销毁的MainActivity会被线程持有,而导致不会被GC回收。
然后通过AS提供的工具Android Profiler来找到内存泄漏的位置。
AS如何调试内存泄漏
AS如何调试内存泄漏
选中MEMORY,AS如何调试内存泄漏
点击垃圾桶旁边的堆栈收集。
AS如何调试内存泄漏
会得到这个时间段的所有数据信息。然后你会发现
AS如何调试内存泄漏
有两个实例,然后点击MainActivity
AS如何调试内存泄漏
就会看见具体的信息,因为线程持有了MainActiivty,所以无法释放,导致内存泄漏。