開発してるとActivityにBitmapを持たせたいことってよくある でもメンバで持ってると自前で解放しなくてはならない。 Bitmapのメモリ管理はネイティブ側で管理されてるので明示的に開放する必要がある。 マジで?って思ったので実験してみた 実験内容 以下のパターンでBitmapActivityがどのように変化するかを確認 実験1 ImageViewを持たないActivity 実験2 レイアウトでImageViewを持ったActivity 実験3 レイアウトでImageViewを持ち、メンバ変数でもImageViewをもつActivity 実験4 ImageViewを持ち、メンバ変数でBitmapをもつActivity 実験5 Bitmap#recycleの正しい使い方 使うアプリ こんな感じのアプリ 実験2〜4 MainActivity>BitmapActivity>(戻るキーで)
Androidアプリを開発していると、たまにOutOfMemoryに遭遇する。そういう時に便利な、メモリリークの調査方法を紹介する。 以下のサイトを参考にさせてもらった。 Memory Analysis for Android Applications メモリリークを発見!Androidアプリのメモリ解析手法 上記のサイトは、手順がわかりにくい箇所もあったので、補足の意味で書こうと思う。 メモリリークを調査するには? メモリリークを調査する、と言われても、なかなかピンとこない。しかし、やっていることは簡単。 アプリケーションを操作する ガベージコレクション(GC)を走らせる ヒープメモリの状態を取得 ヒープメモリを見る ガベージコレクション(GC)で回収できていないメモリを探す という5つの手順だけ。これで回収できていないメモリがあれば、回収できるように参照を消したりする必要がある(ここが
Android、いかがですか。 今日もOut Of Memory、出していますでしょうか。 そんなあなたに朗報です。 少しでもメモリにやさしいプログラムを。 今日はSoftReferenceのお話です。 トレードオフ Androidで(というよりもJavaで)パフォーマンスに最も影響を与えるのはインスタンス生成の部分ではないでしょうか。 ループの中でインスタンスを生成しようものなら、たちまちあなたのUIは機敏さを失うことになるでしょう。 インスタンス生成はGCの源です。ストップザワールドを少しでも避けるためには極力newなどは控えなければなりません。 となると、インスタンスを作らないことが究極なのですが、全く作らないというわけにはいきません。ならば、一度作ったインスタンスは再利用しようではありませんか。 その時に役に立つのがキャッシュです。一度作ったインスタンスはキャッシュに保持し
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く