Android 内存泄漏
Android 内存泄漏 前言 内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。有些内存泄漏是很难发现的,需要使用恰当的方法或者辅助工具才能检测到,这篇文章记一下 Android 应用程序中如何检测内存泄漏。 一、java 虚拟机运行时数据区域 java 虚拟机在执行 java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域有着各自的创建时间和销毁时间,各自用途也不一样。java虚拟机运行时数据区域如下图: 1.1 程序计数器 程序计数器是一块较小的内存空间,是当前线程所执行的字节码的行号指示器。如果线程正在执行一个java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果是Naive方法,则计数器为空;这个区域不会出现OUtOfMemoryError异常。此区域也是唯一一个在java虚拟机规范中没有规定任何OUtOfMemoryError情况的区域。 java虚拟机多线程是使用线程轮流切换并分配处理执行时间的方式来实现的,在任何一个确定的时刻...