【问题标题】:Android 2.3 has lower VM budget than 2.1 and 2.2?Android 2.3 的 VM 预算低于 2.1 和 2.2?
【发布时间】:2011-08-17 18:53:57
【问题描述】:

Android 2.3 的 VM 预算似乎比 2.1 amd 2.2 小得多。令我惊讶的是,较新的操作系统限制性更强,我希望由于技术的发展,应该为应用程序分配更大的内存(VM 预算)。

因此,我无法在内存中保存大位图图像,这对于我现在正在做的图形图像处理应用程序很重要。但它在 2.1 和 2.2 中运行良好。

如果我使用 inScale 缩小图像以适应 2.3,那么我的输出质量就会下降。

根据您的经验,您对如何处理 2.3 和以前版本之间的这种差异有什么建议吗?

【问题讨论】:

    标签: android memory-management


    【解决方案1】:

    Android 2.3 的 VM 预算实际上更高(32 MB)。不同之处在于,Android 2.3 现在默认以 32 位 (ARGB8888) 加载所有位图,而不是 16 位。

    请参阅http://www.curious-creature.org/2010/12/04/gingerbread-and-32-bits-windows/http://www.curious-creature.org/2010/12/08/bitmap-quality-banding-and-dithering/ 了解更多信息

    【讨论】:

    • 尽管答案可能很好,但在我的应用程序中,我已将视图和所有位图设置为加载或创建为 argb_8888。它可以在两台设备上正常运行 2.2,但在 2.3.3 设备上内存不足。首先我加载 1900x2500 位图,这对两者都有效,然后我创建三个不大于屏幕的较小位图,但是 2.3.3 即使在加载大的位图后创建四分之一屏幕大小的位图时也会出现内存不足。我想知道是否还有其他原因可能导致这种情况 - 静态位图怎么样,2.3 处理它们的方式不同吗?
    猜你喜欢
    • 1970-01-01
    • 2012-03-31
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 2011-08-28
    • 2012-03-07
    • 1970-01-01
    相关资源
    最近更新 更多