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

Slides:



Advertisements
Similar presentations
Integrated Personal Page C05823 森本万里子 C05829 西山礼恵 C05899 高木華子.
Advertisements

オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也. 講義計画(あくまで予定) 第 1 回 プログラミング言語の種類と歴史 第 2 回 eclipse の基本操作 第 3 回 eclipse のデバッグ機能 第 4 回 構造化プログラミングの復習 第 5 回 演習 第 6 回 構造化指向からオブジェクト指向へ.
講師 松本 章代. 携帯電話のプラットフォーム オープンプラットフォーム Android のアーキテクチャ LiMo のアーキテクチャ 携帯電話用 OS 携帯電話用の自作アプリ事情 2009/11/142.
モバイルエージェントシステムの実装 エージェント移動(状態とコードの一括移送) エージェント移動の特徴 システム構成 エージェントプログラム
Curlの特徴.
IIS 4.0で開発をするコツ Webアプリケーション構築.
Windows HPC Server を使ってみる
メール暗号化:秘密鍵・公開鍵の作成  作業手順 Windows メール(Vista).
開発者目線でAndroidとiPhoneを比較してみる
目次 WindowsPCの場合 iPadの場合 iPhoneの場合 Androidの場合
ZKプラグインで、Grailsの Viewをリッチに楽しく
Webサービスに関する基本用語 Masatoshi Ohishi / NAOJ & Sokendai
パソコン教室(Word) ワークフロア清柳
JPAを利用した RESTful Webサービスの開発
1.コンピュータと情報処理 p.20 第1章第1節 3.ソフトウェア ソフトウェア 基本ソフトウェア
オペレーティングシステムⅡ 第11回 講師 松本 章代 VirtuaWin・・・仮想デスクトップソフト.
Android演習 白 井  豊.
創造工学設計I 電子情報工学科4年(前期) 8回目 (04/6/2015) 担当 古山彰一 ac
デジタルポートフォリオ作成支援ツール PictFolio 使用マニュアル
Lync 会議 Lync 会議に参加する Lync 2013 クイック リファレンス Lync 会議のスケジュール
Lync 会議 Lync 会議に参加する Lync 会議をスケジュールする 会議のオプションを設定する
Lync Web App クイック リファレンス カード: 会議にコールインする
IE5でアプリケーション開発 東日本計算センター 小野 修司.
エンタープライズアプリケーション II 第10回 / 2006年7月23日
アプレット (Applet)について.
Iアプリプログラミング その1  鳥居秀徳.
Androidの 画面描画機構を チューニングする!
応用情報処理V 第1回 プログラミングとは何か 2004年9月27日.
F5 を押すか、または [スライド ショー] > [最初から] をクリックして、コースを開始してください。
モバイルエージェントの応用 概要 モーバイルエージェントの応用分野 AgentSpaceシステム エージェント移動 応用:ソフトウェアの配信
アプリケーション共有機能 〈参考〉 (図1) (図2)
応用情報処理V 第1回 プログラミングとは何か 2003年9月29日.
バイナリ形式コンポーネントの 収集・解析・検索システムの開発
タブレットのビジネス活用を支援する法人向けファイル共有サービス
UML入門 UML PRESS vol.1 より 時松誠治 2003年5月19日.
4.Eclipseの基本操作 4-1 Eclipseの起動
Windows ストア アプリ 開発概要 (Windows 8.1 対応)
Androidアプリの作成 07A1069 松永大樹.
第8章 Web技術とセキュリティ   岡本 好未.
2004年度 サマースクール in 稚内 JavaによるWebアプリケーション入門
概要 Boxed Economy Simulation Platform(BESP)とその基本構造 BESPの設計・実装におけるポイント!
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
実行時情報に基づく OSカーネルのコンフィグ最小化
オペレーティングシステムⅡ 第13回 講師 松本 章代 VirtuaWin・・・仮想デスクトップソフト.
Linux リテラシ 2006 第5回 SSH と SCP CIS RAT.
すぐできるBOOK -基本設定編-.
ゲーム開発モデルの基礎.
パソコンのしくみ ハードウェア OS(Operating System) アプリケーション NEC DOS
アンドロイド基盤 WLAN設定・接続UI INFOSIATEC.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
JSFによるWebアプリケーション開発 第3回
Firebaseを用いた 位置情報共有システム
UMLの概要とオブジェクト指向の基本概念
高度プログラミング演習 (01).
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
E-精算インストール説明書.
オペレーティングシステムⅡ 第10回 講師 松本 章代 VirtuaWin・・・仮想デスクトップソフト.
vc-1. Visual Studio C++ の基本操作 (Visual Studio C++ の実用知識を学ぶシリーズ)
新入社員トレーニング 発表者名 発表日 このテンプレートは、トレーニング資料をグループ設定で紹介するための開始ファイルとして使用できます。
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
第2回 Webサーバ.
第2回 開発環境とゲーム 05A1030 佐々木 和也.
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
7.アプリケーションの連携 7-1 インテント(intent) 1.アプリケーションの連携とは
7-3 サービスの連携 1.サービスとは 画面を持たずに処理を行う【AndroidManifest.xmlへの追加】 …
5.基本API 5-1 レイアウト ウィジェットの並べ方を指定するには、 パレットのレイアウト(Layoutでは以下の8種類)を配置する。
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(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ィ

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

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 ウィジェット

APIリファレンスの参照先 以下のサイトで確認することができる。 Http://developer.android.com/intl/ja/reference/package.html