随笔分类 -  OOM/内存泄露原理及解决方案

摘要:Android oom 有时出现很频繁,这一般不是Android设计的问题,一般是我们的问题。 就我的经验而言,出现oom,无非主要是以下几个方面: 一、加载对象过大 二、相应资源过多,没有来不及释放。 解决这样的问题,也有一下几个方面: 一:在内存引用上做些处理,常用的有软引用、强化引用... 阅读全文
posted @ 2015-08-07 16:33 小z亦小 阅读(2779) 评论(0) 推荐(0)
摘要:Android ANR 分析解决方法一:什么是ANRANR:Application Not Responding,即应用无响应二:ANR的类型ANR一般有三种类型:1. KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在特定时间内无响应2. BroadcastT... 阅读全文
posted @ 2015-08-07 15:47 小z亦小 阅读(1673) 评论(0) 推荐(0)
摘要:之前的文章中说到了Android的内存管理相关的原理,也能了解到Android Memory Leak 和 OOM为什么会发生。这次主要说说编码层面,如何来预防Memory Leak的发生。对象都是有生命周期的,对象的生命周期有的是进程级别的,有的是Activity所在的生命周期,随Activity... 阅读全文
posted @ 2015-08-07 15:45 小z亦小 阅读(1907) 评论(0) 推荐(0)
摘要:1、Android 进程管理&内存Android主要应用在嵌入式设备当中,而嵌入式设备由于一些众所周知的条件限制,通常都不会有很高的配置,特别是内存是比较有限的。如果我们编写的代 码当中有太多的对内存使用不当的地方,难免会使得我们的设备运行缓慢,甚至是死机。为了能够使得Android应用程序安全且快... 阅读全文
posted @ 2015-08-07 15:43 小z亦小 阅读(4319) 评论(0) 推荐(0)
摘要:一 Java内存分析工具扫盲如果像我一样一点都不了解,可以先进行内存分析工具扫盲MAT介绍: Eclipse Memory Analyzer(MAT)一个功能丰富的 JAVA 堆转储文件分析工具,可以用于发现内存漏洞和减少内存消耗。二 Eclipse MAT插件安装当前机器环境描述:[plain]v... 阅读全文
posted @ 2014-12-23 11:17 小z亦小 阅读(355) 评论(0) 推荐(0)
摘要:一、安装Eclipse MAT插件1.打开Eclipse->help->add->输入如下值2.勾选Memory Analyzer for Eclipse IDE选项3.一直点击next完成安装二、使用1.打开ADT的DDMS视图,在devices列表中选择一个进程(这里选择oschina app进... 阅读全文
posted @ 2014-12-23 11:16 小z亦小 阅读(911) 评论(0) 推荐(0)
摘要:前言在使用Memory Analyzer tool(MAT)分析内存泄漏(一)中,我介绍了内存泄漏的前因后果。在本文中,将介绍MAT如何根据heap dump分析泄漏根源。由于测试范例可能过于简单,很容易找出问题,但我期待借此举一反三。一开始不得不说说ClassLoader,本质上,它的工作就是把磁... 阅读全文
posted @ 2014-12-23 11:14 小z亦小 阅读(274) 评论(0) 推荐(0)
摘要:系统上线后,程序报出out of memory错误。一方面先加大程序运行的内存以解燃眉之急,另一方面希望能有个工具能查出内存泄露的原因。 通过查阅资料发现了Memory Analyzer这个eclipse插件,下面讲下怎么用。 首先,获取Heap dump文件。有三种方式: 1、设置JVM参数... 阅读全文
posted @ 2014-12-23 11:13 小z亦小 阅读(216) 评论(0) 推荐(0)