0

我正在尝试将塔罗牌算命牌阅读游戏从 iPhone 移植到 android。我放置了所有占用大约 19 mb 的未缩放图像。我假设机器人通常有 512 mb 的内存?如果整个大小约为 20mb,为什么应用程序不会加载?我确实缩小了图像,所以内存下降到大约 8mb 并且加载正常。

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

4

2 回答 2

1

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

您可以将 android:largeHeap="true" 添加到您的标签中以获得分配给您的更多内存,但它仅适用于 3.X 及更高版本,AFAIK。

于 2012-06-12T16:42:13.827 回答
0

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

于 2012-06-12T16:50:11.230 回答