ビットマップ、ビットマップの解放(recycle)、ウィークリファレンス、ガーベジコレクション

BitmapはAndroidで画像を表すクラスで、いわば画像のオブジェクトです。Bitmapクラスを使えば、画像の読み込み、縮小、切り抜きなどの操作ができます。

ビットマップオブジェクトが占有しているメモリリソースを解放するために使用されるメソッド、Bitmap.recycle()。このメソッドを呼び出すことにより、メモリリソースのより効果的な管理のために、ビットマップオブジェクトが占有していたメモリを能動的に解放することができる。通常、ビットマップオブジェクトを使用しなくなった場合は、解放を行うためにrecycle()メソッドを呼び出す必要がある。

JavaではWeakReferencesというクラスを使って弱参照を実装します。弱参照とは、ガベージコレクタによるオブジェクトの回収を妨げないオブジェクトへの参照です。オブジェクトの参照がすべて弱参照になると、次回のガベージコレクション時にオブジェクトは回収されます。WeakReferencesを使うことで、オブジェクトを参照する必要はあるもののガベージコレクションによる回収に影響を与えたくない場合に、弱参照を使って参照することができます。

ガベージコレクションは、システムが自動的に使われなくなったメモリーリソースを集めるプロセスを指します。Javaでは、ガベージコレクターが定期的に実行され、参照されなくなったオブジェクトを調べ、それらの占有しているメモリーを集めます。ガベージコレクターの実行は、System.gc()メソッドを呼び出すことでトリガーできますが、即座にガベージコレクション操作が実行される保証はありません。しかし、弱参照を使用することで、オブジェクトの回収をより適切に制御し、メモリーリークの発生を回避できます。

bannerAds