0

私は多くのビットマップに基づくアプリケーションに取り組んでいますが、問題は、一部のデバイスでアプリケーションのテスト中にランタイム例外が発生することです。

これは、ビットマップのサイズが VM の予算を超えていることが原因である可能性があります。

今の問題は、Application.soでのビットマップの使用を減らすことができないということです。可能な解決策は何ですか。

リンクをたどってみましたが、成功しませんでした。

http://voices.yahoo.com/android-virtual-machine-vm-out-memory-error-7342266.html

私を助けてください。

4

3 に答える 3

1
This Happens because calling invalidate() just redraw same bitmaps on to the canvas..
use garbage collector  just try to free memory when these bitmap getting overdraw this 
might help you...:-)
于 2013-03-09T05:43:15.773 に答える
0

別の bitmap configで bitmap のロードを試すことができます。これは、別のプロファイルを選択することで、ヒープに読み込まれたビットマップ オブジェクトのサイズを減らすのに役立つ場合があります。たとえば、アルファ値を保持する必要がない場合は、RGB565 構成を使用します。

ビットマップをリサイクルします。これを見てください、それは良い読み物です。

指定できます

android:largeHeap="true"

あなたのマニフェストファイルに。これにより、アプリケーションにより多くのヒープが許可されますが、それが可能な場合に限られます。API 11 以降で使用できます。

縮小版をユーザーに表示し、必要に応じて操作を許可することもできます (既定のギャラリー ビューアー アプリが行うように)。

また、あなた自身がよくわからないので、あなたが得ているのはまさに「ビットマップが原因で VM 予算を超えた」問題であることを確認してください。

于 2013-03-09T06:31:03.157 に答える
0

使用していないビットマップをリサイクルします。ビットマップを圧縮してメモリ使用量を減らします。このリンクを見てください。http://developer.android.com/training/displaying-bitmaps/load-bitmap.html .

MAT アナライザーを使用して、ビットマップが使用するメモリの量を確認します。

リンクを確認してください。メモリ管理と、MAT を使用してメモリ リークを見つける方法について説明します。http://www.youtube.com/watch?v=_CruQY55HOk .

btimap を圧縮してメモリ使用量を減らしてみてください。

于 2013-03-09T06:11:56.550 に答える