Android 多图,大图内存优化

策略:

1. 图片压缩

如果所需尺寸大于图片原始尺寸,可以压缩图片节省内存。

2. 图片缓存

每个图片加载时都会生成一个 Bitmap。把这些 Bitmap 缓存起来以重用相同的图片,避免重复创建。

3. Bitmap 回收

每次生成的 Bitmap 保存起来,在不需要的时候或者内存紧张的时候回收(Bitmap 的 recycle 方法)。

参考文章:

https://developer.android.com/training/displaying-bitmaps/index.html

http://blog.csdn.net/guolin_blog/article/details/9316683

时间: 2024-10-08 22:41:11

Android 多图,大图内存优化的相关文章

Android之——性能与内存优化

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46987951 写出高效代码的两条基本的原则:(1)不要做不必要的事:(2)不要分配不必要的内存. 1. 内存优化      Android系统对每个软件所能使用的RAM空间进行了限制(如:Nexus one 对每个软件的内存限制是24M),同时Java语言本身比较消耗内存,dalvik虚拟机也要占用一定的内存空间,所以合理使用内存,彰显出一个程序员的素质和技能. 1) 了解JIT

android 开发如何做内存优化

网上看的一篇很好的文章;http://www.gforetell.com/?/question/id-111__uid-focus 不少人认为JAVA程序,因为有垃圾回收机制,应该没有内存泄露.其实如果我们一个程序中,已经不再使用某个对象,但是因为仍然有引用指向它,垃圾回收器就无法回收它,当然该对象占用的内存就无法被使用,这就造成了内存泄露.如果我们的java运行很久,而这种内存泄露不断的发生,最后就没内存可用了.当然java的,内存泄漏和C/C++是不一样的.如果java程序完全结束后,它所有

Android大图加载内存优化(如何防止OutOfMemory)

一.简介 移动设备不断发展的今天,有的人认为内存已经足够大了,不用再管什么内存优化,Java是虚拟机可以帮我维护内存.其实内存空间资源还是很宝贵的,不管手机内存有多大,系统分配给单个应用的内存空间还是很有限的大致有16M,64M,128M等.在Android中加载大图会非常消耗系统资源,16M的图片大致可以存储3张1024X1536质量为ARGB_8888的图片,这里边还不包含其它Object所占的资源.软件在系统上运行,环境是很复杂的,可能测试的时候有限的测试次数上没有发现内存泄漏问题,但是在

Android之——图片的内存优化

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46972817 1. 对图片本身进行操作 尽量不要使用 setImageBitmap.setImageResource. BitmapFactory.decodeResource 来设置一张大图,因为这些方法在完成 decode 后,最终都是通过 Java 层的 createBitmap 来完成的,需要消耗更多内存.因此,改用先通过 BitmapFactory.decodeStre

android图片加载内存优化方法,有效解决大图片内存溢出(oom)

低内存的手机如果直接加载大图片,往往会出现OOM的情况.即便是主流手机,也不能无限制的加载大图片.所以在显示图片之前,需要对图片处理,把图片缩放为最合适的尺寸再显示. 网上很大方法都是不管三七二十一,直接压缩图片.这样可能会导致图片失真,显示模糊.我采用的方式是,显示尺寸有多大,就等比例压缩成多大尺寸的图片,关键关于在于如何寻找最合适的尺寸,下面分享两个关键方法,提取至google开源框架volley private static int getResizedDimension(int maxP

从Android资源角度谈Android代码内存优化

原文链接:http://www.codeceo.com/article/android-resource-android-mem.html 这篇文章主要介绍在实际Android应用程序的开发中,容易导致内存泄露的一些情况.开发人员如果在进行代码编写之前就有内存泄露方面的基础知 识,那么写出来的代码会强壮许多,写这篇文章也是这个初衷.本文从Android开发中的资源使用情况入手,介绍了如何在Bitmap.数据库查询.9- patch.过渡绘制等方面优化内存的使用. Android资源优化 1. B

Android内存优化之OOM

内容大多都是和OOM有关的实践总结概要.理解错误或是偏差的地方,还请多包涵指正,谢谢!本人Q:1524447071 (一)Android的内存管理机制 Google在Android的官网上有这样一篇文章,初步介绍了Android是如何管理应用的进程与内存分配:http://developer.android.com/training/articles/memory.html. Android系统的Dalvik虚拟机扮演了常规的内存垃圾自动回收的角色,Android系统没有为内存提供交换区,它使用

android内存优化5—对界面UI的优化(2)

在一个应用程序中,一般都会存在多个Activity,每个Activity对应着一个UI布局文件.一般来说,为了保持不同窗口之间的风格统一,在这些UI布局文件中,几乎肯定会用到很多相同的布局.如果我们在每个xml文件中都把相同的布局都重写一遍,一个是代码冗余,可读性很差:另一个是修改起来比较麻烦,对后期的修改和维护非常不利.所以,一般情况下,我们需要把相同布局的代码单独写成一个模块,然后在用到的时候,可以通过<include /> 标签来重用layout的代码. 常见的,有的应用在最上方会有一个

Android内存优化1-对Bitmap的内存优化

在Android应用里,最耗费内存的就是图片资源.而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常.所以,对于图片的内存优化,是Android应用开发中比较重要的内容. 1) 要及时回收Bitmap的内存 Bitmap类有一个方法recycle(),从方法名可以看出意思是回收.这里就有疑问了,Android系统有自己的垃圾回收机制,可以不定期的回收掉不使用的内存空间,当然也包括Bitmap的空间.那为什么还需