bitmap 导致内存溢出

44 views
Skip to first unread message

无边的云

unread,
Mar 21, 2012, 7:01:06 AM3/21/12
to Android Developers China Team
开发android客户端,加载大量图片。内存使用量大,出现oom的问题,一直很头疼!

高明正

unread,
Mar 21, 2012, 7:51:30 AM3/21/12
to android-de...@googlegroups.com
网上查一下嘛,弱引用,延时加载,GC,缩略图……


2012/3/21 无边的云 <liyan...@gmail.com>
开发android客户端,加载大量图片。内存使用量大,出现oom的问题,一直很头疼!

--
您收到此信息是由于您订阅了 Google 论坛“Android Developers China Team”论坛。
 要在此论坛发帖,请发电子邮件到 android-de...@googlegroups.com
 要退订此论坛,请发邮件至 android-develope...@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/android-developers-zh?hl=zh-CN 访问
该论坛
Android中国论坛 http://www.androidcn.net
Android中国WiKi http://www.androidcn.net/wiki

Xi Shen

unread,
Mar 21, 2012, 8:18:09 AM3/21/12
to android-de...@googlegroups.com
还有提高sampleSize
--
Regards,
David Shen

http://about.me/davidshen
https://twitter.com/#!/davidshen84

figo ye

unread,
Mar 21, 2012, 10:16:04 AM3/21/12
to android-de...@googlegroups.com
对图片进行压缩!
live to learn to live....

pororo oliver

unread,
Mar 21, 2012, 10:37:22 PM3/21/12
to android-de...@googlegroups.com
总不可能是一个页面的图片就oom了吧,及时回收

无边的云

unread,
Mar 21, 2012, 10:42:50 PM3/21/12
to Android Developers China Team
因为应用主要是给杂志做的,所有图片会比较多。因为Java也没办法自己控制内存的生存周期,
弱引用也用到了。可能用的不够理想吧!类本身也不多所有对于本机堆应该没什么问题,就是Java堆的问题。

Xi Shen

unread,
Mar 21, 2012, 11:07:10 PM3/21/12
to android-de...@googlegroups.com
高清大图不能直接加载内存。stackoverflow上讨论很多了。

你可以用下面的code取得程序可用的内存大小。然后保证加载的图片不要超过可用内存的1/2就可以了。
ActivityManager am = (ActivityManager) getApplication()
.getSystemService(ACTIVITY_SERVICE);
int appMemSize = am.getMemoryClass() * 1024 * 1024;

然后用下面的 code加载图片。
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inSampleSize = sampleSize;//最好是2^n
bitmap = BitmapFactory.decodeStream(inputStream, null, opts);

stackoverflow上也有关于weak ref的讨论。大概是因为android对weak ref实现有问题,weak
ref的obj会被提前释放。所以不建议使用。


2012/3/22 无边的云 <liyan...@gmail.com>:

liyang1025

unread,
Mar 21, 2012, 11:17:32 PM3/21/12
to android-developers-zh
谢谢指教!已经按照你提供的代码,进行修改了。
 

liyang1025
 
发件人: Xi Shen
发送时间: 2012-03-22 11:07
收件人: android-developers-zh
主题: Re: [AndroidZh] Re: bitmap 导致内存溢出
Reply all
Reply to author
Forward
0 new messages