Android ライフサイクル 〜フレームワークって何?〜

Androidアプリを作成する時に処理をする順番など、どのメソッドで何やれば良い?という疑問が出ると思います。自分はでました(笑)

フレームワークとは?

フレームワークというのは、いろんなものがあって「???」となることが多いです。とりあえずは大まかに下のようなものです。

  1. フレームワークは大まかな部分が実装してある
  2. 作成するアプリによって機能とか画面の作成をする

一言で言えば「必要なところだけ作成すればフレームワークがやってくれる」というものです。
これを使用すると実装する量が格段に減ります。
有名なところだと下のようなものがあります。

  1. Springframework
  2. Gluon Mobile(JavaFX)
  3. JSF(JavaEE)
  4. Play Frame Work
  5. ND4J

とまぁ挙げればきりがないのですが、ここらへんで勘弁していただき。。。

本題へ。。。

Androidでのフレームワーク

フレームワークという概念でAndroidアプリの構成を見て見ると。。。早い話が、下のような処理です。

画面を作成するためのファイル

activity_main.xml

このファイルが下のようなイメージのものを表しています。

Javaの実装

ここに作成したいボタンなどを追加します。
そして、実装するのは下のメソッドです。

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

このアプリは「ハローワールド」を表示するだけなので他のものは実装していません。
なので「フレームワーク」という感じがしないのですが、基本になります。
キーワードになるのは「ライフサイクル」です。

ライフサイクル

Androidアプリのライフサイクルは下のようなイメージになります。

ぱっと見は「は?」となりますが、よくよく見ると「onCreate」というのが初めにあります。このメソッドでアクティビティ(画面)に表示するもの(ボタンなど)を表示したら他の部分を実装していないので飛ばされてしまいます。

つまり、下のような順番で処理が走ります。

  1. onCreate(): 画面作成
  2. onStart() : 画面(アクティビティ)が前(フォアグラウンド)に出てくる時
  3. onResume(): 画面が差異化する時、一度実行してから画面を再度開いた時
  4. onPause(): アクティビティから離れた時に起動する
  5. onStop(): ホームボタンなどで画面(アクティビティ)を閉じた時
    6, onDestroy(): アプリを終了した時

これらの処理を実装することで、アプリの以下のようなところを作成します、言葉を変えると「1〜6までの部分を実装すればアプリとして機能する」ということです。

補足

※画面=アクティビティ

  1. 画面を作成する時に、onCreate()
  2. 画面を起動(前に表示)する時にonStart()
  3. 何かしらの操作をする(クリック)などは自分で実装する必要あり
  4. ホームボタンなどで画面を閉じ、再表示する時onResume()
  5. アプリを停止する時にonDestroy()

こんな順序で処理が走ります。つまりスマホアプリの大まかな操作に対応したところを、自分の作りたいものに実装してやるという感じです。

まとめ

このような形で、フレームワークを使用すると自分の「やりたい」を実現するのに労力を最小限?にしてアプリの作成を行うことができるというわけです。

でわでわ。。。