Flex、AIR、Java、Androidなど

1月31日 2009

Androidでの開発について(1)

Posted by: tachibana In: Android| プログラミング

とりあえずサンプル等見ながら最低限のことは触ってみようと思います。

見ているのは公式ドキュメントと、部分的にですが日本語訳を載せてくれているみゅお(muo_jp)によるAndroidのドキュメント翻訳さまのあたりです。

整理のためにも訳ではなく私なりの理解を残していこうと思います。ただ、正しい保証はありません。間違いもあるでしょうから鵜呑みにしないようにして下さい(笑)

■Activity

アプリケーションの中でも一番大きな単位。メインとなるクラスはActivity型かそのサブクラス型。でも一つのアプリケーションに対して一つしかないわけではない。画面への表示は、Activity系のクラスにViewクラスのサブクラスであるテキストやボタン等のコンポーネントをaddすることで行う。まだ分からないが一つのアクティビティは一つのプロセス毎に存在するようなイメージかな?

Googleのドキュメントには「例えばメールを送信するアプリの場合だと、メールを作成する画面、宛先を選ぶ画面、送信済みメールを収納しておく画面、これらは全てActivityです」とある。

表示、イベント、メソッドをある程度の範囲でグループ化し、それの組み合わせでアプリケーションが構成されるようなイメージかな?

また、「Activityは他のActivityがアクティブ化された段階でpause状態になり、ヒストリースタックに格納されます。これらは必要でない場合格納させないようにすることも出来、Androidはホーム画面から起動された全てのアプリケーションに対しヒストリースタックを持ちます」とあります。

■Intent

ActivityからActivityへの移行(だけに限らずかも)の際にAndroidが利用するクラス。Intentは2つの要素、アクションとデータから成る。移行先のActivityに対してどのような操作を行うかの種類分けがアクション、その際に引数のように利用するのがデータかな?

Intentが実際に行う処理なのに対し、IntentFilterはIntentにより定義されたアクションを、データに基づき処理するようなクラス?

新たな画面が表示される時は、ActivityがstartActivity(myIntent)を呼び出し、システムがmyIntentにマッチするIntentFilterを選び、実行する。

こういうような実装になっているのには2つの理由がある。
1、Activity間のデータの移行にIntentをかますことによりActivityの再利用性を高める
2、呼び出し側の実装を変えなくてもIntentFilterの実装を変えることにより結びつけを弱め、違うActivityを呼び出すことができる

■BroadcastReceiver

BroadcastReciverはアプリケーションの外で起こった出来事を感知することができるクラス。例えばどこかのネットワークの範囲に入った時、○○時になった時、着信があった時など。また、Activityは他のアプリケーションに対しsendBroadCastを行い、何かを通知させることができる。

定義はAndroidManifest.xmlにて。スクリプトで起動させる必要はない。

■Service

サービスは表示を持たず、長い時間に渡って存在し続けるもの。他のタスクを行いながらでもバックグラウンドで音楽を再生し続けるような処理はServiceが行っている。Serviceは必要に応じてActivityが作成され、そのServiceにserviceにより引き起こされるUIを用いてアクセスすることも可能である。

■ContentProvider
あるアプリケーションが保持しているデータを他のアプリケーションに渡すような簡易なメソッドを定義するのがContentProvider。

EasyFreeAds Blog News Facebook Twitter Myspace Friendfeed Technorati del.icio.us Digg Google Yahoo Buzz StumbleUpon

Tags:

1 Response to "Androidでの開発について(1)"

Categories

 

2018年9月
« 4月    
 12
3456789
10111213141516
17181920212223
24252627282930

About

Author: tachibana

  • ちょっとしたことはTwitterに書いています。こっちはアプリの公開等の時に更新されます。
  • 最近はもっぱらJavaとObjective Cです。AS3は飽きました。
  • スクリプト言語ではPerlが好きでしたが最近はGAE/Jで何でもやってます。
  • Linuxは自宅サーバー建てるのがやっとのレベルです。前の会社で何日も徹夜してやったのはいい思い出です。
  • アプリへのご要望などご意見等ありましたらお気軽にご連絡下さい。

Alternative content here