素人のアンドロイドアプリ開発日記

メモリリーク、メモリ解放の初歩

2012.03.30

androidを利用していると、そんなに大掛かりなアプリではない限り、メモリリークを気にする必要はないかと思います。object-cを使った時は大変だったのですが。。

 

■bitmapのrecycle

まず、bitmapはrecycleをした方がいいの?って事なんですが、

ImageViewとBitmap#recycle覚書 – hidecheckの日記

を見る限り、必要はない様です。つまりはどこにも参照されてない、bitmapに関しては、gcの発動で勝手に片付けてくれるらしいので。

 

■layout.xmlに設置したイメージとかの参照

上記に関しては、基本的には、イメージの取り外しなどを行わなくてもよいようです。(未確認)

 

■イメージ情報の削除

imageviewや、imageButtonに関しては、setImageなどしている場合には、はずした方がよいようです。

.setDrawable(null);

上記のようにnullの追加でもいいかと思います。

 

 

■いつ発動?

activityをいくつも用意する場合には、onDestroy,onStopがよいかと思いますが、そうでない場合にはonPauseかと思うのですが、つけたりはずしたりが面倒なので、自分の作りに合わせておくのがよいかと思います。

 

■結びついたイベント情報。

これはあまり記載されてなかったのですがsetOnClickEventなどは出来る限り消してしまった方がよいかと思います。ここでの参照が残ってAsyncTaskなどが消えない場合などがあります。

(自分で作ったイベントではまりました。。)

 

■***Activity.thisは使わない。

良くクラスでContextが必要な場合にthisとか書いてしまうのですが、これはその結びつけた対象に参照が残りやすくなる為、getApplicationContext()を利用するのがよいらしいです。

 

勝手にメモリを気にしなくてよいのかと思っていたのですが、上記をデフォルトで実施していた方がユーザビリティ的にも優れたものになるかと思います。

 

 

 

同じカテゴリの記事を紹介します

流れる背景を作るステータスバーの色を好きな色にするカメラの権限の取得をするpush通知の実装を確認をする為に、phpを書くしかないListView GridViewに下部にマージンをあけたい時よくつかうメモListViewの設定split で ドット文字列を、bitmapにするクラスを作ってみた。uriから画像の回転角度を取得するgridviewとlistviewで表示にalphaanimationを使ったら動かないのが存在する問題自分で変数を持つクラスを作ってコピーした時に参照まで渡してしまう問題でかい画像が表示されない。という問題interfaceをandroidで使ってみるフルスクリーンでナビゲーションバーまで消せるパソコンを買ったらする事点滅をさせるスクリプトJsonObjectを扱う時のtry catchが邪魔なのでシンプルにする2chのまとめアプリは気を付けろArrayAdapterの使い方setTimeOutを作るarraylistを並び替えAndroidの勉強で気を付けるべき6つの事staticで変数を持ちまわす時Androidで定規を作る時にサイズを確認してみる。TextureViewがゴミから神になった日ListViewの位置を変更しないで更新する方法animationをxmlで設定するのはアホなようだ。listを作るのがめんどい件について矩形の中の点の存在条件についてScrollViewのScrollToが効かない時Twitterのアプリを暗黙的Intentで狙いうちの巻勉強した内容をクラスにしてみてるText三角形の座標の包括判定をプログラムで実装前回作ったeasingを使って、translateアニメーションにイージングをかける。AndroidのデフォルトのアニメーションがダサいのでEasingをJavascriptから持ってきたmatrixを使って、回転をさせる時に中心点をずらす方法destoryとかで割と実行してるメモリリーク対策AnimationDrawable 動かないTextViewをセンター寄せにする。特定のアプリがインストールされているかを判別する方法surfacevierをaddviewすると、一瞬画面が点滅する件アニメーションで高さを変更listviewで押すとデフォルトで背景に色がつくのを抑止するline-heightをアンドロイドのtextviewで設定をする。listviewの区切り線を消すframelayoutだとmarginが効かない@android2.2アンドロイドのimageviewで背景が透けるという糞仕様を発見ウインドウのサイズを取得する方法decodeResourceは劣化する上に糞遅い。decodeResourceは劣化します。もう一度言います。decodeResourceは劣化します。

カテゴリー:androidアプリTips

公開中のアプリ、是非ダウンロードしてみてください

2chまとめのたね

RSSを利用してさまざまなブログの情報をキュレーションしてくれるアプリ

インストールする

ひらがな戦記

OPENGL ES2 を利用したカルタのソーシャルゲーム

インストールする