gpt4 book ai didi

android - BitmapFactory.decodeResource 和莫名其妙的Out of Memory

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:35:42 28 4
gpt4 key购买 nike

我在解码可绘制图像资源 960x926px jpg 时遇到奇怪的内存不足错误,分配了 3555856 字节。图像仅放置在 drawable-xxhdpi (3x) 中,我使用的是 hdpi (1.5x) 设备。两个问题:

  • 为什么我在堆中有足够的可用内存时仍会出现错误?

  • 分配给一个 hdpi 设备应该是 ((960/2) x (926/2)) x 4 = 888960 字节(不是 3555856)?

有人可以解释一下吗?

注意:问题是关于为什么在有 22.5MB 空闲内存的情况下获得 3.5MB 分配的 OOM(参见日志)

03-18 17:30:15.050 32750-32750/? D/dalvikvm: GC_FOR_ALLOC freed 10809K, 49% free 23735K/46087K, paused 89ms, total 89ms

03-18 17:30:15.050 32750-32750/? I/dalvikvm-heap: Forcing collection of SoftReferences for 3555856-byte allocation

03-18 17:30:15.160 32750-32750/? D/dalvikvm: GC_BEFORE_OOM freed 29K, 49% free 23705K/46087K, paused 103ms, total 103ms

03-18 17:30:15.160 32750-32750/? E/dalvikvm-heap: Out of memory on a 3555856-byte allocation.

03-18 17:30:15.160 32750-32750/? I/dalvikvm: "main" prio=5 tid=1 RUNNABLE

03-18 17:30:15.160 32750-32750/? I/dalvikvm: | group="main" sCount=0 dsCount=0 obj=0x418fc6a0 self=0x4010c008

03-18 17:30:15.160 32750-32750/? I/dalvikvm: | sysTid=32750 nice=1 sched=0/0 cgrp=apps handle=1075251280

03-18 17:30:15.160 32750-32750/? I/dalvikvm: | schedstat=( 0 0 0 ) utm=3807 stm=859 core=0

03-18 17:30:15.160 32750-32750/? I/dalvikvm: at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)

03-18 17:30:15.160 32750-32750/? I/dalvikvm: at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:636)

03-18 17:30:15.160 32750-32750/? I/dalvikvm: at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:484) 03-18 17:30:15.160 32750-32750/? I/dalvikvm: at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:512)

03-18 17:30:15.160 32750-32750/? I/dalvikvm: at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:542)

最佳答案

1)如果您在 hdpi 文件夹中没有较小的版本,它将使用最接近的匹配。因此,如果不存在 hdpi 或 drawable/版本,它将使用 xxhdpi。

2) 它不会自动缩放。它将以全尺寸阅读。

3)如果这导致 OOM,一般来说您可能使用了过多的内存。

关于android - BitmapFactory.decodeResource 和莫名其妙的Out of Memory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36090677/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com