Presentation is loading. Please wait.

Presentation is loading. Please wait.

2.Androidアプリの基礎知識 2-1 Androidのアーキテクチャ

Similar presentations


Presentation on theme: "2.Androidアプリの基礎知識 2-1 Androidのアーキテクチャ"— Presentation transcript:

1 2.Androidアプリの基礎知識 2-1 Androidのアーキテクチャ
5つのレイヤに分類 アプリケーション アプリケーションフレームワーク ライブラリ Androidランタイム Linuxカーネル

2 (1)アプリケーションレイヤ Androidアプリのレイヤ ①Dialer 電話帳アプリ ②Contacts 連宅先やアプリのショートカットを画面に配置 ③Browser Webサイトの閲覧 ④Maps Googleマップの利用 ⑤Setup アプリの設定 その他ユーザがインストールしたアプリ

3 (2)アプリケーションフレームワークレイヤの主要コンポーネント
①Active Manager アプリケーションのライフサイクル管理 ②Window Manager ウィンドウの管理 ③Content Providers アプリケーション間データ共有の管理 ④View System ユーザインターフェースの管理 ⑤Notification Manager ステータスバーへの警告表示の管理 ⑥Package Manager インストールの管理 ⑦Telephony Manager 通話機能の管理 ⑧Resource Manager リソースの管理 ⑨Location Manager 位置情報の管理 ⑩XMPP Service メッセージングサービスの管理

4 (3)ライブラリレイヤの主要コンポーネント
①Surface Manager 複数アプリケーション間の2D/3Dグラフィックスを合成するライブラリ ②Media Framework ビデオ形式の再生/記録のライブラリ ③SQLite リレーショナルデータベースのライブラリ ④OpenGL / ES 3Dグラフィックスエンジン ⑤Free Type ビットマップとベクターフォントのレンダリングを行うライブラリ ⑥Web Kit ブラウザ表示を行うためのHTMLレンダリングエンジン ⑦SGL 2Dグラフィックエンジン ⑧SSL SSLのライブラリ ⑨libc 標準的なC言語ライブラリ

5 (4)Androidランタイムレイヤの主要コンポーネント
Android の Dalvik 仮想マシンのレイヤ ①Core Libraries Java 言語に準拠したコアライブラリ機能 ②Dalvik 仮想マシン 拡張子.dex フォーマットのバイトコードを実行する仮想マシン

6 (5)Linux カーネルレイヤ Linux ベースのOS ■最もハードウェアに近いレイヤ。 ■特に意識する必要はない。

7 2-2 Android アプリの構成要素 4つの構成要素からなる これらは、必ず1つずつ必要とは限らない Android アプリ
アプリ内の画面、 (UI,イベント処理など) アクティビティ ブロードキャストインテントの受信 (他のアプリやOSからのメッセージ受信) ブロードキャストレシーバ バックグラウンドで動作するプロセス サービス 他のアプリとのやりとりで 利用するデータベース コンテンツプロバイダ

8 Own making Application
(1)アクティビティの概要 ユーザインターフェース、イベント処理 など、ユーザとアプリとの仲介を行う。 詳細は後述 Own making Application Phone Application 部分的な 利用 Own making Activity Phone Activity ①ひとつの画面に1つのActivity ②他のアプリのActivityを使うことができる。 ③他のアプリの任意の画面を開き、その結果を得ることができる。 Call log Activity Contacts Activity Favorites Activity

9 Own making Application
(2)ブロードキャストレシーバの概要 他のアプリケーションやOSからのインテントを 受信し、それに応じた処理を行うオブジェクト 詳細は後述 Own making Application Own making Activity Broadcast Receiver ブロードキャストレシーバがないと、 ブロードキャストを受信しない。 インテントを ブロードキャスト 【例】 ■バッテリ残量が変化したとき、Android はインテント   android.intent.action.BATTERY_CHABGED を全アプリケーションにブロードキャストする。 Android OS

10 (3)サービスの概要 画面表示とは独立してバックグラウンドで 処理を実行し続けることができるオブジェクト
詳細は後述 画面表示とは独立してバックグラウンドで 処理を実行し続けることができるオブジェクト ■ユーザとのやりとりは、Notification(通知書)やToastなど特殊なインターフェースを通じて行う。

11 (4)コンテンツプロバイダの概要 データベース中のデータを他のアプリケーション に提供するオブジェクト
詳細は後述 データベース中のデータを他のアプリケーション に提供するオブジェクト ■大量のデータのやり取りを行う際に用いる。 ■少量のデータはインテントでも可能。

