私はアンドロイドに新しいですし、私のアプリは時々outOfMemoryException
という結果に終わりました。したがって、私はどのくらいのRAMが私のアプリを使用して確認し、それを減らそうとする必要があります。私のアプリに必要なラムサイズの大きさを知るには?
つの質問:
- 私のアプリを使用しているRAMサイズを知る方法は?
- 通常、アプリのラムサイズの安全しきい値は
outOfMemoryException
にならないのですか?
ありがとうございました!
私はアンドロイドに新しいですし、私のアプリは時々outOfMemoryException
という結果に終わりました。したがって、私はどのくらいのRAMが私のアプリを使用して確認し、それを減らそうとする必要があります。私のアプリに必要なラムサイズの大きさを知るには?
つの質問:
outOfMemoryException
にならないのですか?ありがとうございました!
Androidスタジオの内蔵memory monitorをチェックしてください。あなたは Androidのモニターの下に見つけること>
を監視し、問題の第二部のために、あなたはActivtyManager
クラスのgetMemoryClass()
メソッドを使用することができます。 android doc ..
現在のデバイスのおおよそのアプリケーションごとのメモリクラスを返します。これは、全体的なシステムを最適に動作させるためにアプリケーションに課すべきメモリの限界を知ることができます。返される値はメガバイト単位です。ベースラインのAndroidメモリクラスは16です(これらのデバイスのJavaヒープ上限になります)。より多くのメモリを持つデバイスの中には、24以上の数値を返すものもあります。
イメージサイズが使用可能なメモリよりも小さいことを確認してから、読み込みを試みます。したがって、OutOfMemoryExceptionを処理する最も効率的な方法は、例外を避けるために大量のデータをメモリにロードしようとしないようにアプリケーションをアーキテクチャすることです。
メモリに画像をロードする前に私のアプリを使用しているRAMのサイズを知るために
Bitmap original = BitmapFactory.decodeStream(getAssets().open("1024x768.jpg"));
ByteArrayOutputStream out = new ByteArrayOutputStream();
original.compress(Bitmap.CompressFormat.PNG, 100, out);
Bitmap decoded = BitmapFactory.decodeStream(new ByteArrayInputStream(out.toByteArray()));
Log.e("Original dimensions", original.getWidth()+" "+original.getHeight());
Log.e("Compressed dimensions", decoded.getWidth()+" "+decoded.getHeight());
1.Howを使用して画像を圧縮? この質問は非常に答えにくいです。異なるタイプのアプリでは異なるメモリが必要です。
2.通常、outOfMemoryExceptionが発生しないように、アプリのRAMサイズの安全なしきい値は何ですか? デバイスごとに異なるしきい値があります。通常は
Runtime rt=Runtime.getRuntime();
long maxMemory=rt.maxMemory();
Log.i("maxMemory:",Long.toString(maxMemory/(1024*1024)));
を使用して、使用できるmaxMemoryのサイズを確認してください。しかし、これは正確ではありません。
ここには良い説明があります:http://stackoverflow.com/questions/2630158/detect-application-heap-size-in-android/9428660#9428660 – Ironman
「OutOfMemory Exception」を取得するタイミングはいつですか? 'ImageView'でイメージをロードしようとすると、この' Exception'が出ますか? – LearnPainLess
奇妙なことですが、不思議なことに、エミュレータで実行しているときに 'OutOfMemory Exception'を取得することはほとんどありませんが、電話で実行しているときは常にOutOfMemory Exceptionを取得します。あなたのアプリの – Einsambr