Androidアプリ作成の基本“Activity”とは何か?:Androidで動く携帯Javaアプリ作成入門(2)(1/2 ページ)
本連載で、SDKとEclipseを使ってAndroidの携帯端末で動くJavaアプリを作成し、Android Market配布を目指しましょう。開発者向け実機の登場やOHA参加14社増などの話題で盛り上がるAndroid。今回は、基本Activityとライフサイクルについて。
開発者向け実機、新Android端末、OHAに14社参加
2008年12月7日、グーグルは開発者向けにSIMロックフリーの端末「Android Dev Phone 1」を発売しました(参考:SIMロックフリーAndroid端末、399ドルで提供へ)。それに伴い、「Android SDK 1.0 Release 2」がリリースされました。前回の「Androidアプリの開発環境を準備」をおさらいして、アップデートしてみてください。
また、米T-Mobileの「HTC G1」以外にもAndroid搭載ケータイ(本連載では、携帯電話/PHS/スマートフォンなどの端末をまとめて「ケータイ」と表記します)が発表され始めてきました。LenovoとChina Mobileが共同開発している「OPhone」やオーストラリアの家電メーカーKogan Technologiesが開発した「Agora」というモデルです(参考:Android携帯の二番手「Kogan Agora」登場)。
HTC G1はQWERTYキーボードを持つタイプですが、OPhoneはiPhoneと同じコンセプトで開発されているようで、すべてタッチで操作するようです。どこまで肉薄するのか興味深いです。
さらに、OHAにも動きがありました。メーカーやキャリアなど14社が新たにOHAに加わりました。その中には、東芝やソフトバンクモバイルも含まれていて、なんとも頼もしい限りです(参考:Android推進組織OHAにソフトバンクモバイルほか14社が新たに参加)。
さて、活気が出てきたところで、早速Androidアプリの作り方を見ていきましょう。前回「Android Market配布を目指しEclipseでHelloWorld!」の予告どおり、今回はActivityについてです。今回と次回で、Androidアプリを作るうえで重要なActivityについて説明します。
Androidにおける「Activity」とは?
Activityとは、“Androidアプリの画面”に相当します。ボタンやリストが配置された画面、Webページが表示されている画面、3Dグラフィックスが表示されている画面などはそれぞれがActivityです。
Androidは画面を持たないアプリも作成可能で、その場合はActivityを使用しないのですが、最初は画面のあるアプリから徐々に慣れていきましょう。
Activityはさまざまな表示を行ったり、ユーザーと対話したり、イベントを受け取ったりといろいろなことが可能ですが、今回はまず初めに知っておいてもらいたいライフサイクルを見ていきます。
フロー図で理解するActivityの状態遷移
アプリケーションには“始まり”があって、“終わり”があります。始まってから終わるまでを「ライフサイクル」(状態遷移)といい、Activityにも同様にライフサイクルがあります。
ライフサイクルを分かりやすく図にすると「状態遷移図」(フローチャート図)というものになります。今回はこの状態遷移図をふんだんに使用してActivityのライフサイクルを説明していきます。
さて、Activityのライフサイクルを見ていく前に、ちょっとだけ寄り道します。Activityのライフサイクルは、ちょっとだけ複雑なので、まずは簡単な例を見てみましょう。
バッチプログラムの例
どんなプラットフォームで動作するアプリも、必ず以下の状態を持ちます(経由します)。
- アプリ開始
- アプリ実行中
- アプリ終了
例えば、以下のようなバッチプログラムがあったとします。
echo “hello, android”
このバッチプログラムを実行すると、コンソールに「hello, android」と表示します。このときのバッチプログラムの状態遷移は以下のようになります。
開始して実行して終了です。この状態遷移をよく覚えておいてください。次がActivityの状態遷移です。
Activityの状態遷移
以下がActivityの状態遷移図です。
バッチプログラムに比べるとなにやら複雑ですが、よく見ると基本は同じですね。同じじゃないところは、状態が循環している点、灰色の四角で表されているイベントが通知される点、強制終了されることがある点です。
次ページでは、サンプルアプリを使ってライフサイクルの動作を確認してみましょう。Activityを制御するさまざまなメソッドも紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.