Android 中的 RGB_565 位图 - 它占用多少内存?

发布于 2024-10-30 06:17:18 字数 327 浏览 2 评论 0原文

Android中RGB_565位图占用多少内存?我猜测每个像素 2 个字节,但是:

  1. 我有 256x256 位图,因此 1 将有 256 * 256 * 2 = 131,072 字节
  2. 当内存中有 143 个位图时,我的应用程序(离线平铺地图)在 N1 (2.3) 上抛出 OutOfMemoryError 。 143 位图为 18MB。我的手机上的最大堆大小为 32 MB。
  3. 这意味着我的应用程序的其余部分为 32 - 18 = 14 MB。但我在 DDMS 中只看到 7 MB 多一点 >堆。另外,在 16 MB 堆大小的设备上,我只有 2 MB 的位图。

How much memory does RGB_565 bitmap occupy in Android? I would guess 2 bytes per pixel but:

  1. I have 256x256 bitmaps, so 1 would have 256 * 256 * 2 = 131,072 bytes
  2. My app (offline tiled map) throws OutOfMemoryError on N1 (2.3) when 143 bitmaps are in memory. 143 bitmaps is 18MB. Max heap size on my phone is 32 MB.
  3. That would imply that the rest of my app is 32 - 18 = 14 MB. But i see only a little over 7 MB in DDMS > Heap. Also, I would have only 2 MB for bitmaps on 16 MB heap size devices.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

倾城°AllureLove 2024-11-06 06:17:18

在 Nexus One 上,每个 Android 应用程序的内存限制为 24MB,这包括您分配的任何位图。

它还加起来 - 没有位图的应用程序大约占用 7MB,当您分配 143 个位图时,我认为您违反了 24MB 限制,从而导致异常。

在这篇文章此处中进行了更详细的讨论

On nexus one each android app is limited to 24MB of memory this includes any bitmaps that you allocate.

It also adds up - your app without bitmaps is taking around 7MB and when you allocate for 143 bitmaps I think you are breaching the 24MB limit thus causing the exception.

Discussed in more detail in this post here

有深☉意 2024-11-06 06:17:18

在Android中< 3.0 中,位图不占用 Dalvik 堆中的空间,而是存储在本机堆中。您无法看到位图在 DDMS 堆中占用了多少内存(顺便说一句,您可以,您应该在 ddms 配置文件中添加类似“native=true”的内容)。

在 3.0+ 中,位图数据存储在 Dalvik 堆中。

如果您有其他图像(还有 xml 文件中的背景、xml 中的图像),它们会占用其他空间。我遇到了很多内存不足问题,因为我使用太大的图像作为背景。

In Android < 3.0, bitmaps does not occupy space in Dalvik heap, instead they are stored in the native heap. You can't see how much memory the bitmaps have taken in the DDMS Heap (btw, you can, you should put something like "native=true" in the ddms config file).

In 3.0+, bitmap data is stored in the Dalvik heap.

If you have other images (also backgrounds in xml files, images in xml) they have taken up the other space. I've had a lot of OutOfMemoryIssues because I used too large images as backgrounds.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文