2010-01-05 22 views
1

我有一个应用程序绘制大量图形并进行更改。 由于我有很多图形,我想到了APK以外的图像,根据需要从互联网上下载,并保存在文件应用程序文件夹中。可绘制内存,是否有更好的APK内部资源,外部APK还是内存相同?

但我开始摆脱了内存异常。

现在的问题是:如果我从APK加载图形,而不是从'磁盘'加载它,android会处理内存不同吗?

代码使用APK:

topView.setBackgroundResource(R.drawable.bg);

代码,如果图像是APK外:

可绘制d = Drawable.createFromPath(pathName中); topView.setBackgroundDrawable(d);

感谢

丹尼尔

回答

3

不,他们内部的处理相同。最有可能的是,你正在泄漏图像,或者没有尽快清理它们。尝试拨打Bitmap.recycle();,然后强制Android将其清除。

+0

等等,什么?你正在泄漏图像?您可以请扩展此...这听起来不像谷歌会略过的东西......你是否说加载一个本地绘图到内存创建的情况下,除非你手动释放内存,它不会自己的GCed? – 2011-10-23 16:36:47

0

在运行时,您看到的内存占用空间应该大致相同,不管加载它的方式如何。 Android将使用一个实用程序来将资源内部的字节对齐,从而提高加载时间。

相关问题