12 (5)インテントの用途 ①アクティビティの起動 Context.start.Activity()メソッドでインテンツを投げる。
詳細は後述 ①アクティビティの起動 Context.start.Activity()メソッドでインテンツを投げる。 ②ブロードキャストレシーバに通知 ⅰ)Context.sendBroadcast()メソッドでインテンツを投げることで、 インテンツのブロードキャストを行う。 ⅱ)各アプリはブロードキャストレシーバで情報を受信する。 ③サービスの起動・接続・停止 ⅰ)Context.startService()でインテンツを投げることで、 サービスと接続する。 ⅱ)Context.stopService()でインテンツを投げることで、 サービスを停止します。

13 (6)アクティビティのライフサイクル T T アクティビティ起動 onCreate() ユーザ操作で アクティビティ に戻る
onStart() onStart() onResume() 実行中 プロセス終了 アクティビティ の前面表示 他のアクティビティ起動 他のアクティビティ でメモリ消費 onPause() アクティビティ の前面表示 アクティビティが非表示 onStop() onDestroy() アクティビティ停止

14 メソッドが呼ばれるタイミング(整理) メソッド 呼ばれるタイミング onCreate アクティビティ生成時
メソッド 呼ばれるタイミング onCreate アクティビティ生成時 onStart アクティビティ表示が開始されたとき onRestart 停止状態から表示再開に遷移するとき onResume ユーザの操作受付を開始したとき onPause ユーザの操作受付を中断したとき onStop アクティビティの表示を中断したとき onDestroy アクティビティが破棄されたとき

15 注意事項 ■端末の向きを変えて縦画面と横画面を切り替えたとき、 次の流れでメソッドが呼ばれる。 onDestroy → onCreate
■アクティビティの終了は   ①明示的にアクティビティの終了命令を実行したとき     (ActivityManager の killBackgroundProcesses メソッドを実行) ②他のアクティビティがメモリを要求したとき すなわち、他のアクティビティに遷移したり、 バックキーで閉じても起動し続ける。

16 2-3 Android アプリ作成の手順 Eclipse ビルド 画面レイアウト (main.xml) ソースコード (*.java)
リソースファイル (*.png, *.mp3等) AndroidManifest.xml Eclipse ビルド 未署名 apk ファイル (*.apk) 【注意】 ■ 画面レイアウトを動的にJavaで生成する場合画面レイアウトはいらない。 ■ リソースファイルは使わなければいらない。 署名 (*.keystore) 署名付き apk ファイル (*.apk) (実機で動かすとき)

17 2-4 Android のクラスライブラリ (1)クラスライブラリとは
クラス : 特定の機能を持ったプログラムを部品化したもの パッケージ : 関連するクラスをまとめたもの クラスライブラリ : 関連するパッケージをまとめたもの Class A Package A Class B Class Library A Class C Package B Class D Class E Package C Class F Class Library B Class G Package D Class H

18 (2)Android で利用できるパッケージ
①Java言語の標準APIサブセット  (文字列のクラスなど) ②Android の独自API   (携帯端末のユーザインターフェースのクラスなど)

19 (3)Java言語の標準API java.awt.font フォント java.awt.io IO java.awt.lang 基本
パッケージ名 説明 java.awt.font フォント java.awt.io IO java.awt.lang 基本 java.awt.math 数値演算 java.awt.net 通信 java.awt.nio 新IO java.awt.security セキュリティ java.awt.sql SQL java.awt.text テキスト java.awt.util ユーティリtィ

20 (4)Android独自のAPI(その1) android リソース android.app アプリケーション
パッケージ名 説明 android リソース android.app アプリケーション android.content 公開情報へのアクセス android.database データベースへのアクセス android.graphics グラフィックス android.hardware ハードウェア制御 android.location 位置情報 android.media メディアプレイヤ android.net 通信

21 Android独自のAPI(その2) android.opengl OpenGL android.os OSシステムサービス
パッケージ名 説明 android.opengl OpenGL android.os OSシステムサービス android.preference プリファレンス android.provider コンテントプロバイダ android.sax SAX android.test テスト android.text テキスト android.util ユーティリティ android.view ビュー android.webkit HTMLレンダリング android.widget ウィジェット

22 APIリファレンスの参照先 以下のサイトで確認することができる。


Download ppt "2.Androidアプリの基礎知識 2-1 Androidのアーキテクチャ"

Similar presentations


Ads by Google