文章目录
一、 报错信息
二、 内存排查
三、 代码分析及修改
四、 不同版本说明
参考以下博客 :
【Android 内存优化】Android Profiler 工具常用功能 ( 监测内存 | 内存快照...;
开始执行时运行平稳 , 内存一直保持在 97.4 MB 左右 ;
开启某方法后 , 显示某自定义组件 , 不断循环绘制某多边形 , 出现如下内存情况 :
二、 内存排查
----
点击内存监控面板左上角的...Record 按钮 , 录制一段内容 , 然后进入如下界面 ;
一般情况下 , 不用多想 , 就是第一个类的对象内存泄漏 , 这里的第一个类时 FinalizerReference 类 , 该对象创建了...5149 个 , 这里泄漏的内存就是这个对象泄漏的 ;
点击该对象 , 即可弹出右侧对话框 , 显示着创建的 5149 个对象的信息 ;
再次点击右侧的某个对象 , 打开该对象创建时的调用栈 , 查看究竟在什么地方...onDraw 方法中循环处理多边形绘制 ;
三、 代码分析及修改
----
点击上面的调用栈最上层的方法 , 在循环里出现不断创建对象的方法 Path path = new Path() , 导致了内存泄漏