!!!Android Sample !!基本 !画面を持つプログラム :activity: :appwidget: !画面を持たないプログラム :service: :contentprovider: !!通知系 !ポップアップ :Toast: Toast.makeText(getApplicationContext(),"message",Toast.LENGTH_LON).show(); :PopupWindow: !ステータスバーに通知 :NortificationManager: !ダイアログ :AlertDialog: :ProgressDialog: !!ファイル !読み込み !書き込み !画像の読み込み !DB DBはSQLiteが組み込まれている。 !!マルチスレッド !Handler !AsyncTask !!ネットワーク !http :html取得: :oauth認証: !xml :パース: !!描画(レイアウトベース) !レイアウト :LinearLayout:横並び、縦並びの単純な形を作るレイアウト。要素にレイアウトも入るので、ある程度は複雑にもできる。ただし、入れ子にしすぎるとオブジェクトが増えすぎて重くなる。 :RelativeLayout:各ビュー毎に互いに関連付けを行う、柔軟な配置が可能なレイアウト。下から配置していくようなレイアウトを作る場合などはこれを使う。記述は面倒だが、オブジェクトの数は少なくすることが可能なため、パフォーマンス向上のために用いる場合がある。 :AbsoluteLayout、FrameLayout:座標を指定して配置するレイアウト。直感で配置していけるが、端末の解像度の違いに対応できなくなることを懸念してか、非推奨とされている。 :ScrollView:縦スクロール用の入れ子ビュー。子要素は1つしか持てないため、中にレイアウトを持たせ、その中にリスト要素などを配置していく。 :HorizontalScrollView:横スクロール用の入れ子ビュー。基本ScrollViewと一緒。ScrollViewを中に持たせて縦横両方のスクロールを可能にすることもできる。 Androidでフリック可能な画面を作る場合はこれを拡張する。 !スタイル !アニメーション !!描画(コーディング) !View :ListView/Gallary/GridViewなど: *各インデックスの描画要素を定義したAdapterを生成し、それをセットする形で描画する。 !簡単な描画 :View: !高速描画 :SurfaceView: :ドラッグできる画像: !3D(OpenGL) :GLSurfaceView: !設計 :AndroidでMVC: Modelが行うべき表示更新指示や、Viewが行うべきデータ更新指示は、ほとんどAdapterが受け持つことになるため、基本的に入力を捌く部分と画面遷移の部分に注力して設計を行うことになる。 画面遷移はIntentを持つ必要があるため、View側で行うことで、ControllerにAndroidの独自の実装を絡ませることなく、Activityから分離できる。 パラメータの受渡しはハッシュで行う場合、利用可能な型が限定されているBundle型が存在する(Activity間でのデータの受渡しで利用されている)。