Androidアプリの構成
Androidアプリは、PC向けとは異なり
4つのコンポーネントで構成される
Activity
これは、アプリの画面を表すクラス
画面の表示、
画面から非表示になったときの各種イベントへ対応可能
Service
これは、画面には表示されず
バックグラウンドで行われるデータ処理
サーバーに近い感覚
天気予報やRSSなどのインターネット上のデータ受信などで使われる
ContentProvider
アプリのデータを外部公開するとき
窓口になるクラス
例えば、電話帳のデータ公開には
このContentProviderを使う
BroadcastReceiver
システムやその他のアプリから
すべてのアプリに向けて送出されるブロードキャストメッセージを受け取る
Receiverクラス
電池の消耗
日付
時刻更新などのタイミングをアプリに通知するときに
このブロードキャストメッセージが使われる
アプリは、これらのコンポーネントを1つ以上実装する必要がある
どれか一つ以上なので
Activityだけとか、Serviceだけのアプリも存在する
そして、これら4種類のコンポーネントは
AndroidManifest.xmlで定義することで
機能として呼び出し可能になる
Androidアプリのパッケージは
.apkファイルになる
このapkファイルは
Claase.dexにまとめられた
実行バイナリ
リソース
AndroidManifest.xml
をzip圧縮したものになる
Claase.dexは
Android SDK でコンパイル済みのJavaクラスファイルをまとめたもの
Androidでは、このファイルを実行バイナリとして
仮想マシンで実行している
Androidアプリ実行の仕組みは
携帯のような少ないメモリ環境のために最適化されたDalvikと呼ばれる仮想マシンで動作する
apkファイルに格納された .dexファイルは
Dalvik VM による実行時に
apkファイルより検出され
Dalvik VMで動作する
仮想マシンで動かすので
初期の非力なハードウェアでは動きが遅かった