私はこれに対する更新された答えを見つけるのに苦労しています。
これまでのところ、私は自分のリソースを16mb未満に着陸させることを目指してきました。しかし、これはますます難しくなっています。つまり、1000x1000の.Pngファイルは約1MBを使用します。
もちろんなるべく小さくしたいのですが、どのくらいの大きさで気になりますか?アンドロイド>2.1のリリースを計画しています
これまでに取得する最小のヒープスペースは16 MB
、IIRCです。最大、またはそれ以上が与えられる可能性がありますが64 MB
、常に16MB未満で操作する必要があります。より多くのヒープスペースを取得できる可能性があり、それを使い切ってしまうと、他のアプリがメモリから移動してしまい、ユーザーに小さな問題や場合によっては大きな問題が発生する可能性があることに注意してください。
それ以上のスペースを確保できないわけではありません。実際のところ、アプリはAndroid市民として可能な限り優れたものにし、できるだけデバイスに親しみやすいものにする必要があります。
次の方法で最大ヒールサイズを取得できます。
Log.d(TAG,"Memory Class: " + ((ActivityManager) getSystemService(ACTIVITY_SERVICE)).getMemoryClass());
Log.d(TAG,"Heap size: " + Runtime.getRuntime().maxMemory());
大きなPNGファイルをロードする場合は、Androidで大きな画像を処理する方法のベストプラクティスを探す必要がありますが、BitmapFactoryのオプションのいくつかは、画像のロード方法に大きな影響を与えることに注意してください。
-inScaledを設定すると、画面密度の高い新しいデバイスでビットマップのメモリサイズが2倍または3倍になる場合があります。
-ARGBタイプは、ピクセルあたり2バイト(RGB_565およびARGB_4444)から4バイト(ARGB_8888)になる可能性があるため、2倍になります。
幸運を。