Androidコードラボに参加した
4/17に行われたコードラボに参加した。
当日は以下のドキュメントをベースに進めました
http://docs.google.com/View?id=dgvgxqkk_73cmrjfjd8
チューターの方々です。いろんなお話を聞かせていただきありがとうございました。
- @t_egg さん
- AsciiのAndroidプログラミング本を書いた方
- @adamrocker さん
- 「Simeji」を作ってる方
- @yanzm さん
- 「Libraroid」作った方
以下はコードラボ前半でお話のあった注意点・Tipsなど
注意点
Tips
- プロジェクトを作る際、テスト用のプロジェクトを自動で作成する
- AVD
- Max VM applicaton heap size
- けっこう触るらしい
- 1つのアプリで16m(多くて24m)くらいしか使えない
- Androidのパースペクティブがある
- まだ使い方がわからないけど、SDカードの中身をみたりログを見たり
- サンプルを作れる
- 「Create project from exsiting sample」
- APIの動作を確認したりするのに便利。ソースも参考になる!
- コンソールで「adb shell」と打つと、コマンドをたたける
- 未確認
- SimpleCursorAdapterを使う場合は、フィールドは「_id」にする
- このあたりはお約束?
- Activetyの操作などをおこなうため、コンストラクタでContextをもらうと良い
- layoutファイルを更新すると、R.jaraに反映される
- Javaからレイアウトを触る場合の定数はココ
- スタイルの参照
- リソースは@、テーマは?で参照
- UIは一つのスレッドで動いている
- 定期的な処理はThreadを作り、Handler経由で呼び出す?
用語
- Activity
- 画面の単位
- フツーは必ず使う
- 画面から消えると動かなくなる
- そーゆー場合はServiceを使う
- ライフサイクルの知識は重要!
- Service
- 裏で動くプログラム
- 画面の状態に依存しない
- Broadcast Receiver
- 何かのイベントを受け取り終了する
- メソッドは1つだけ
- 単純なもの
- ステートレスなもの
- Content Provider
- アドレス帳の内容を公開する場合など?
- 自分の持っている情報を他のアプリケーションに提供する
Activityのライフサイクル
普段はケータイ向けのWebアプリを作っているので、なかなか理解できなかったところ。質問したり実際にプログラムをして感覚的につかむ?
#まだ理解が不十分です
詳しくはこのあたりを参照
アクティビティのライフサイクル
http://developer.android.com/intl/ja/guide/topics/fundamentals.html#actlife
起動時
onCreate->onStart->onResume
起動時はこの順番でメソッドが呼ばれる。
後述するonPause/onStopから復帰する場合はそれぞれ対応するメソッドが呼ばれる。
ここまではすんなり理解できた。次からがAndroidアプリ特有の話。
チューターの方が作成されたサンプルや、自分でコードを書いて感覚をつかむ必要がありそう。
終了時
onPause->onStop
アプリが裏に回るとき(他のアプリが前に出る)などはこの順番でメソッドが呼ばれる。
- onPause
- 他のActivityが呼ばれるタイミング
- 透過色のActivityが表示された場合など、Activityの動作が続いている場合はonPauseが呼ばれる
- 終了時に呼び出されることが保障される
- なので、終了時に必須の処理はココに書くと良い
- onStop
- 他のActivityが表示された場合など、描画が無くなったタイミング
- 終了時に呼び出されることが保障されない
ここまで当日のメモをまとめていたけど、理解不足を改めて痛感。
デ部に参加するため、理解を深めるため、引き続きアプリの作成を進める。