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

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()を利用するのがよいらしいです。

 

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

 

 

 

前後の記事

前の記事:

次の記事:

関連の記事

コメントの投稿

  • サイト内検索

新作アプリの紹介

関連サイトの紹介

アンドロイドアプリ開発TIPS
きぐるみカメラ
ふらいぱん
アンドロイドのデザイン集
Page top↑