やっぱり、以前のデザインはちょっと読みにくかったのでPC版のデザインを変更しました。
スマホからは変わらないけど。
すっきりして読みやすくなったかな^^
さて、表題の件、
どうも色々やりすぎてCliphWeatherが重くなってきた気がするので、
(て言うか、そう言うご指摘をちょいちょい頂く様になったので)
パフォーマンス改善に取り組もうと思います。
と言う事で、色々ググって見ました。
Javaプログラミングのダイナミックス 第1回:クラスとクラスのロード処理
throw Life – Dalvik VMのGarbage Collection概要
ほぼandroidでアプリ開発デビューなクリフは、
メモリ管理とか、GCとか何となく分かってるつもりだったけど、
5%くらいしか理解してなかったのが良く分かった。
これで、良くここまでアプリ作ってきたなと逆に誉めてあげたい。(コラ)
上記の偉い方々のエントリを拝見すると、ポイントがいくつか見えてきました。
・android(dalvikVM)のGCは世代管理が無い。
⇒アプリ側でGC自体をなるべく発生させない配慮が必要。
・androidの場合はメモリが厳しめなので出来るだけオブジェクトを作らない方がいい。
⇒オブジェクト指向は捨てろ
・どうしても必要なオブジェクトはSoftReferenceに入れて再利用せよ。
(SoftReference:VMがOutOfMemoryになりそうになると優先的にGCされるので安全にキャッシュできる)
・できるだけインスタンスを作らず、スタティックメソッドを使え。
・getter、setterも使わず、直接フィールドを扱うのも速い。
・traceviewを使ってボトルネックを計測せよ。
・画像を使う場合は描画時リサイズは高コストなので事前リサイズすべし。
・オブジェクトのフィールドを繰り返し参照する場合はローカル変数でキャッシュする。
・定数はfinalで宣言する。
ここに書いた事、はっきり言って、
CliphWeatherはほとんど出来てません(涙)
だからこそ、ここから良くなる余地があるって事だけどね!
何れにしても、これらの対応をコツコツやって行く事で、
・メモリ使用量を節約
↓
・GCの発生を抑制
↓
・パフォーマンス改善(処理自体の高速化も含む)
↓
・バッテリー消費も軽減
となるはず!
ホントはデザインカスタマイズオプションの実装を進めるつもりだったけど、
予定変更。
まずは基礎を固める事にします。
I envy your your shoe closet! I also have plastic boxes. If you need more they are $4.99 or were at Home Outfitters. Unafrtunotely Mike doesn’t appreciate all my shoes. I’m still working on him.