ひつじのにっき

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

Activityとは

Androidで覚えなくてはならない単語、Activity

最初のうちは何者なのかわからず、あやふやな存在でしたが、
理解して分かった内容を簡単ながらメモしておきます。

といっても、すべて把握しているわけではないので
解説サイトへのポインタを示しておきます。

Activityのポイント

  • Javaのクラスである*1
  • 使うにはお作法を覚える必要がある

少なくても、この2点を理解しておけば勘違いがなくなりそう。

まずJavaのクラスであるということ

これはGoogleがアプリケーション開発用に用意した汎用クラスです。
画面の生成・更新(イベント処理など)・消滅など必要な処理を一手に担当しています。*2


何も分からず調べていくと解説サイトによっては
あたかもアプリケーション=Activityと読み取れるような表記のケースもありますが、
# ちゃんと前文を読めば書いているのですが読まずに斜め読みする私が悪いorz

アプリケーション≠Activity

簡素なアプリケーションでは1画面しか持っていないため、
アプリケーション=Activity(Activityクラスを継承したクラスが1つあるだけ)
の場合がありますが、複雑なアプリケーションでは複数のActivityを扱えます。
Activityを持たない(=画面を持たない)アプリケーションもあります。

ライフサイクル

そしてActivityを使うお作法を理解するにはライフサイクルを知ることが必要。
ライフサイクルとは状態遷移のことで、
解説を投げてしまいますが
以下のサイトに詳しい説明があります。
http://android.siprop.org/index.php?cmd=read&page=%CA%D9%B6%AF%B2%F1%2FAndroid%20SDK%20WG%20%C2%E81%B2%F3%20%A5%BB%A5%C3%A5%B7%A5%E7%A5%F3%A1%CA2008.10.25%A1%CB&word=activity
もしくは
http://www.atmarkit.co.jp/fjava/rensai4/android02/android02_1.html


状態遷移に応じたメソッドが呼び出されるから、
どのように遷移するのか理解したうえでプログラミングしてね、ということです。

誰がActivityを管理するのか

複数のスレッドで実行されているActivityを管理するのはActivity Manager*3
Activity Manager以下の動作は未調査。とても気になる部分です。

*1:http://developer.android.com/reference/android/app/Activity.html

*2:3次元描画、文字表示など処理に関わらず画面表示に関わることはActivityが担当。ただし処理自体はActivityのスレッドでやると重くなるので、しないこと

*3:Androidのアプリケーションフレームワークを構成する要素。ライフサイクルの管理