2012-02-07 19 views
2

カメラやライブラリから写真を撮って、写真を撮るアンドロイドアプリを開発しています。ポイントは、いくつかの使用後にアプリケーションがクラッシュすることです。私は可能な限りgcを呼び出す可能性があるすべての可能な最適化を行い、アクティビティを終了してキャッシュからアクティビティを削除するときにイメージをnullにしようとしました。しかし、私はまだメモリエラーから出て、アプリケーションがクラッシュします。画像付きのAndroidアプリがクラッシュする

このようなエラーを回避する方法についてご提案がありますか?または、いかにして効率的にドロワブルフォルダからイメージをロードするか。または、アクティブなアクティビティに必要なメモリだけを使用するように、アクティビティが変更されたときに不要なオブジェクトをすべてスローする効率的な方法??

+0

Bitmap.recycle()は、メモリ使用を最適化するためのお友達です。 –

答えて

1

私は同様の問題を抱えていたし、特定の画像にそれらを追跡することになりました。私の400枚の画像のうち、3枚の画像が巨大(ファイルサイズが賢明)な場所です。だから私はあなたの画像のすべてのファイルサイズが似ていることを確認する(通常は直接画像サイズに関連付けられている)

ビットマップはかなり大きいですか?平均的な画像はどれくらい大きいですか?

+0

My Imagesは各アクティビティの壁紙のようなもので、サイズは640x960px、arroundサイズは250kBです。 – Panos

+0

それは問題ではないはずです。私は私の問題を引き起こしたような5メガバイトの画像を持っていた。しかし、彼らはすべて約250kbです –

+0

それらのほとんどはarround 250kBであり、そのうちの8つは1MBのpngです。 – Panos

0

ビットマップオブジェクトを管理しましたか?その場合は、Bitmap.recycle()メソッドを呼び出す必要があります。

Bitmap.recycle() API documentation

+0

はい私はすべての可能な場所にBitmap.recycle()を使用します – Panos

関連する問題