ひつじのにっき

mhidakaのにっきです。たまに長文、気が向いたとき更新。

TextViewは、使うな

有限会社シーリス 代表取締役 有山圭二さん

Ustreamはこちら1時間47分ぐらから。http://www.ustream.tv/recorded/6932274

TextViewのクラスのコードは何行?(会場挙手)

  • 500行ぐらい? 1人
  • 2000行ぐらい? 結構
  • 7000行ぐらい? 10人

正解は7224行。コンストラクタ 648行。描画 270行。内部クラス11個。
サブクラスたくさんあるのです。実はサブクラスは全部処理をTextViewに渡しているだけ。
描画処理はTextViewがボタンやチェックボックススタイルで渡すので
(サブクラスは実質何もしていない)

消費メモリ

Heapのフリーメモリを調べて、フリーメモリがどれくらい減るのかを確認した。GCがかかるとメモリが減るので大体100回で平均値取ってみた。

  • Viewは224byte/TextViewは1018byte
  • View x5では2057byte/TextView x5では5821byte。大体3倍。

文字列を1行だけ表示するTextView 324バイト
Viewにしたら? 2375バイト

ただ文字列表示だからTextViewを使えば良いのか?微妙。
機能の制限されたTextViewを使っても良いんじゃないか。

ラベルビュー

1行テキストを表示するViewがApiDemosで入ってる。
TextViewより軽量。文字列を表示したいだけならこちらを利用すると良い