ビットマップに対して一連のメモリを大量に消費する操作を実行するAndroidアプリのデバッグで問題が発生しています。Googleのデバッグのヒントから、私はそれを知っています
デバッガーとガベージコレクターは現在、緩く統合されています。VMは、デバッガーが認識しているオブジェクトが、デバッガーが切断されるまでガベージコレクションされないことを保証します。これにより、デバッガーが接続されている間、時間の経過とともにオブジェクトが蓄積する可能性があります。たとえば、デバッガーが実行中のスレッドを検出した場合、スレッドが終了した後でも、関連付けられたThreadオブジェクトはガベージコレクションされません。
残念ながら、これは、私のアプリがリリースモードで正常に実行されている間、デバッグモードで実行されているメモリを大量に消費するスレッドはガベージコレクターによって無視され、保持されるため、メモリを大量に消費するスレッドが増えるにつれて、より多くのメモリが使用されることを意味します。作成され、必要なメモリの割り当てに失敗したため、アプリがクラッシュしました。
これらのスレッドを収集する必要があることをガベージコレクターに明示的に伝える方法、またはこの問題を回避する他の方法はありますか?