2011-12-23 5 views
0

私のアプリで写真を処理するための最大の画像解像度を調べようとしています。 その最初のバージョンはすでにオンラインで、いくつかのOutOfMemoryError例外レポートが既に用意されています。電話の処理/メモリ能力を調べる

使用可能なメモリを特定する方法はありますか、別の携帯電話で画像を処理するための最高の解決策(実際には最大の画像解像度)を見つけるための戦略がありますか?

答えて

1

アクティビティマネージャにgetMemoryClass()法を用いて、(メガバイト単位)のアプリためのメモリ制限

ActivityManager am = (ActivityManager)getSystemService(Service.ACTIVITY_SERVICE); 
int maxMemoryInMb = am.getMemoryClass(); 

あなたはそれを使用して、あなたのイメージ(複数可)の最大サイズをcalucateことができ、これは内部の画像フォーマットに依存しますコースBitmap.Config参照)

+0

ありがとうございました。すぐにビットマップオブジェクトのメモリを解放する方法はありますか?使用されているオブジェクトだけがメモリを消費していることを各時点で確認できますか? – stoefln

+0

私はそれに "多分"答えたいと思います。私はこの種のメモリ管理が必要なアプリを書かなかった。もちろん、 'System.gc()'などと呼んでガベージコレクタに指示して、クリーンアップを実行するのに適した時間にすることができます。しかし、私はビットマップを完全に解放するために必要な複数のgc実行があると思います。そしてそれはgcの表示に過ぎないので、無視されるかもしれません。時間がある場合は、[このGoogle I/Oセッション](http://www.google.com/events/io/2011/sessions/memory-management-for-android-apps.html)をご覧ください。しかし、それはいくつかの有用な詳細があることを覚えています。 –

関連する問題