android -App上的内存管理由于模拟器上的内存不足而无法加载

时间:2012-06-12 16:37:05

标签: android

我正试图将一张塔罗牌财富卡读取游戏从iPhone移植到android。 我把所有未缩放的图像放在了大约19 mb的位置。我假设机器人通常有512 mb的ram?如果应用程序的整体大小约为20mb,为什么不加载?我确实按比例缩小了图像,因此内存下降到大约8mb并且装载得很好。

有人知道内存管理是如何工作的还是一个好的链接?我会有一些声音效果和更多的图形。担心apk不会加载。

2 个答案:

答案 0 :(得分:1)

在Android中,每个应用程序都有足够的内存来运行。它通常在16MB到24MB之间变化,通常在旧设备上较低。为避免这种情况,游戏通常使用OpenGL纹理,因为它们不计入内存限制IIRC。另外,从NDK分配内存会绕过这个限制,但不是很方便。

您可以将android:largeHeap =“true”添加到您的代码中以获得更大的内存分配给您,但它仅适用于3.X及以上的AFAIK。

答案 1 :(得分:0)

首先,仅仅是因为图像在磁盘中占用了一点空间并不意味着它在显示时会使用相同数量的内存。要计算图像将占用多少内存(大约),请执行H x W x 4。然后是android所施加的限制,这取决于屏幕大小(16 MB或更高,但不多)。通常,您可以使用很少的全屏图像。此外,由于您的图像可能比手机屏幕大得多,因此您需要对其进行缩减采样,以减少内存占用。在SO中有很多关于这个主题的信息。