- 542 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 19:15:34 ]
- >>540
どういう設計になってるか分からんから正確にはコメントできないけど、 画像の読み込み全般は基本的にキャンバス(画面)読み込み時に一気に行うべきで、 途中で逐次ロードするようにするべきではない。 当然ながら、外部ストレージから開いたファイルは、閉じなくてはならない。 画面の初期化時にのみ画像が読み込まれるなら、画面を閉じるときに画像は破棄できるオブジェクトなわけで、 キャンバスのメンバとして画像を設定しておけばガベコレ任せでヒープは正しく回収される。 従って、画面の初期化時にヒープを上回る量の画像を読み込まなければいけないような場合は画面設計そのものが間違いであり、 事前にロードする画像の量を減らせるように読み込む画像のパスリストを画面に与えるなりする方法を取るべきである。 また、メニュー画面など主画面とは別個で制御できうるものが存在するなら、 その画面は別のキャンバスとすることによりメモリ削減を図ることが可能である。 ファイルの開きっぱなしを犯してはならない根拠として、「開きっぱなしでアプリケーションが落ちた場合」の挙動が考えられる。 通常、windowsアプリの場合であればOSが落ちたアプリケーションが開いたファイルハンドルは全てcloseしてくれるが、 携帯電話、特にjavaの場合は全く不明である。最悪、開きっぱなしでアプリケーションが終了すればファイル領域のみならずディレクトリ、パーティションまで物理的に壊れることも考えられる。 ファイルはオープン/読み込み/クローズが一体と考えるべきである。 以上。 文句あるならコード晒せ。
|

|