
android
yufei_java
这个作者很懒,什么都没留下…
展开
-
使用LruCache为GridView加载大量sdcard的图片
最近做android开发的时候遇到读取sdcard下面图片展示,在网上找了很多相关资料,最终得于解决。在这里首先感谢下互联网的朋友们。接下来我把我实现的代码贴出来和大家分享下。由于代码里面的注释写的很清楚。我就不再一一描述了。 package com.zhuyesoft.sgzs.ui; import android.annotation.SuppressLint; import an...原创 2015-03-19 09:49:23 · 138 阅读 · 0 评论 -
(一)Android的内存管理机制
Google在Android的官网上有这样一篇文章,初步介绍了Android是如何管理应用的进程与内存分配:http://developer.android.com/training/articles/memory.html。 Android系统的Dalvik虚拟机扮演了常规的内存垃圾自动回收的角色,Android系统没有为内存提供交换区,它使用 paging与 memory-mappi...原创 2015-09-22 17:45:42 · 157 阅读 · 0 评论 -
(二)OOM(Out Of Memory)
前面我们提到过使用getMemoryClass()的方法可以得到Dalvik Heap的阈值。简要地获取某个应用的内存占用情况可以参考下面的示例(更多内存查看的知识,可以参考Google官方教程: Investigating Your RAM Usage) 1)查看内存使用情况 通过命令行查看内存详细占用情况,如图3所示。 图3 命令行查看内存详细占用情况 通过Android ...原创 2015-09-22 17:46:09 · 257 阅读 · 0 评论 -
(三)如何避免OOM总结
前面介绍了一些基础的内存管理机制以及OOM的基础知识,那么在实践操作当中,有哪些指导性的规则可以参考呢?归纳下来,可以从四个方面着手,首先是减小对象的内存占用,其次是内存对象的重复利用,然后是避免对象的内存泄露,最后是内存使用策略优化。 减小对象的内存占用 避免OOM的第一步就是要尽量减少新分配出来的对象占用内存的大小,尽量使用更加轻量的对象。 1)使用更加轻量的数据结构 例如,我们可...原创 2015-09-22 17:46:40 · 588 阅读 · 0 评论 -
(四)避免对象的内存泄露
内存对象的泄漏,会导致一些不再使用的对象无法及时释放,这样一方面占用了宝贵的内存空间,很容易导致后续需要分配内存的时候,空闲空间不足而出现OOM。显然,这还使得每级Generation的内存区域可用空间变小,GC就会更容易被触发,容易出现内存抖动,从而引起性能问题(如图15所示)。 图15 最新的LeakCanary开源控件,可以很好的帮助我们发现内存泄露的情况,更多关于LeakCa...原创 2015-09-22 17:47:31 · 288 阅读 · 0 评论