我有一个应用程序,它通过将所有帧作为单独的位图加载到内存中并通过线程循环将它们分配给imageViews
.
位于imageViews
片段上,片段加载在pageViewer
. 我已将页面查看器的屏幕外限制设置为 1,因此我最多一次处理三个片段/gif。
现在在 2.1 的模拟器上,如果所有三个 gif 同时在内存中,我会收到此错误:
11-25 17:28:34.269: E/dalvikvm-heap(524): 292000-byte external allocation too large for this process.
11-25 17:28:34.269: E/(524): VM won't let us allocate 292000 bytes
我在 2.3.3 上遇到了同样的错误,但在 4.0.3 模拟器或运行 4.0.4 的我的 Galaxy Tab 10.1 上却没有——这两个运行良好且速度相当快。
我尝试加载 1024x999 3.2MB gif,甚至 4.0.3 模拟器都失败了,但我的平板电脑仍然能够显示一些 gif,直到它也停止加载它们;该应用程序使用了大约 250-300MB 的 RAM。
那么有没有办法预测真实设备的工作方式?我应该针对更高的 API 版本吗?