
159
10
章
システムリソースを監視する
メモリには限りがあるので、モバイルデバイスでリソースの使用状況を監視するのは重要なことだ。
この章では、プロファイリングツールを使ってアプリケーションのメモリ使用状況を知るための方法
を説明する。
10.1
Android
におけるメモリの使用状況
Androidプログラマは、C++などの言語を使うときとは異なり、フリーメモリを明示的に確保した
りはしない。それでも、「メモリリーク」を起こすことはあり得る。それは、コードがもう使われてい
ないオブジェクトのリファレンスを抱え込んでいるときで、そうすると多くのオブジェクトがガベー
ジコレクションにかけられなくなる場合がある。変数のスコープの選択が不適切であったり、システ
ムリソースが不要になったあとでハンドルを閉じていなかったり、長時間実行されて時間切れになら
ないプロセスがあったりすると、リークが起きることがある。
Dalvikラ
ンタイムはガベージコレクションをサポートしている。つまり、未使用メモリは一定間隔
でシステムによって自動的に回収される。システムが最終的に面倒を見てくれるなら、メモリの使用
状況のことはまったく無視してよいと考えがちだが、それは間違いだ。メモリ関連の問題は、さまざ
まな形で姿を現す。ビットマップが正しくリサイクルされないために
OutOfMemoryError
が起きるよう
な場合は、問題がはっきりしている。
しかし、メモリの使い方に関連したバグのなかには、これよりもずっとデバッグが難しく、パフォー ...