我有一个应用程序可以绘制大量图形并进行更改。 由于我有很多图形,我想到将图像放在APK之外,根据需要从互联网下载,并保存在文件应用程序文件夹中。
但是我开始出现了OutMfory异常。
问题是:如果我从APK加载图形而不是从'磁盘'加载图形,那么android会处理内存不同吗?
代码使用APK:
topView.setBackgroundResource(R.drawable.bg);
代码,如果图片在APK之外:
Drawable d = Drawable.createFromPath(pathName); topView.setBackgroundDrawable(d);
由于
丹尼尔
答案 0 :(得分:3)
不,内部处理相同。最有可能的是,你正在泄漏图像,或者没有尽快清理它们。完成图像后,请尝试致电Bitmap.recycle();
,以强制Android清理它。
答案 1 :(得分:0)
在运行时,无论您加载它的方式如何,您所看到的内存占用量应该大致相同。 Android将使用实用程序对apk内部的资源进行字节对齐,这样可以缩短加载时间。