皆さん、これは重複しているとは思いませんし、 OOMの質問を避ける方法の 1 つでもありません。これは真の知識の探求なので、反対票は控えてください...
ピクセルがあるJPEG
と想像してください。「 」500x500
のとおりにロードします。ARGB_8888
bad as it gets
私は Android が割り当てることを期待しています500x500x4 bytes = a little under 1MB
が、ヒープ ダンプを見ると、Android がかなり多く、多くの場合5-10
何倍も多く割り当てていることがわかります。
ここでは、スタック トレースが示すOOMSに関する質問をよく見かけますが、単にイメージのバイトを保持するために必要なサイズよりも常にはるかに大きくなっています。OPは通常、いくつかの反対票をキャッチし、在庫の回答と、メモリの使用量が少ないこと(Romainに感謝します!)とスケーリングに関するコメントで攻撃されます。ここには目に見える以上のものがあると思います。heap request of say 15MB
これがなぜなのか知っている人はいますか?
明らかな答えがない場合は、役立つ場合はSSCCEをまとめます。
PS。バッキングビットマップのメモリ使用量について話しているので、JPEG と PNG などは無関係であると思います。これは単に x 倍 y 倍の BPP です - それとも遅いのでしょうか?