1

我有一个应用程序可以绘制大量图形并更改它们。由于我有很多图形,我想将图像放在 APK 之外,根据需要从 Internet 下载,并保存在 files 应用程序文件夹中。

但我开始出现 outOfMemory 异常。

问题是:如果我从 APK 加载图形与从“磁盘”加载图形,android 处理内存是否不同?

使用 APK 的代码:

topView.setBackgroundResource(R.drawable.bg);

如果图像在 APK 之外,则代码:

Drawable d = Drawable.createFromPath(pathName); topView.setBackgroundDrawable(d);

谢谢

丹尼尔

4

2 回答 2

3

不,在内部它们的处理方式相同。最有可能的是,您正在泄漏图像,或者没有尽快清理它们。完成图像处理后尝试调用Bitmap.recycle();,以强制 Android 对其进行清理。

于 2010-01-05T13:54:22.980 回答
0

在运行时,无论您以哪种方式加载它,您看到的内存占用量都应该大致相同。Android 将使用一个实用程序来对 apk 内部的资源进行字节对齐,这应该会缩短加载时间。

于 2010-01-05T19:03:00.633 回答