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を生成して,画面に設定しています.

 

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日