为什么要做缓存? 在UI界面加载一张图片时很简单,然而如果需要加载多张较大的图像,事情就会变得更加复杂。在许多情况下(如ListView、GridView或ViewPager等的组件),屏幕上的图片的总数伴随屏幕的滚动会大大增加,且基本上是无限的。为了使内存使用保持在稳定范围内,防止出现OOM,这些...
分类:
移动开发 时间:
2015-07-03 13:56:28
阅读次数:
234
JVM常用调试用参数:
–verbose:gc在虚拟机发生内存回收时在输出设备显示信息
-Xloggc:filename把GC相关日志信息记录到文件以便分析
-XX:-HeapDumpOnOutOfMemoryError当首次遭遇OOM时导出此时堆中相关信息
-XX:OnError=";" 出现致命ERROR之后运行自定义命令
-XX:-PrintClassHistogram遇到Ctrl...
分类:
其他好文 时间:
2015-07-02 10:18:12
阅读次数:
146
每当碰到一些大图片的时候,我们如果不对图片进行处理就会报OOM异常,这个问题曾经让我觉得很烦恼,后来终于得到了解决,那么现在就让我和大家一起分享一下吧。这篇博文要讲的图片缓存机制,我接触到的有两钟,一种是软引用,另一种是内存缓存技术。先来看下两者的使用方式,再来作比较。除了加载图片时要用到缓存处理,...
分类:
系统相关 时间:
2015-07-01 18:06:06
阅读次数:
186
Java 程序优化:字符串操作、基本运算方法等优化策略
看了这篇文档,略有所感,所以本篇算是一个读后感。和上篇JAVA一种提升输出速度的方法 进一步。
主要涉及了7种优化方式。
1.subString(begin,end):
subString是截取String中一段的方法,我在这个上面还吃过苦头的,之前做过一个大数据量的subString一直OOM,没找到解决办法,今天看到文中提到如果使用...
分类:
编程语言 时间:
2015-07-01 16:06:32
阅读次数:
167
1.现象
当我们在app上上传一些安卓的本地图片时,有时当上传某些图片时会莫名其妙的闪退,而检查时发现并没有oom异常。同样上传一些类似的图片却可以正常使用。
1.1 开启选择本地图片Intent intent = new Intent(Intent.ACTION_PICK, null);
intent.setDataAndType(MediaStore.Images.Media...
分类:
移动开发 时间:
2015-07-01 12:20:27
阅读次数:
185
通常我们在开发android应用程序时,在加载图片时常常需要与Bitmap打交道,一般会使用BitmapFactory中提供的相关decode方法获取;如果一张很大的图片,我们不加处理直接decode的话常常会抛出oom即 outof memory的异常。为了尽量避免这种情况的发生,我们就会用到Bi...
分类:
移动开发 时间:
2015-07-01 01:01:50
阅读次数:
201
Android用LruCache来取代原来强引用和软引用实现内存缓存,因为据说自2.3以后Android将更频繁的调用GC,导致软引用缓存的数据极易被释放。 LruCache使用一个LinkedHashMap简单的实现内存的缓存,没有软引用,都是强引用。根据LinkedHashMap的结构原理,最新的应该在尾端,旧的应该在头部。如果添加的数据大于设置的最大值,就删除最先缓存(头部)的数据来调整内存。...
分类:
移动开发 时间:
2015-06-27 10:02:13
阅读次数:
230
错误信息如下:Container [pid=26845,containerID=container_1419056923480_0212_02_000001]
is running beyond virtual memory limits. Current usage: 262.8 MB of 2 GB physical memory used; 4.8 GB of 4.2 GB virtua...
分类:
其他好文 时间:
2015-06-26 19:54:37
阅读次数:
113
一、Java堆溢出
内存溢出和内存泄露
内存溢出:指程序运行过程中无法申请到足够的内存而导致的一种错误。内存溢出通常发生于OLD段或Perm段垃圾回收后,仍然无内存空间容纳新的Java对象的情况。
内存泄露:指程序中动态分配内存给一些临时对象,但是对象不会被GC所回收,它始终占用内存。即被分配的对象可达但已无用
package com.weixuan.outofmemory;
imp...
分类:
其他好文 时间:
2015-06-26 09:17:51
阅读次数:
137
Chandler是一个开放源代码且跨平台的任务管理程序,最早的构思来自于2002年的Outlook-killer。它是一个免费的组织工具,无论是什么格式或系统的电子邮件和日历任务,他都能进行处理并形成一个平稳的工作流程。Chandler的别称为“Note-to-self Organizer”(自提示...
分类:
其他好文 时间:
2015-06-23 08:40:26
阅读次数:
105