【问题标题】:memory of drawables, is it better to have resources inside APK, outside APK or is it the same for memory?drawables的内存,在APK内部,APK外部有资源更好还是内存相同?
【发布时间】:2010-01-05 12:20:01
【问题描述】:

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

但我开始出现 outOfMemory 异常。

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

使用 APK 的代码:

topView.setBackgroundResource(R.drawable.bg);

如果图像在 APK 之外的代码:

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

谢谢

丹尼尔

【问题讨论】:

    标签: android memory drawable


    【解决方案1】:

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

    【讨论】:

    • 等等,什么?你在泄露图片?您能否对此进行扩展...这听起来不像Google会略过...您是说将本地Drawable加载到内存中会产生一种情况,除非您手动释放内存,否则它不会GCed 自己?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-15
      相关资源
      最近更新 更多