5

Samsung Galaxy S3 は、私のアプリではほぼ瞬時に 32 MB のヒープサイズを使用します。他のほとんどの Android デバイスでは +- 5 MB から始まります (これは logcat で見られ、必要に応じて 2 つの異なるデバイスからスクリーンショットを送信できます)。これが私のアプリが「OutOfMemory」例外でクラッシュする理由だと思います.Galaxy s3でのみ例外が発生し、Galaxy Y DuosとPocketで完全に動作します.

なぜこれが起こっているのかについてのヘルプ/アドバイスは大歓迎です。

4

2 に答える 2

1

マリオが言ったように、問題はs3の解像度が他のモデルよりも高いため、画像のサイズが大きくなり、メモリ消費量も大きくなることです。

S3は、その解像度を示す最大ヒープサイズが少しあるように見えますが、メモリ不足の問題もありましたが、ヒープ制限が高い同じ解像度の他のデバイスでは発生しませんでした。

于 2012-11-18T13:11:00.110 に答える
0

ほとんどの場合、OOM はビットマップのロードなどではありませんが、ほとんどが GPU に基づいています このリンクを読んでください。これOOM によって引き起こされるさまざまな状況について、このソリューションを参照してください。

ここで私の場合、drawable-nodpiを使用してロードしようとしている画像ドローアブルを置き換えました

私のアプリでは、 drawable-hdpi にアプリのすべての画像がありました。ほとんどのデバイスでは問題ありません。S3 では、アプリは 2 倍のメモリを消費し、メモリ不足の問題が発生します。

drawable-hdpi フォルダーと同じ内容の drawable-xhdpi フォルダーを作成し、S3 で実行しました。メモリ フットプリントが 1/2 であり、メモリ不足の問題がないことにすぐに気付きました。

于 2016-02-25T11:23:32.643 に答える