Android携帯ゲームを作って世界に配信してみよう(番外編) ―― Androidアプリのライフサイクル

山田 元康

tag: 組み込み

エレキ系DIY 2011年12月 8日

ここでは,連載 第3回の記事の補足として,Androidアプリの起動から終了までのライフサイクルと,各タイミングでの処理について説明する.(筆者)

エレキ系DIY・連載「Android携帯ゲームを作って世界に配信してみよう」 バック・ナンバ
第1回 まずは小さなアプリからこつこつ作ってみる
第2回 ゲームの基本構造とタップやフリックの処理を学ぶ
第3回 効果音の入れ方とデータの保存処理を学ぶ

画面を持つ一般的なAndroidアプリを作る際は,Activityクラスをベースに開発します.Activityとは,画面を管理するクラスのことです.もちろん,画面を持たないアプリは,Activityクラスを使わずに作ることができます.この,画面を管理するActivityは,実際に画面の表示を担うViewクラスを管理し,アプリに発生したイベントを受け取ることができます(図A).

図A ActivityクラスとViewクラス

それでは,ゲームのような一つのActivityを持つAndroidアプリが,起動から終了までのライフサイクルの間に,どのように動作するのかを見ていきます.

Androidアプリのライフサイクル上には,下記の三つのトピックがあります.

  • アプリの起動〜ゲームの開始
  • ゲーム・ループでUIイベントを処理
  • Homeボタンが押されたらアプリをバックグラウンドへ移動(再度フォアグラウンドに戻す)

くろまるアプリの起動〜ゲームの開始

アプリの起動からゲームの開始までの流れは,次の通りです.

1)Activityクラスの生成

Androidアプリが起動すると,メイン画面のActivityクラスが,OSにより生成されます.起動時に開く画面に対応するActivityクラスのパッケージ名とクラス名が,AndroidManifest.xmlで指定されています(リストA).今回のアプリであれば,Android OSは,com.spicysoft.sample.dribble.DribbleActivityクラスのインスタンスを生成します.

リストA Activityクラスの生成(AndroidManifest.xmlより抜粋)

AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest ... package="com.spicysoft.sample.dribble" ...>
:
<application ... >
<activity android:name=".DribbleActivity" ...>
:
</activity>
</application>
</manifest>

2)生成されたActivityクラスのonCreateメソッドがコールバックされる

Activityクラスが生成されると,ActivityクラスのonCreateメソッドが呼び出されます.ここでのポイントは,onCreateが複数回呼び出される可能性があるということです.例えば,デバイス(Android機器)を回転させて画面が縦向きから横向きになると,再度このメソッドが呼び出されます.また,アプリがバックグラウンドに行き,他のアプリがメモリを必要とする場合も,いったんActivityクラスは破棄され,再度生成される際に,onCreateメソッドが呼び出されることがあります.

今回のアプリでは,このonCreareメソッドが呼び出されるタイミングで,画面表示を管理するSurfaceViewを生成して,画面に設定しています.

tag: Android, オープン・ソース, プログラミング言語

1 2 3 4 »

関連記事

AltStyle によって変換されたページ (->オリジナル) /