Your SlideShare is downloading. ×
Androidアプリケーション開発
入門トレーニング

This material is licensed under the Creative Commons License BY-NC-SA 4.0.

1
Ver2.00(03)
テキストのご利用に関して
・本コースのテキストは、Creative Commons License BY-NC-SA
4.0のもとで提供されます。OESF会員またはコンソーシアムメン
バーでない限り、改変の有無にかかわらず、いかなる形態において...
トレーニングの目的
• Android上で動作するアプリケーションの開発に
必要な知識を身につける
–
–
–
–

Androidが提供する機能
開発環境
開発ツールの使用方法
アプリケーションの実行方法、デバッグ方法

• 演習を通して、ア...
トレーニングスケジュール
• 1日目
–
–
–
–

1章 Androidとは
2章 Androidアプリケーションのアーキテクチャ
3章 開発環境の準備
4章 チュートリアル

• 2日目
– 5章 演習
– 6章 トレーニングのまとめ

...
受講するに当たって必要なスキル
• Java言語の経験がある事
– 2日目の演習では、実際にJavaでプログラミングを行い
ます
– 基本的なJavaの言語仕様について理解があれば問題あ
りません

• Eclipseを使用した経験がある事
–...
1. Androidとは

This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

6
1章の概要
•
•
•
•
•
•

Androidとは?
Androidが注目される理由
Androidで何ができるの?
技術的側面からみたAndroid
アプリケーション開発に必要な環境
アプリケーションの配布方法

This materi...
1.1.Androidとは?
• Androidとは
– 携帯端末用プラットフォームである
– 主に携帯電話のプラットフォームとして利用されてい
る

• Androidの歴史
日付
内容
2003年10月

Android社発足

2005年...
1.1.Androidとは?
続き
日付

内容

2009年 9月

開発ツール Android SDK 1.6 発表

2009年10月

開発ツール Android SDK 2.0 発表

2010年 1月

開発ツール Android ...
1.1.Androidとは?
• Androidに関する主な組織
団体名
Open Handset
Alliance
(OHA)

Open Embeded
Software Foundation
(OESF)

説明
• Androidの普及...
1.2.Androidが注目される理由
• 今、Androidが注目されている
– どれくらい注目されているか?
• Androidを搭載するハードウェアが続々発表されている
ハードウェア

概要

携帯電話

2009年5月 NTTドコモ H...
1.2.Androidが注目される理由
• 今、Androidが注目されている
– どれくらい注目されているか?
• “Android”のWeb検索件数が2008年後半から増加している
(Google Trend調べ)
■主な出来事
A: T-...
1.2.Androidが注目される理由
• Androidが注目される4つの理由
1. Androidは無償で使用できる為、プラットフォーム開
発コストの削減が期待されている
2. 開発ツール、技術ドキュメント、ソースコードを誰
でも無償で入手...
1.2.Androidが注目される理由
• Androidは無償で使用できる為、プラットフォー
ム開発コストの削減が期待されている
– Androidをプラットフォームに採用する事で、プラット
フォーム開発費の削減が期待されている
※ドライバ等...
1.2.Androidが注目される理由
• 開発ツール、技術ドキュメント、ソースコードを
誰でも無償で入手する事ができる
– AndroidはApache License 2.0ライセンスの下、ドキュメ
ント、プログラムソースがオープンに公開さ...
1.2.Androidが注目される理由
• Java SEを知っていれば学習コストが低い
– AndroidアプリケーションはJava SEで開発できる為、
Javaの言語仕様を知っていれば、開発言語に関する学
習は必要ない
– Android...
1.2.Androidが注目される理由
• 携帯電話以外の組込み開発分野へ展開されている
– 携帯電話以外の機器での利用が研究開発されている
• 携帯電話以外にAndroidが移植されているハードウェア
– ネットブック
– ナビゲーションシス...
1.3.Androidで何ができるの?
• 開発者はAndroidが提供する以下の機能を利用し
たアプリケーションを作成する事ができる
– フルブラウザによるWebサイトの閲覧
– 2D/3Dグラフィックスの描画
– 音声、映像、静止画メディア...
1.3.Androidで何ができるの?
• Androidで制御可能なセンサー装置
#

センサー名

概要

1 加速度センサー

加速度を検知する

2 傾きセンサー

方位角、傾斜角(水平状態の上下傾き)、回転角
(水平状態の左右傾き)を...
1.3.Androidで何ができるの?
• Androidアプリケーションの紹介

Webブラウザ

電話

This material is licensed under the Creative
Commons License BY-NC-...
1.3.Androidで何ができるの?
– Webサービスを利用したもの
1.

天気情報表示
– Google Weather APIを使用して天気
情報を表示
①

– 日本語入力(IME)
2.

simeji
– フリック入力を可能にす...
1.3.Androidで何ができるの?
– センサーを利用したもの
3.

Google Sky Map
–

4.

傾きセンサー、磁気センサーを
使用して端末を向けている方向
の星空を表示
Labyrinth Lite
– 傾きセンサーを使...
1.4.技術的側面から見たAndroid
• Androidアプリケーションが動作する環境
– AndroidアプリケーションはAndroidランタイムという仮
想マシンの上で動作する
– Androidランタイムの実行基盤としてLinuxを採...
1.4.技術的側面から見たAndroid
• Androidは5つの要素で構成されている
Androidの構成要素
アプリ
ケーショ
ン

⑤

Home

アド
レス

電話

アプリ
ケー
ショ
ン

ブラウザ

アプリ
ケーショ
ンフレー...
1.4.技術的側面から見たAndroid
• 構成要素の概要
①.Linuxカーネル
• Linux 2.6をベースにAndroid用の変更を加えたLinuxカーネル
• アプリケーションが動作する為に必要な機能を提供しており、ハード
ウェアド...
1.4.技術的側面から見たAndroid
• 構成要素の概要
④.アプリケーションフレームワーク
• アプリケーションの動作やライブラリを使用する為に必要なJava API
を提供する

⑤.アプリケーション
• アプリケーションフレームワーク...
1.4.技術的側面から見たAndroid
• 携帯端末を想定した軽量な実行環境
– Dalvik仮想マシン(Dalvik VM)
• メモリの少ない環境に最適化されたJava VM
– Googleが独自開発した仮想マシン
– メモリの少ない環...
1.4.技術的側面から見たAndroid
– Dalvik VM と Java VM には互換性がない
• 実行ファイルのバイナリ形式が異なる
– Dalvik VM上では、.class、.jar形式のファイルは実行できない
– Java VM...
1.4.技術的側面から見たAndroid
• 従来の携帯アプリケーションに比べて制限が少ない為、
PC上で動作するJavaアプリケーションに近い
iアプリ(Doja-5.x)※1

Androidアプリケーション

Javaのサポート

Jav...
1.5. アプリケーション開発に必要な環
境
項目

必要な環境

OS

Windows XP, Windows Vista(32 / 64 bit)
Mac OS X 10.5.8以降(x86のみ)
Linux(Ubuntu Hardy H...
1.6. アプリケーションの配布方法
• アプリケーションを配布する方法は大きく2つあ
る
– Android Marketから配布する方法
– Android Marketを使用せずに配布する方法
※Android Marketとは?
– A...
1.6. アプリケーションの配布方法
• Android Marketから配布する方法
– 配布手順
1.

Android Marketに開発者アカウント登録を行う
– 開発者アカウントの登録には、Googleアカウントが必要

2.

アプ...
1.6. アプリケーションの配布方法
• Android Marketから配布する方法
– Android Marketに開発者アカウントを登録する手順
1.

開発者登録サイトから、開発者プロフィールの登録を行う
– 登録サイト
» http...
1.6. アプリケーションの配布方法
• Android Marketを使用せずに配布する方法
– アプリケーションファイルを直接配布する
• 配布例
– ホームページでファイルを配布する
– CD、USBメモリ等でファイルを配布する
– LA...
1.6. アプリケーションの配布方法
• Android Marketを使用せずに配布する方法
– インストール方法①
Android端末でアプリケーションファイルをダウンロードしてイン
ストールする
• 手順
1. Android端末のブラウ...
1.6. アプリケーションの配布方法
• Android Marketを使用せずに配布する方法
– インストール方法①

ファイルをク
リックする

ダウンロード
ファイルをク
リックする
Installボタンを
クリックする

手順1

手順...
1.6. アプリケーションの配布方法
• Android Marketを使用せずに配布する方法
– インストール方法②
パソコンとAndroid端末をUSB接続し、インストールコマンドを使
用してインストールする
• 手順
1.
2.

パソコ...
2. Androidアプリケーションの
アーキテクチャ

This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

38
2章の概要
• 主要コンポーネント
• ライフサイクル
• Androidのセキュリティ

This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

...
2.1.主要コンポーネント
• アプリケーションの主要な機能を実現する為、
Androidにはコンポーネントが用意されている
一般的なアプリケーションの主要な機能
ユーザー
インター
フェース

プロセス間
通信

Activity

Inte...
2.1.主要コンポーネント
• 基本となる5つのコンポーネント
1.
2.
3.
4.
5.

アクティビティ(Activity)
インテント(Intent)
ブロードキャストレシーバ(Broadcast Receiver)
サービス(Serv...
2.1.1.アクティビティ
• アクティビティとは?
– Androidアプリケーションの画面は、アクティビティの
上にボタン、チェックボックス等の部品を配置し、画
面を作成する
– 1画面は1つのアクティビティで構成する
– アクティビティは...
2.1.1.アクティビティ
• Androidアプリケーションの画面は、アクティビテ
ィの上にボタン、チェックボックス等の部品を配
置し、画面を作成する
①
②

左図はアクティビティにビュー(ボタン)を配置
している
1. アクティビティ
2...
2.1.1.アクティビティ
• ユーザーの画面入力に応答する処理を作成する
事ができる
– 画面にて操作の情報(例えばボタンをクリックした
)は、ビューを通じてアクティビティに通知される

– アクティビティでは通知に応答する処理を作成する
事...
2.1.1.アクティビティ
• 1画面は1つのアクティビティで構成する
– 複数の画面を持つアプリケーションの場合、画面の数
だけアクティビティを持っている
アプリケーション

アプリケーション
アクティビティ

アクティビティ

アクティビテ...
2.1.1.アクティビティ
• アクティビティが表示される仕組み
– アクティビティは画面に1つだけ表示される
• Androidアプリケーションは、複数のアクティビティを持って
いても、表示できるアクティビティは1つだけである
• 新しいアク...
2.1.1.アクティビティ
• アクティビティの状態は複数あり、操作により状態が変
化する
• アクティビティの状態は3種類定義されている
1. フォアグラウンド状態
• アクティビティが表示されていて、カーソルがあたっている状態

2. バッ...
2.1.1.アクティビティ
• 画面の種類に応じて、アクティビティが用意され
ている
#
作成する画面
– アクティビティの一例

使用するアクティビティクラス

1

単票画面

Activityクラス

2

一覧表示画面

ListAct...
2.1.2.ビュー
• ビューとは?
– ボタン、チェックボックス等の部品である
– 複数のビューをまとめる機能を持つビューを、ビュー
グループと呼ぶ
• アクティビティ、ビュー、ビューグループの関係
ユーザーインターフェース
View

Vi...
2.1.2.ビュー
• 代表的なビュー
概要

View名
TextView

テキストを表示する

Button

基本的な押しボタン

EditText

テキストの入力をする

CheckBox

ON/OFF状態をもつボタン

Spin...
2.1.2.ビュー
• 代表的なビューグループ
名前

概要

LinearLayout

• 水平方向、または垂直方向にビューを配置するビューグ
ループ
• 画面内に収まらない場合は、スクロールバーを表示

TableLayout

• 格子...
2.1.2.ビュー
• 独自のビューを作成できる(カスタムビュー)
– カスタムビューは3種類の方法で作成できる
• 既存のビューを拡張して作成する
– 既存ビューに機能追加したい場合に有効な手段

• 基底クラス(android.view.V...
2.1.3.インテント
• インテントとは?
– コンポーネント間で、処理の依頼や、メッセージをや
りとりする為の仕組み
• インテントを利用できるコンポーネントは、アクティビティ、
ブロードキャストレシーバ、サービス

– インテントを利用す...
2.1.3.インテント
• インテントにより、コンポーネントを呼び出すに
は、インテントに、呼び出し先のコンポーネント
の情報を含めて、Androidに呼び出しを依頼する
– コンポーネントAからコンポーネントBを呼び出す例
イ
ンテント
オブ...
2.1.3.インテント
• インテントの使い方には、明示的なインテントと
暗黙的なインテントの2つの使い方がある
– 明示的なインテント
• 呼び出し先のコンポーネントが明確な場合、コンポーネントを直接指
定して呼び出す方法。同一アプリケーショ...
2.1.3.インテント
– 暗黙的なインテント
• 呼び出し先のコンポーネントを指定せず、アクション(下図の例では
” 電話をかける”を指す)のみを指定する方法。主に他アプリケーショ
ンのコンポーネントを呼び出す場合に使用する(別アプリケーショ...
2.1.3.インテント
– 暗黙的なインテント(続き)
• 暗黙的なインテントを使用すると、Androidに含まれているア
プリケーションと連携して、以下の事ができる
– 電話アプリケーション
» 指定した番号のダイヤルウィンドウを開く
– ア...
2.1.3.インテント
– 暗黙的なインテント(続き)
• 暗黙的なインテントは、システム全体へ向けてブロードキャストする
ことができる。
• ブロードキャストされるインテントは、「システムの起動完了」や「
電池残量の変化が発生した」等といった...
2.1.4.ブロードキャストレシーバ
• ブロードキャストレシーバとは?
– ブロードキャストされたインテントに応答する為の仕
組みがブロードキャストレシーバである
– ブロードキャストレシーバクラスを継承して独自のブ
ロードキャストレシーバを...
2.1.4.ブロードキャストレシーバ
• ブロードキャストレシーバの使用例
– Android端末起動時にメールをチェックする
1.

ブロードキャストレシーバでAndroid端末起動完了時のブロ
ードキャストインテントを受信する

2.

ブ...
2.1.4.ブロードキャストレシーバ
• ブロードキャストレシーバを使用する事で、シス
テムの通知をきっかけとした処理を作ることがで
きる
#
状況
設定値
– Intentクラスの定数名
ブロードキャストされるインテントのアクション定義(一部...
2.1.5.サービス
• サービスとは?
– 独立したスレッドで処理を実行する為の仕組み
– サービスはフォアグラウンドのアクティビティとは別スレッド
で実行される。このため、他アクティビティによる割込みが発
生しても処理を続けることができる
...
2.1.5.サービス
• サービスを使用したアプリケーションの紹介
– DroidTracker
• GPSで取得した位置情報を、SMS、メール、twitterで送信する
アプリケーション
• GPS機能による位置情報の取得をサービスで処理
•...
2.1.6.コンテントプロバイダ
• コンテントプロバイダとは?
– アプリケーションが保持しているデータ※を他アプリ
ケーションからアクセス(検索、追加、更新、削除)
できるようにする仕組み
– 具体的な例
• アプリケーションから通話ログを...
2.1.6.コンテントプロバイダ
• なぜ他アプリケーションのデータにアクセスする
為にコンテントプロバイダを使用するのか?
– アプリケーションの保持するデータは外部アプリケー
ションから直接アクセスできない
セキュリティの壁

アプリケー
...
2.1.6.コンテントプロバイダ
• 外部アプリケーションからのアクセスを実現する
仕組みとしてコンテントプロバイダがある

セキュリティの壁

アプリケー
ション

コンテント
プロバイダ

情報の取得
外部アプリ
ケーション

ストレージ
...
2.1.6.コンテントプロバイダ
• コンテントプロバイダは、安全なアクセスを実
現する為に、インターフェースを取り決めてい
る
– 主なインターフェース
# イベント名

内容

1 検索(query)

データを検索し、
検索結果を返す

...
2.1.6.コンテントプロバイダ
• Androidにはコンテントプロバイダによって公開
されているデータがある
– 公開されているデータ
•
•
•
•
•
•
•

通話ログ
コンタクトリスト
ブラウザのブックマーク
ブラウザの検索履歴
メ...
2.2. ライフサイクル
• ライフサイクルとは?
– アクティビティ、サービスにはオブジェクト生成~
破棄に至るまでのライフサイクルが定義されている
Activity起動

Service起動

フ ア
ォ
グラ
ウンド

実行中

・
"戻...
2.2.1. アクティビティのライフサイクル
• アクティビティのライフサイクル
– アクティビティの3種類の状態遷移が定められている
(フォアグラウンド、バックグラウンド、ビジブル)
– 状態の変化が発生した時、イベントが通知される
Acti...
2.2.1. アクティビティのライフサイクル
• 通知されるイベントを含むライフサイクル
Activity起動

onCreate()
・
"戻る"で元画面に復帰

onStart()

フ ア
ォ
グラ
ウンド

プ
ロセス破棄

onRes...
2.2.1. アクティビティのライフサイクル
• アクティビティでは以下のイベントが通知される
。開発者はこれらの通知に応答する処理を作成で
きる
– 通知されるイベント
# イベント名
内容
1 onCreate

最初の起動時に発生するイベ...
2.2.1. アクティビティのライフサイクル
• アクティビティの通知イベントに関する注意
– onStop、onDestroyは必ず通知される保証はない
• Androidはメモリ不足の状態に
なった場合、使用していないアプ
リケーションプロ...
2.2.2. サービスのライフサイクル
• サービスには右図のようなライフ
サイクルが定義されている
• アクティビティと同じように状態
変化時にイベントが通知される為
、通知に応答する処理を作成する
事ができる
# イベント
名

最初の起動...
2.3. Androidのセキュリティ
• ネットワークや、カメラ等のハードウェアの機能
を利用する為には、アプリケーション毎に利用許
可情報を設定する
– アプリケーションは、OS、アプリケーション、ユーザ
ーデータ等に影響を与える可能性のあ...
2.3. Androidのセキュリティ
• アプリケーションに利用許可を設定する方法
1. AndroidManifest.xmlにuses-permissionタグを追加する
2. android:nameに許可する機能の設定値を設定する
※...
2.3. Androidのセキュリティ
• Androidアプリケーションが以下の機能を利用す
るには許可情報をAndroidManifest.xmlに設定する
許可情報設定値の一例
設定値(android.permission)

説明

I...
2.3. Androidのセキュリティ
• 利用許可情報を含めたアプリケーションは、イン
ストール時に許可する情報の確認が行われる

インターネット接続許
可の確認

This material is licensed under the Cr...
3. 開発環境の準備

This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

79
3章の概要
• インストールする開発ツール
• 各開発ツールのインストール方法
– 開発ツールはC:android_trainingdevtoolsに格納されて
いるものを使用する

• エミュレータの準備
– Android Virtual ...
3.1. インストールする開発ツール
• 本トレーニングでは下記の開発ツールのインスト
ールを行う
ソフトウェア

バージョン

統合開発環境

Eclipse 3.5 (Galileo)

Java SDK

JDK 1.6.0_20

An...
3.2.各開発ツールのインストール方法
• Android SDKのインストール
1. スタートメニューの[すべてのプログラム]-[アクセサリ]の[エクスプロー
ラ] からエクスプローラを起動し、C:android_trainingdevtoo...
3.2.各開発ツールのインストール方法
• 環境変数の設定
1.
2.

スタートメニューの [コントロールパネル]からコントロールパネ
ルを開き、[システム]をダブルクリックする
システムのプロパティウィンドウの[詳細設定]タブの[環境変数]...
3.2.各開発ツールのインストール方法
3.

環境変数ウィンドウの[システムの環境変数]から[Path]を選択し
、[編集]ボタンをクリックする

4.

システム変数の編集ウィンドウの変数値の先頭に
C:android_trainingto...
3.2.各開発ツールのインストール方法
7.

環境変数の変更が反映されていることを確認する
1. スタートメニュー[すべてのプログラム]-[アクセサリ]の[コマンドプロ
ンプト]をクリックし、コマンドプロンプトを起動する
2. コマンドプロン...
3.2.各開発ツールのインストール方法
• Android Development Tools (ADT)のインストール
1.
2.

デスクトップにあるeclipseをダブルクリックし、Eclipseを起動
する
Eclipseのメニュー[H...
3.2.各開発ツールのインストール方法
3.

Proxyを利用しているネットワーク環境の場合、以下の設定を行
う
i.
ii.
iii.

Eclipseのメニュー[Window]から[Preferences]を選択する
Preference...
3.2.各開発ツールのインストール方法
4.

Available SoftwareウィンドウのWork withの入力欄に
http://dl-ssl.google.com/android/eclipse/を入力し、Enterキーを押
す

...
3.2.各開発ツールのインストール方法
• サーバに接続できない場合の代替方法
4-1. Available Softwareウィンドウの[Add...]ボタンをクリックする
4-2. Add Siteウィンドウで[Archive]ボタンをクリ...
3.2.各開発ツールのインストール方法
5.
6.

Available Softwareウィンドウで、Android DDMS、Android
Development Toolsをチェックし、[Next]ボタンをクリックする
Installウ...
3.2.各開発ツールのインストール方法
8.

9.

Installウィンドウで[I Accept the terms of the license agreements]を
チェックし、[Finish]ボタンをクリックする。インストールが開...
3.2.各開発ツールのインストール方法
10. Eclipse再起動後、ツールバーにAndroid Development Toolsのボタ
ンが追加されていることを確認する
10

Android Development Tools
のツール...
3.2.各開発ツールのインストール方法
• Eclipseの設定を行う
– ADTにAndroid SDKを認識させる
1. Eclipseのメニュー[Window]から[Preferences]を選択する

1

This material ...
3.2.各開発ツールのインストール方法
2.

3.
4.

Preferencesウィンドウから[Android]を選択する。選択するとエラ
ーメッセージが表示されるので、[OK]をクリックしてメッセージ
ウィンドウを閉じる
SDK Loca...
3.2.各開発ツールのインストール方法
5.

Proxyを利用しているネットワーク環境の場合、以下の設定を行
う
i.
ii.

Preferencesウィンドウから[Android]-[Launch]を選択する
Launchの画面から[De...
3.2.各開発ツールのインストール方法
6.

Eclipseのメニュー[Window]から[Android SDK and AVD Manager]を
選択する

6

This material is licensed under the ...
3.2.各開発ツールのインストール方法
7.
8.

Android SDK and AVD Managerウィンドウの左カラムからAvailable
Packagesを選択する
右カラムのURLを[+]をクリックして展開し、[SDK Plat...
3.2.各開発ツールのインストール方法
9.

Choose Packages to Installウィンドウにて[Accept]を選択し[Install]
ボタンをクリックする
10. インストールが終了したら、[Close]ボタンをクリック...
3.3.エミュレータの準備
• エミュレータのデバイスイメージであるAndroid
Virtual Device(AVD)を作成する
1.

Eclipseのメニュー[Window]から[Android SDK and AVD Manager]...
3.3.エミュレータの準備
2.

Android SDK Devicesウィンドウの[New]ボタンをクリックする

2

This material is licensed under the Creative Commons Licens...
3.3.エミュレータの準備
3.

Create new Android Virtual Deviceウィンドウ表示されたら、各値
を以下のように設定する
項目名
Name

Android 2.1-update1

Skin

3

defa...
3.3.エミュレータの準備
• エミュレータを起動し、AVDが作成できているこ
とを確認する
1.
2.

EclipseにおいてAndroid SDK and AVD Managerを立ち上げ、AVD Nameが
Defaultを選択し、[S...
3.3.エミュレータの準備
3.

下図のようなエミュレータ画面が表示される事を確認する

This material is licensed under the Creative Commons License BY-NC-SA 4.0.

...
4. チュートリアル

This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

104
4章の概要
• HelloWorldアプリケーションの作成を通じて、開
発ツールの操作方法を習得する
– Android Development Tools(ADT)
– エミュレータ、Android Virtusl Device(AVD)
–...
4.1. ADTでアプリケーションを作成する
• Android Development Tools(ADT)とは?
– AndroidアプリケーションをEclipseで開発する為のPlugin

• ADTが提供する機能
– Androidプ...
実
習

4.1.1. Hello Worldの表示
• 初めにAndroidプロジェクトを作成し、下記のア
プリケーションを作成する
– 完成イメージ
新規作成したプロジェクトは、左図
のようなHello World HelloWorld!と...
実
習

4.1.1. Hello Worldの表示
• Androidプロジェクトを作成する
1.
2.
3.

デスクトップのeclipseをダブルクリックし、Eclipseを起動する
Eclipseのメニュー[File]から[new]-[...
実
習

4.1.1. Hello Worldの表示
3.

[New Android Project]ウィンドウからProject Name、Build Target、
Propertiesに下記を入力する

Project Nameに He...
実
習

4.1.1. Hello Worldの表示
4.
5.

Android Projectが生成され、左図のように表示される
Package ExplorerからHelloWorldプロジェクトを選択し、右クリッ
ク[Run As]-[...
実
習

4.1.1. Hello Worldの表示
6.

エミュレータが別ウィンドウで起動し、下記画面が表示される
ことを確認する
• アプリケーションタイトルが HelloWorld である
• アプリケーションに Hello World...
4.2. 画面デザインを作成する
• 画面デザインをリソースファイルで作成する
– リソースファイルとは?
• ソースコード以外の全て外部ファイル
• Androidプロジェクトでは/res以下に格納されているファイル

– リソースファイルの...
4.2. 画面デザインを作成する
• ADTには、リソースファイルの作成支援機能があ
る
– ADTは3種類のリソースファイルエディタを提供する
• レイアウトエディタ
– 画面デザインリソースファイルの作成をサポート

• リソースエディタ
...
実
習

4.2. 画面デザインを作成する
• レイアウトエディタの機能を使用して、
HelloWorldにボタン、チェックボックス、テキス
ト入力を含む画面を作成する
– 完成イメージ
• ボタン、チェックボックスはレイアウトエデ
ィタのGU...
実
習

4.2.1. リソースファイルの作成
• 画面デザインリソースファイルを開く
1.
2.

Package Explorerからres/layout/main.xmlをダブルクリックする
res/layout/main.xmlのファイ...
実
習

4.2.1. リソースファイルの作成
• レイアウトエディタのLayoutタブで、画面デザイ
ンにボタン、チェックボックスを追加する
1.
2.
3.

[Views]からButtonを選択し、スクリーン上にドラッグ&ドロップ
する
...
実
習

4.2.1. リソースファイルの作成
4.

4.

スクリーン上のCheckBox01を選択し、PropertiesビューからTextプ
ロパティを CheckBox01 から CB1 に変更する
同様に@+id/Button01の...
実
習

4.2.1. リソースファイルの作成
6.

エミュレータが起動し、下記画面が表示されることを確認する
• 画面にボタン、チェックボックスが表示されている
• ボタンの表示文字列が Button01 であることを確認する
• チェック...
実
習

4.2.1. リソースファイルの作成
• レイアウトエディタの<ファイル名>タブで、画面
デザインにテキスト入力を追加する
1.

レイアウトエディタのmain.xmlタブをクリックし、レイアウトエ
ディタにXMLソースが表示されるこ...
実
習

4.2.1. リソースファイルの作成
2.

テキスト入力ビューである EditTextタグをmain.xmlに追加する
■res/layout/main.xml(一部割愛)
<?xml version="1.0" encoding=...
実
習

4.2.1. リソースファイルの作成
3.

Layoutタブに表示を切り替えて、下記のようにEditTextが表示さ
れている事を確認する

表示切替

LayoutタブでEditTextが
表示されている

3
追加したEditT...
実
習

4.2.1. リソースファイルの作成
4.

Package ExplorerからHelloWorldプロジェクトを選択し、右クリッ
ク[Run As]-[Android Application]を選択する
エミュレータが起動し、右画...
4.2.1. リソースファイルの作成
• レイアウトエディタ使用時の注意点
1.

Layoutタブでビューグループ(Layoutに含まれているビュー)を
ドラッグ&ドロップでスクリーンに張り付けても、スクリーン
上にViewGroupが表示さ...
4.2.1. リソースファイルの作成
• リソースファイルを使用した画面作成の仕組み
– アクティビティはRクラスを使用し、画面デザインリソースファイ
ルの内容を取得する
• Rクラス
– ビルド時に自動生成されるクラス
– プログラムからリソ...
4.2.1. リソースファイルの作成
• Rクラスとリソースファイルの関係
– プログラムとリソース情報は、リソースIDで関連付けられている
■HelloWorld.java
setContentView(R.layout.main);
参照
...
実
習

4.3. デザイン以外のリソースを使用す
る
• HelloWorldに追加したボタンの表示文字列
Button01を Hello Button に変更する
• 表示文字列は文字列リソースファイルに設定する
– 完成イメージ

Thi...
4.3. デザイン以外のリソースを使用す
る
• 文字列リソースファイルは、アプリケーションで
使用する文字列を定義したリソースファイルであ
る
1. 画面上に表示す
る文字列を文字
(res/values/strings.xml)
列リソース...
実
習

4.3. デザイン以外のリソースを使用す
る
• 文字列リソースファイルに文字列設定を追加する
1.
2.

Package Explorerからres/values/strings.xmlをダブルクリックする
res/values/...
実
習

4.3. デザイン以外のリソースを使用す
る
3.
4.

Resourcesタブの*Add…+ボタンをクリックし、追加要素の選択画
面を表示する
選択画面から、String を選択し、[OK] ボタンをクリックする

3
4

Th...
実
習

4.3. デザイン以外のリソースを使用す
る
5.
6.

ResourcesタブのResouces
Elementsに String が追加されて
いることを確認する
ResourcesタブのAttributes for Strin...
実
習

4.3. デザイン以外のリソースを使用す
る
7.
8.
9.

Package Explorerからres/layout/main.xmlをダブルクリックする
レイアウトエディタが起動したら、Layoutタブを開いてButton01...
実
習

4.3. デザイン以外のリソースを使用す
る
10. Package ExplorerからHelloWorldプロジェクトを選択し、右クリッ
ク[Run As]-[Android Application]を選択する
11. エミュレー...
4.4. マニフェストファイルを変更する
• マニフェストエディタ
– マニフェストファイルを変更する為の5つの機能がある
• Manifestタブ
– バージョン情報、拡張情報等

• Applicationタブ
– 使用コンポーネント情報、...
4.4. マニフェストファイルを変更する
• マニフェストファイルとは?
– AndroidManifest.xml(アプリケーションに1つ存在)
– アプリケーションに関する以下の情報を定義する
•
•
•
•
•

アプリケーションのアイコ...
4.4.1.アプリケーションにアクティビティ
を追加
• アプリケーションにアクティビティを追加する
ファイル名
追加アクティビティ HelloWorld2.java
追加画面デザイン
リソースファイル

res/layout/
hellowo...
4.4.1.アプリケーションにアクティビティ
を追加
• アプリケーションに追加したアクティビティを利
用できるようにApplicationタブで設定する
1.
2.

Package ExplorerからAndroidManifest.xml...
4.4.1.アプリケーションにアクティビティ
を追加
3.
4.

Application Nodesの*Add…+ボタンをクリックし、追加要素の選択画面を
表示する
選択画面から Activity を選択し、[OK]ボタンをクリックする

4...
4.4.1.アプリケーションにアクティビティ
を追加
5.
6.

Application NodesにActivityが追加されていることを確認する
Attributes for Activityの Name に下の値を入力する

項目名
N...
4.4.2.インターネットへのアクセス許可を
設定
• インターネットへのアクセス許可をPermissonsタ
ブで設定する
1.
2.

Package ExplorerからAndroidManifest.xmlをダブルクリックする
Andr...
4.4.2.インターネットへのアクセス許可を
設定
3.
4.

Permissionsの*Add…+ボタンをクリックし、追加要素の選択画面を表示す
る
選択画面から Uses Permisson を選択し、[OK]ボタンをクリックする

3
...
4.4.2.インターネットへのアクセス許可を
設定
5.
6.

5

Permissionsに Permission が追加されていることを確認する
Attributes for Uses Permissionの Name のプルダウンから
...
4.5. エミュレータの使用方法
• エミュレータとは?
– Android Virtual Device(AVD)を読み込み、パソコン上でのハード
ウェア動作をエミュレートする

• エミュレータでサポートされていない機能・設定
–
–
–
...
4.5. エミュレータの使用方法
• Android Virtual Device(AVD)とは?
– Android端末情報を持っているもの
• Android動作環境情報
(Androidのバージョン毎の動作環境)
• スキン情報(外観、モ...
4.5. エミュレータの使用方法
• エミュレータの操作方法

#

内容

デバイス
キー

1 音量DOWN
2 音量UP

1 2 3
11

4

3 電源

電源入・切

10

5

4 選択ボタ
ン

選択ボタン

9 8 7 6...
4.5. エミュレータの使用方法
• 画面向きの切り替え(Ctrl + F11)
– デバイスの向きに合わせた画面表示

縦長表示(ポートレート)

横長表示(ランドスケープ)

Androidエミュレータに関する詳細情報
http://dev...
4.6. デバッグツールの使用方法
• ADT
– Eclipseのデバッグ機能がAndroidアプリケーション開発で利用でき
る
• ブレークポイント
• ステップ実行

• Dalvik Debug Monitor Services(DDM...
4.6.1.ADTの使用方法
• ブレークポイント/ステップ実行使用方法
– ブレークポイントの設定方法、ステップ実行の方法は全てEclipse
の使用方法と同じ
Debugビューと
ステップ実行

ブレークポイント
による処理中断

This...
4.6.1.ADTの使用方法
• ADTでデバッグする際の注意
– ハードウェア(実際のAndroid端末)を使用してデバッグをするに
はAndroidManifest.xmlに設定が必要
■AndroidManifest.xml
<?xml ...
4.6.2.DDMSの使用方法
• DDMSを起動する2つの方法
–

ddmsコマンドを実行する
1.
2.

スタートメニューの[すべてのプログラム]-[アクセサリ]の[コマンド
プロンプト]を選択し、コマンドプロンプトを起動する
コマンド...
4.6.2.DDMSの使用方法
• DDMSを起動する2つの方法
–

EclipseからDDMSを利用する
1.

Eclipseのメニュー[Window]から[Open Perspective]-*Other…+-[DDMS]を
選択する
...
4.6.2.DDMSの使用方法
• DDMSのデバッグ機能
– モニタリング
1.
2.

アプリケーションが出力するログの参照
リソース使用状況の参照

– エミュレータへのデータ送信
1.
2.
3.

電話発信
SMS送信
位置情報送信
...
4.6.3.アプリケーションログの参照
• アプリケーションログの参照
– LogCatビューから、アプリケーションが出力しているログを参照
する事ができる
LogCat
アプリケーションから出
力されているログ情報を
表示
Logレベル
レベ...
4.6.3.アプリケーションログの参照
• アプリケーションログの参照
– ログを出力するには、android.util.Logクラスのログ出力メソッドを
使用する
■サンプルコード
import android.util.Log;
Log.e...
実
習

4.6.4.Hello Worldからログを出力する
• HelloWorldの起動時にアプリケーションログを出
力
1.
2.

Package ExplorerからHelloWorld.javaをダブルクリックする
HelloWo...
実
習

4.6.4.Hello Worldからログを出力する
3.

HelloWorld#onCreateにログ出力を行う5つのコードを追加する
■HelloWorld.java
package jp.oesf.tutorial;
impo...
実
習

4.6.4.Hello Worldからログを出力する
4.
5.

Package ExplorerからHelloWorldプロジェクトを選択し、右クリッ
ク[Run As]-[Android Application]を選択する
エミ...
実
習

4.6.4.Hello Worldからログを出力する
6.
7.

EclipseのパースぺクティブをDDMSに変更し、DDMSの画面が表示
されることを確認する
LogCatビューに5つのログが出力されていることを確認する
6

7...
4.6.5.リソース使用状況の確認
• リソース使用状況を参照する
– 参照できる情報と表示画面
• infoビュー(コマンド実行時のみ)
– プロセス情報(ID、DalvikVM情報)を表示する

• Threadsビュー
– 動作しているス...
4.6.5.リソース使用状況の確認
• VM Heap情報を参照する

Heap情報を表示したい
プロセスにUpdate設定
をする

下記項目を一覧表示
オブジェクトの型
オブジェクトの個
数
使用メモリ合計
最小使用メモリ
最大使...
実
習

4.6.6.エミュレータへ電話発信
• 電話発信(エミュレータに電話発信する)
1. Emulator Control ビューを選択する
2. Incoming numberに電話番号(09010000001)を入力する
3. Voi...
実
習

4.6.6.エミュレータへ電話発信
4. エミュレータに09010000001から着信されることを確認する
4
09010000001から
エミュレータに着信

This material is licensed under the ...
4.6.7.エミュレータへSMS発信
• SMS送信(エミュレータにSMS送信する)
1. Emulator Control ビューを選択する
2. Incoming numberに電話番号(09010000001)を入力する
3. SMSを選...
4.6.7.エミュレータへSMS発信
4.

エミュレータで09010000001からメッセージが着信していること
を確認する

SMSが着信したこ
とが通知される

Messagingアプリケー
ションに送信したメッ
セージが記録されてい
る...
4.6.8.エミュレータへ位置情報送信
• 位置情報を送信する
1.
2.
3.
4.

Emulator Control ビューを選択する
Manualタブを開き、Decimalを選択する
Longitude(経度)/Latitude(緯度)...
4.6.9.その他エミュレータの機能
• スクリーンショットの取得
1.
2.

[Screen Capture]ボタンをクリックすると、Device Screen Capture
ウィンドウに端末のスクリーンショットが表示される
[Save]...
4.6.9.その他エミュレータの機能
• ガベージコレクションを実行する
1.
2.

Devicesビューからガベージコレクションを実行したプロセスを選
択する
HeapビューのCause GCボタンをクリックする
2
1

This mat...
4.6.9.その他エミュレータの機能
• プロセスを停止する
1.
2.

Devicesビューからガベージコレクションを実行したプロセスを選
択する
DevicesビューのStop Processボタンをクリックする
2
1

This ma...
4.6.9.その他エミュレータの機能
• 端末内のファイル取得/転送/削除を行う
1.
2.

FileExplorerビューを選択する
操作に対応するボタンをクリックする(ファイル取得/転送/削
除)
1

File Explorer
端末内...
5. 実習

This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

169
5.1.概要
実習の進め方
• 5ステップでAndroidアプリケーション作成を学ぶ
5.2.

5.3.

5.4.

• 画面デザインの作り方

• 画面遷移の方法

• データベースの全件検
索と一覧表示

• メニュー画面を作成する

...
5.1.概要
実習の準備
• 実習用スケルトンプロジェクトをEclipseに取り込む
– 格納場所
• C:android_trainingskeleton_project
– ここでは、「RssReaderSkeleton1」を取り込む

–...
5.1.概要
実習アプリケーションの概要
• 実習では、RSSリーダーを佀
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Androidアプリケーション開発入門
Upcoming SlideShare
Loading in...5
×

Androidアプリケーション開発入門

4,241

Published on

OESF公認
Androidアプリケーション開発入門
公式トレーニングテキスト (日本語)

Contributed by:
【作成】ウルシステムズ株式会社
【修正】株式会社リーディング・エッジ社
    
【ご注意】
本テキストは、Creative Commons License BY-NC-SA 4.0のもとで提供されます。OESF会員またはコンソーシアムメンバーでない場合、本編の改変の有無にかかわらず、いかなる形態でも商用目的での利用は禁止されています。

Published in: Technology
0 Comments
18 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,241
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
0
Comments
0
Likes
18
Embeds 0
No embeds

No notes for slide

Transcript of "Androidアプリケーション開発入門"

  1. 1. Androidアプリケーション開発 入門トレーニング This material is licensed under the Creative Commons License BY-NC-SA 4.0. 1 Ver2.00(03)
  2. 2. テキストのご利用に関して ・本コースのテキストは、Creative Commons License BY-NC-SA 4.0のもとで提供されます。OESF会員またはコンソーシアムメン バーでない限り、改変の有無にかかわらず、いかなる形態において も商用目的での利用は禁止されています。 ・本教育プログラムは、その中で提供される教材全てを含め、OESF からのいかなる保証もなしに提供されます。OESFは、本コースの 内容またはコースの詳細な情報を使用することに起因して、または 誤って使用することに起因して何らかの障害や法的な行為が生じて も、いかなる責任も負いません。 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 2
  3. 3. トレーニングの目的 • Android上で動作するアプリケーションの開発に 必要な知識を身につける – – – – Androidが提供する機能 開発環境 開発ツールの使用方法 アプリケーションの実行方法、デバッグ方法 • 演習を通して、アプリケーション開発を体験する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 3
  4. 4. トレーニングスケジュール • 1日目 – – – – 1章 Androidとは 2章 Androidアプリケーションのアーキテクチャ 3章 開発環境の準備 4章 チュートリアル • 2日目 – 5章 演習 – 6章 トレーニングのまとめ This material is licensed under the Creative Commons License BY-NC-SA 4.0. 4
  5. 5. 受講するに当たって必要なスキル • Java言語の経験がある事 – 2日目の演習では、実際にJavaでプログラミングを行い ます – 基本的なJavaの言語仕様について理解があれば問題あ りません • Eclipseを使用した経験がある事 – 演習ではEclipseを使用してプログラミングを実施しま す This material is licensed under the Creative Commons License BY-NC-SA 4.0. 5
  6. 6. 1. Androidとは This material is licensed under the Creative Commons License BY-NC-SA 4.0. 6
  7. 7. 1章の概要 • • • • • • Androidとは? Androidが注目される理由 Androidで何ができるの? 技術的側面からみたAndroid アプリケーション開発に必要な環境 アプリケーションの配布方法 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 7
  8. 8. 1.1.Androidとは? • Androidとは – 携帯端末用プラットフォームである – 主に携帯電話のプラットフォームとして利用されてい る • Androidの歴史 日付 内容 2003年10月 Android社発足 2005年 8月 GoogleがAndroid社を買収 2007年11月 Open Handset Allience(OHA)が発足 開発ツール Android SDK 1.0 リリース 2008年10月 世界初のAndroid搭載スマートフォン 「T-Mobile G1」 発売 2009年 4月 開発ツール Android SDK 1.5r1 リリース 2009年 5月 開発ツール Android SDK 1.5r2 リリース 2009年 7月 NTTドコモより、日本国内初のAndroid携帯 「HT-03A」発売 開発ツール Android SDK 1.5r3 発表 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 8
  9. 9. 1.1.Androidとは? 続き 日付 内容 2009年 9月 開発ツール Android SDK 1.6 発表 2009年10月 開発ツール Android SDK 2.0 発表 2010年 1月 開発ツール Android SDK 2.1 発表 2010年 5月 開発ツール Android SDK 2.2 発表 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 9
  10. 10. 1.1.Androidとは? • Androidに関する主な組織 団体名 Open Handset Alliance (OHA) Open Embeded Software Foundation (OESF) 説明 • Androidの普及促進を目的に設立された団体。対応 端末・ソフトウェアの開発、サービスの普及活動 を行う • Androidの仕様策定、成果物の管理はOHAによって 行われている • T-mobile(米)、Motorola(米)、NTTドコモ(日) 等、71 社が参加(2010年5月現在) • http://www.openhandsetalliance.com/index.html • Androidをベースにした組み込みシステムの共通フ レームワーク、プラットフォームの開発と普及を 目的として設立された団体 • 事業分野に応じて組織されたワーキンググループ を中心に活動をしている • 75社が参加(2010年5月現在) This • http://www.oesf.jp/ material is licensed under the Creative 10 Commons License BY-NC-SA 4.0.
  11. 11. 1.2.Androidが注目される理由 • 今、Androidが注目されている – どれくらい注目されているか? • Androidを搭載するハードウェアが続々発表されている ハードウェア 概要 携帯電話 2009年5月 NTTドコモ HT-03A(HTC Magic)発売 2009年6月 HTC(台) HTC Hero発表 2009年7月 T-Mobile myTouch 3G発売 2010年1月 Google NEXUS ONE発表 2010年4月 NTTドコモ Xperia発表 メディアプレイヤ クリエイティブ Zii EGGを発表 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 11
  12. 12. 1.2.Androidが注目される理由 • 今、Androidが注目されている – どれくらい注目されているか? • “Android”のWeb検索件数が2008年後半から増加している (Google Trend調べ) ■主な出来事 A: T-Mobile G1発表 Android Marketオープン B: OHAがAndroid SDK 2.0リリース C: Google Nexus One発表 D: ソニーエリクソン Xperia X10の 小型版発表 E: マイクロソフトがAndroidを 特許侵害と非難 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 12
  13. 13. 1.2.Androidが注目される理由 • Androidが注目される4つの理由 1. Androidは無償で使用できる為、プラットフォーム開 発コストの削減が期待されている 2. 開発ツール、技術ドキュメント、ソースコードを誰 でも無償で入手する事ができる 3. Java SEを知っていれば学習コストが低い 4. 携帯電話以外の組込み開発分野へ展開されている This material is licensed under the Creative Commons License BY-NC-SA 4.0. 13
  14. 14. 1.2.Androidが注目される理由 • Androidは無償で使用できる為、プラットフォー ム開発コストの削減が期待されている – Androidをプラットフォームに採用する事で、プラット フォーム開発費の削減が期待されている ※ドライバ等のハードウェアに依存するソフトウェアは開発が必要 削減されるコス ト アプリケーション開発費 プラットフォーム開発費 ハードウェア開発費 Android採用前 Android採用後 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 14
  15. 15. 1.2.Androidが注目される理由 • 開発ツール、技術ドキュメント、ソースコードを 誰でも無償で入手する事ができる – AndroidはApache License 2.0ライセンスの下、ドキュメ ント、プログラムソースがオープンに公開されている • ドライバ、GoogleMapsAPIのようなプロプリエタリなモジュー ルは、ソースの提供はされていない – 開発ツールはOHAより無償で入手できる This material is licensed under the Creative Commons License BY-NC-SA 4.0. 15
  16. 16. 1.2.Androidが注目される理由 • Java SEを知っていれば学習コストが低い – AndroidアプリケーションはJava SEで開発できる為、 Javaの言語仕様を知っていれば、開発言語に関する学 習は必要ない – AndroidアプリケーションはEclipseを使用できる為、 Eclipseを使用したことのある開発者であれば開発ツー ルの使用方法を学習するコストは低い This material is licensed under the Creative Commons License BY-NC-SA 4.0. 16
  17. 17. 1.2.Androidが注目される理由 • 携帯電話以外の組込み開発分野へ展開されている – 携帯電話以外の機器での利用が研究開発されている • 携帯電話以外にAndroidが移植されているハードウェア – ネットブック – ナビゲーションシステム(カーナビ等) – TVレコーダ(デジタル放送録画・再生) – その他デジタル家電 » 組込みシステム開発技術展(ESEC2010)で多数展示 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 17
  18. 18. 1.3.Androidで何ができるの? • 開発者はAndroidが提供する以下の機能を利用し たアプリケーションを作成する事ができる – フルブラウザによるWebサイトの閲覧 – 2D/3Dグラフィックスの描画 – 音声、映像、静止画メディアの表示・再生 • 対応フォーマット(MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、 GIF) – – – – – – GSM(2G)、 3Gによる音声通話 Bluetooth、EDGE、WiFiによるデータ通信 カメラ(静止画/動画) GPS 各種センサー SQLiteによるデータストレージ This material is licensed under the Creative Commons License BY-NC-SA 4.0. 18
  19. 19. 1.3.Androidで何ができるの? • Androidで制御可能なセンサー装置 # センサー名 概要 1 加速度センサー 加速度を検知する 2 傾きセンサー 方位角、傾斜角(水平状態の上下傾き)、回転角 (水平状態の左右傾き)を検知する 3 温度センサー 温度を検知する 4 磁気センサー 磁場を検知する 5 明るさセンサー 明るさを検知する 6 接近センサー 対象物との距離を検知する 7 ジャイロスコープ 角速度を検知する 8 圧力センサー 実機に対してかけられた圧力を検知する ※センサーの利用にはハードウェアの対応が必要 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 19
  20. 20. 1.3.Androidで何ができるの? • Androidアプリケーションの紹介 Webブラウザ 電話 This material is licensed under the Creative Commons License BY-NC-SA 4.0. Google Maps 20
  21. 21. 1.3.Androidで何ができるの? – Webサービスを利用したもの 1. 天気情報表示 – Google Weather APIを使用して天気 情報を表示 ① – 日本語入力(IME) 2. simeji – フリック入力を可能にするソフトウ ェアキーボード ※ フリック入力とは、ソフトウェアキーボードの キーを スライドすることで入力文字を選択する入力方 法のこと This material is licensed under the Creative Commons License BY-NC-SA 4.0. ② 21
  22. 22. 1.3.Androidで何ができるの? – センサーを利用したもの 3. Google Sky Map – 4. 傾きセンサー、磁気センサーを 使用して端末を向けている方向 の星空を表示 Labyrinth Lite – 傾きセンサーを使用したゲーム ③ – カメラを利用したもの 5. Layer – カメラで写した実際の映像上に デジタル情報を表示するブラウ ザ ④ This material is licensed under the Creative Commons License BY-NC-SA 4.0. ⑤ 22
  23. 23. 1.4.技術的側面から見たAndroid • Androidアプリケーションが動作する環境 – AndroidアプリケーションはAndroidランタイムという仮 想マシンの上で動作する – Androidランタイムの実行基盤としてLinuxを採用してい る為、アプリケーションはLinux上で動作している ソフトウェア(Androidプラットフォーム) アプリケーション アプリケーション Androidランタイム Linuxカーネル ハードウェア This material is licensed under the Creative Commons License BY-NC-SA 4.0. 23
  24. 24. 1.4.技術的側面から見たAndroid • Androidは5つの要素で構成されている Androidの構成要素 アプリ ケーショ ン ⑤ Home アド レス 電話 アプリ ケー ショ ン ブラウザ アプリ ケーショ ンフレームワーク ④ アクティ ビ ティ ウィ ウ ンド マネージャ コンテンツ プロバイダ ビュー システム 通知 マネージャ パッ ケージ マネージャ 電話 マネージャ リ ソース マネージャ 位置 マネージャ ラ ブラ イ リ ② サーフェ ス マネージャ メ ア ディ フ レームワーク SSL センサー マネージャ Androidラ イ ンタ ム libc SQLite OpenGL |ES FreeType WebKit SGL コア ライブラリ Dalvik VM Linuxカ ーネル ① ディ スプレイ ド ライバ Bluetooth ド ライバ カメ ラ ド ライバ フ ッ ラ シュメ モリ ド イ ラ バ バインダ ( IRC) キーパッ ド ド ライバ USBド ライバ WiFiド ライバ オーディ オ ド ライバ 電源管理 ハード ア ウェ This material is licensed under the Creative Commons License BY-NC-SA 4.0. 24 ③
  25. 25. 1.4.技術的側面から見たAndroid • 構成要素の概要 ①.Linuxカーネル • Linux 2.6をベースにAndroid用の変更を加えたLinuxカーネル • アプリケーションが動作する為に必要な機能を提供しており、ハード ウェアドライバを含んでいる ②.ライブラリ • C/C++で作成されたライブラリ – Webkit(Webブラウザ描画)、SQLite(データベース)、OpenGL/SE(3D描画)等 • アプリケーションが、アプリケーションフレームワーク経由で使用す る ③.Androidランタイム • Androidアプリケーションの実行環境 • Androidで使用するJavaのコアライブラリ、実行環境である仮想マシン (Dalvik VM)が含まれる This material is licensed under the Creative Commons License BY-NC-SA 4.0. 25
  26. 26. 1.4.技術的側面から見たAndroid • 構成要素の概要 ④.アプリケーションフレームワーク • アプリケーションの動作やライブラリを使用する為に必要なJava API を提供する ⑤.アプリケーション • アプリケーションフレームワークを使用して開発されたAndroidアプ リケーション – 具体例として、電話、Webブラウザ、アドレス帳 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 26
  27. 27. 1.4.技術的側面から見たAndroid • 携帯端末を想定した軽量な実行環境 – Dalvik仮想マシン(Dalvik VM) • メモリの少ない環境に最適化されたJava VM – Googleが独自開発した仮想マシン – メモリの少ない環境でも複数のアプリケーションを同時実行でき るように設計されている – Dalvik実行形式フォーマット(.dex) • Dalvik VMでは標準の.class、.jarを.dexに変換して実行 • .classに比べ、稼働時の使用メモリサイズが小さい Java VM .class Dalvik VM 変換 .dex .jar This material is licensed under the Creative Commons License BY-NC-SA 4.0. 27
  28. 28. 1.4.技術的側面から見たAndroid – Dalvik VM と Java VM には互換性がない • 実行ファイルのバイナリ形式が異なる – Dalvik VM上では、.class、.jar形式のファイルは実行できない – Java VM上では、.dex形式のファイルは実行できない Java VM Dalvik VM .class .dex .jar This material is licensed under the Creative Commons License BY-NC-SA 4.0. 28
  29. 29. 1.4.技術的側面から見たAndroid • 従来の携帯アプリケーションに比べて制限が少ない為、 PC上で動作するJavaアプリケーションに近い iアプリ(Doja-5.x)※1 Androidアプリケーション Javaのサポート Java ME Java SE アプリケーショ ン サイズ制限 1MB(機種により異なる) 特になし ヒープメモリ制 限 6MB~15MB(機種により異な る) 16MB(SDKの設定値)※2 通信制限 アプリケーションダウンロード 先以外通信不可 特になし HTTP通信サイズ 制限 リクエストボディ:80KB レスポンスボディ:150KB 特になし クッキー 2009年夏モデルより利用可 利用可 文字コード SJIS UTF-8 ※1 iアプリコンテンツ開発ガイド for DoJa-5.x/5.x LE~ 詳細編 ~ 第3.00版 ScratchPad 永続化方法 ファイル、SQLite ※2 SDKでのデフォルトの設定値となり、機種ごとに変更される場合がある。例えばNexus Oneは24MBである。 This material is licensed under the Creative 29 Commons License BY-NC-SA 4.0.
  30. 30. 1.5. アプリケーション開発に必要な環 境 項目 必要な環境 OS Windows XP, Windows Vista(32 / 64 bit) Mac OS X 10.5.8以降(x86のみ) Linux(Ubuntu Hardy Herson にてテスト済) Java SDK Java SDK 5, Java SDK 6 Android開発ツール Android SDK 統合開発環境 Eclipse 3.4 (Ganymede), 3.5 (Galileo), Android Development Tools(ADT) Plug-in テキストベース 開発環境 Apache Ant(Windows版は1.7, Mac/Linux版は1.6.5以降)  実機は必須ではない。開発用にエミュレータが用意されている  エミュレータではセンサー等、一部利用できないものがある 詳細は http://developer.android.com/intl/ja/sdk/requirements.html This material is licensed under the Creative Commons License BY-NC-SA 4.0. 30
  31. 31. 1.6. アプリケーションの配布方法 • アプリケーションを配布する方法は大きく2つあ る – Android Marketから配布する方法 – Android Marketを使用せずに配布する方法 ※Android Marketとは? – Androidアプリケーションの配布・販売を目的としたサイト – Androidアプリケーションの配布には一般的な方法 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 31
  32. 32. 1.6. アプリケーションの配布方法 • Android Marketから配布する方法 – 配布手順 1. Android Marketに開発者アカウント登録を行う – 開発者アカウントの登録には、Googleアカウントが必要 2. アプリケーションの電子証明書を作成する※1 – 証明書の作成にはKeytool(Java SDK同梱)※2を使用する 3. アプリケーションにデジタル署名する※1 – デジタル署名を行うにはjarsigner (Java SDK同梱)※2を使用する 4. Android Marketにアプリケーションをアップロードする ※1 Eclipseの機能で証明書の作成、署名を行うことができる ※2 各ツールの使用方法については、ツールのマニュアルを参照 – 必要なもの • Googleアカウント This material is licensed under the Creative Commons License BY-NC-SA 4.0. 32
  33. 33. 1.6. アプリケーションの配布方法 • Android Marketから配布する方法 – Android Marketに開発者アカウントを登録する手順 1. 開発者登録サイトから、開発者プロフィールの登録を行う – 登録サイト » http://market.android.com/publish/signup – 入力するプロフィール項目 » » » » 2. 3. 名前 メールアドレス(Google アカウントが必要) WebサイトURL 電話番号 登録料($25)を支払う – 支払はGoogle Checkoutからクレジットカードでのみ可能 配布契約書に同意する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 33
  34. 34. 1.6. アプリケーションの配布方法 • Android Marketを使用せずに配布する方法 – アプリケーションファイルを直接配布する • 配布例 – ホームページでファイルを配布する – CD、USBメモリ等でファイルを配布する – LAN環境等のネットワーク上でファイルを配布する • 配布手順 1. 2. 3. アプリケーションの電子証明書を作成する アプリケーションにデジタル署名する アプリケーションファイルを配布する • インストール方法 1. 2. Android端末でファイルをダウンロードしてインストールする パソコンとAndroid端末をUSB接続し、インストールコマンドを 使用してインストールする This material is licensed under the Creative Commons License BY-NC-SA 4.0. 34
  35. 35. 1.6. アプリケーションの配布方法 • Android Marketを使用せずに配布する方法 – インストール方法① Android端末でアプリケーションファイルをダウンロードしてイン ストールする • 手順 1. Android端末のブラウザでアプリケーションファイルをダウンロー ドする 2. ダウンロード完了後、ダウンロード履歴からアプリケーションフ ァイルをクリックする 3. インストール確認画面から”Install”を押す This material is licensed under the Creative Commons License BY-NC-SA 4.0. 35
  36. 36. 1.6. アプリケーションの配布方法 • Android Marketを使用せずに配布する方法 – インストール方法① ファイルをク リックする ダウンロード ファイルをク リックする Installボタンを クリックする 手順1 手順2 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 手順3 36
  37. 37. 1.6. アプリケーションの配布方法 • Android Marketを使用せずに配布する方法 – インストール方法② パソコンとAndroid端末をUSB接続し、インストールコマンドを使 用してインストールする • 手順 1. 2. パソコンとAndroid端末をUSBケーブルで接続する コマンドプロンプトを起動し、adb install コマンドを実行する >adb install <アプリケーションファイル名(.apk)> ■コマンドプロンプトの入力( C:Simeji3.0.6.apk )をUSB経由でインストール C:>adb install C:Simeji3.0.6.apk // ・・・ 手順1 596 KB/s (1413225 bytes in 2.312s) pkg: /data/local/tmp/Simeji3.0.6.apk Success // ・・・ 手順2 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 37
  38. 38. 2. Androidアプリケーションの アーキテクチャ This material is licensed under the Creative Commons License BY-NC-SA 4.0. 38
  39. 39. 2章の概要 • 主要コンポーネント • ライフサイクル • Androidのセキュリティ This material is licensed under the Creative Commons License BY-NC-SA 4.0. 39
  40. 40. 2.1.主要コンポーネント • アプリケーションの主要な機能を実現する為、 Androidにはコンポーネントが用意されている 一般的なアプリケーションの主要な機能 ユーザー インター フェース プロセス間 通信 Activity Intent 外部通信 ファイル アクセス バック グラウンド 実行 Content Provider Broadcast Receiver Service 実現 Androidの主要コンポーネント This material is licensed under the Creative Commons License BY-NC-SA 4.0. 40
  41. 41. 2.1.主要コンポーネント • 基本となる5つのコンポーネント 1. 2. 3. 4. 5. アクティビティ(Activity) インテント(Intent) ブロードキャストレシーバ(Broadcast Receiver) サービス(Service) コンテントプロバイダ(Content Provider) This material is licensed under the Creative Commons License BY-NC-SA 4.0. 41
  42. 42. 2.1.1.アクティビティ • アクティビティとは? – Androidアプリケーションの画面は、アクティビティの 上にボタン、チェックボックス等の部品を配置し、画 面を作成する – 1画面は1つのアクティビティで構成する – アクティビティは実行中、一時停止といった状態を持 っている This material is licensed under the Creative Commons License BY-NC-SA 4.0. 42
  43. 43. 2.1.1.アクティビティ • Androidアプリケーションの画面は、アクティビテ ィの上にボタン、チェックボックス等の部品を配 置し、画面を作成する ① ② 左図はアクティビティにビュー(ボタン)を配置 している 1. アクティビティ 2. ビュー(ボタン) 左図の画面は以下のような構成になっている 2.ビュー(ボタン) 1.アクティビティ This material is licensed under the Creative Commons License BY-NC-SA 4.0. 43
  44. 44. 2.1.1.アクティビティ • ユーザーの画面入力に応答する処理を作成する 事ができる – 画面にて操作の情報(例えばボタンをクリックした )は、ビューを通じてアクティビティに通知される – アクティビティでは通知に応答する処理を作成する 事ができる • ボタンがクリックされた時の例 3.ボタンがクリック時の処理を実 行 1.ボタンをク リック ボタン 2.通知 アクティビティ This material is licensed under the Creative Commons License BY-NC-SA 4.0. public void onClick(View view) { // 画面にメッセージを表示す る } 44
  45. 45. 2.1.1.アクティビティ • 1画面は1つのアクティビティで構成する – 複数の画面を持つアプリケーションの場合、画面の数 だけアクティビティを持っている アプリケーション アプリケーション アクティビティ アクティビティ アクティビティ アクティビティ 1つの画面で構成されている アプリケーション 3つの画面で構成されている アプリケーション This material is licensed under the Creative Commons License BY-NC-SA 4.0. 45
  46. 46. 2.1.1.アクティビティ • アクティビティが表示される仕組み – アクティビティは画面に1つだけ表示される • Androidアプリケーションは、複数のアクティビティを持って いても、表示できるアクティビティは1つだけである • 新しいアクティビティを表示する場合、前のアクティビティは 隠され、新しいアクティビティが上に表示される Activity"A"が画面に表示 Activity"B"が画面に表示 Activity"C"が画面に表示 画面"B"に遷移 画面"C"に遷移 画面"A"に戻る 画面"B"に戻る This material is licensed under the Creative Commons License BY-NC-SA 4.0. 46
  47. 47. 2.1.1.アクティビティ • アクティビティの状態は複数あり、操作により状態が変 化する • アクティビティの状態は3種類定義されている 1. フォアグラウンド状態 • アクティビティが表示されていて、カーソルがあたっている状態 2. バックグラウンド状態 • アクティビティが別のアクティビティによって隠されている状態 3. ビジブル状態 • アクティビティではない画面(ダイアログ等)が表示されて、アクティビティがカーソ ルを失っている状態(アクティビティはダイアログ越しに表示されている) 画面"B"に遷移 Dialog 1.フォ アグラ ウンド 状態 画面"A"に戻る 2.バッ クグラ ウンド 状態 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 3.ビジブル状態 47
  48. 48. 2.1.1.アクティビティ • 画面の種類に応じて、アクティビティが用意され ている # 作成する画面 – アクティビティの一例 使用するアクティビティクラス 1 単票画面 Activityクラス 2 一覧表示画面 ListActivityクラス 3 地図画面(Google Map) MapActivityクラス 1.単票画面(Activity使用) 2.一覧画面(ListActivity使用) This material is licensed under the Creative Commons License BY-NC-SA 4.0. 3.地図画面(MapActivity使用) 48
  49. 49. 2.1.2.ビュー • ビューとは? – ボタン、チェックボックス等の部品である – 複数のビューをまとめる機能を持つビューを、ビュー グループと呼ぶ • アクティビティ、ビュー、ビューグループの関係 ユーザーインターフェース View View ViewGroup View View ViewGroup Activity This material is licensed under the Creative Commons License BY-NC-SA 4.0. 49
  50. 50. 2.1.2.ビュー • 代表的なビュー 概要 View名 TextView テキストを表示する Button 基本的な押しボタン EditText テキストの入力をする CheckBox ON/OFF状態をもつボタン Spinner リストから1つのアイテムを選択するボタ ン AnalogClock イメージ アナログ時計 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 50
  51. 51. 2.1.2.ビュー • 代表的なビューグループ 名前 概要 LinearLayout • 水平方向、または垂直方向にビューを配置するビューグ ループ • 画面内に収まらない場合は、スクロールバーを表示 TableLayout • 格子状にビューを配置するビューグループ(HTMLのtableタ グに似ている) • 内部にTableRowを指定する TableRow • Table行の中にビューを配置するビューグループ ListView • 1列のリスト上にビューを配置するビューグループ • 画面内に収まらない場合は、スクロールバーを表示 TabHost • タブによって表示を切り替えるビューグループ This material is licensed under the Creative Commons License BY-NC-SA 4.0. 51
  52. 52. 2.1.2.ビュー • 独自のビューを作成できる(カスタムビュー) – カスタムビューは3種類の方法で作成できる • 既存のビューを拡張して作成する – 既存ビューに機能追加したい場合に有効な手段 • 基底クラス(android.view.View)を継承して作成する – まったく新しいビューを作成したい場合にとる手段 – 最も自由にビューの開発が可能 – 一から実装になる為、基底クラスに関する深い知識が必要 • 既存のビューや、ビューグループを組み合わせて、新たなビ ューを作成する ■詳細はAndroid Developersの開発ガイドを参照 http://developer.android.com/intl/ja/guide/topics/ui/custom-components.html This material is licensed under the Creative Commons License BY-NC-SA 4.0. 52
  53. 53. 2.1.3.インテント • インテントとは? – コンポーネント間で、処理の依頼や、メッセージをや りとりする為の仕組み • インテントを利用できるコンポーネントは、アクティビティ、 ブロードキャストレシーバ、サービス – インテントを利用する具体例 • アクティビティAからアクティビティBを起動する(画面遷移) • アドレス帳アプリケーションから電話をかけるアプリケーショ ンへ電話発信を依頼する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 53
  54. 54. 2.1.3.インテント • インテントにより、コンポーネントを呼び出すに は、インテントに、呼び出し先のコンポーネント の情報を含めて、Androidに呼び出しを依頼する – コンポーネントAからコンポーネントBを呼び出す例 イ ンテント オブジェ クト を作成し 送信メ て、 ソッ を実行する ド "B"が起動する インテント • "B"を呼び出す イ ンテント イ ンテント Android This material is licensed under the Creative Commons License BY-NC-SA 4.0. 54
  55. 55. 2.1.3.インテント • インテントの使い方には、明示的なインテントと 暗黙的なインテントの2つの使い方がある – 明示的なインテント • 呼び出し先のコンポーネントが明確な場合、コンポーネントを直接指 定して呼び出す方法。同一アプリケーション内のコンポーネントを呼 び出す場合に使用する(画面遷移等) – コンポーネントを指定して呼び出す例 アプリ ケーショ ン "B"が起動する インテント • "B"を呼び出す イ ンテント イ ンテント Android This material is licensed under the Creative Commons License BY-NC-SA 4.0. 55
  56. 56. 2.1.3.インテント – 暗黙的なインテント • 呼び出し先のコンポーネントを指定せず、アクション(下図の例では ” 電話をかける”を指す)のみを指定する方法。主に他アプリケーショ ンのコンポーネントを呼び出す場合に使用する(別アプリケーション 画面等) • 起動するコンポーネントは各アプリケーションの設定情報からAndroid が決定する – アクションのみ指定して呼び出す例 アプリ ケーショ ン インテント 電話アプリ ケーショ ン • 電話番号xxx-xxxx-xxxx へ電話をかける イ ンテント イ ンテント に指定さ れたアクショ ン ( 電話をかける) から該当するアプ リ ケーショ 要素を選定する ン、 イ ンテント Androidがアプリ ケーショ ンが起動し 対象の要素 、 が実行さ れる Android This material is licensed under the Creative Commons License BY-NC-SA 4.0. 56
  57. 57. 2.1.3.インテント – 暗黙的なインテント(続き) • 暗黙的なインテントを使用すると、Androidに含まれているア プリケーションと連携して、以下の事ができる – 電話アプリケーション » 指定した番号のダイヤルウィンドウを開く – アドレス帳アプリケーション » アドレス帳のリストを表示する » アドレス帳の中から1つのアドレス情報を表示する » 指定のアドレス情報を編集する – Webブラウザ » 指定したURLアドレスのWebサイトをブラウザで表示する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 57
  58. 58. 2.1.3.インテント – 暗黙的なインテント(続き) • 暗黙的なインテントは、システム全体へ向けてブロードキャストする ことができる。 • ブロードキャストされるインテントは、「システムの起動完了」や「 電池残量の変化が発生した」等といった、状況の変化を伝える手段と して使用している • ブロードキャストされたインテントはブロードキャストレシーバのみ が受け取れるインテントとなる This material is licensed under the Creative Commons License BY-NC-SA 4.0. 58
  59. 59. 2.1.4.ブロードキャストレシーバ • ブロードキャストレシーバとは? – ブロードキャストされたインテントに応答する為の仕 組みがブロードキャストレシーバである – ブロードキャストレシーバクラスを継承して独自のブ ロードキャストレシーバを作ることができる This material is licensed under the Creative Commons License BY-NC-SA 4.0. 59
  60. 60. 2.1.4.ブロードキャストレシーバ • ブロードキャストレシーバの使用例 – Android端末起動時にメールをチェックする 1. ブロードキャストレシーバでAndroid端末起動完了時のブロ ードキャストインテントを受信する 2. ブロードキャストレシーバからメールチェックサービスを呼 び出す ※ ブロードキャストレシーバから直接メールチェック処理を実行する事も 可能だが、時間のかかる処理の場合はサービスを使用する方が効率が良 ② メールチェック メールチェッ い ① 起動完了メッセージ クサービス サービス実行 インテン ト ブロードキャス ト レシーバ インテン ト ブロードキャストインテント送 信 This material is licensed under the Creative Commons License BY-NC-SA 4.0. インテント送信 60
  61. 61. 2.1.4.ブロードキャストレシーバ • ブロードキャストレシーバを使用する事で、シス テムの通知をきっかけとした処理を作ることがで きる # 状況 設定値 – Intentクラスの定数名 ブロードキャストされるインテントのアクション定義(一部抜粋 1 ACTION_BOOT_COMPLETED システムの起動が完 android.intent.action. BOOT_COMPLETED ) 了した 2 ACTION_TIME_CHANGED 時刻が設定された android.intent.action.TIME_SET 3 ACTION_TIMEZONE_CHANGED タイムゾーンが変更 された android.intent.action.TIMEZONE_CHANGED 4 ACTION_PACKAGE_ADDED アプリケーションが 新しくインストール された android.intent.action. PACKAGE_ADDED 5 ACTION_PACKAGE_REMOVED アプリケーションが アンインストールさ れた android.intent.action. PACKAGE_REMOVED 6 ACTION_BATTERY_CHANGED 充電中か否か、電池 android.intent.action. BATTERY_CHANGED ■その他の設定値は、以下URLを参照 残量が変更された http://developer.android.com/intl/ja/reference/android/content/Intent.html This material is licensed under the Creative Commons License BY-NC-SA 4.0. 61
  62. 62. 2.1.5.サービス • サービスとは? – 独立したスレッドで処理を実行する為の仕組み – サービスはフォアグラウンドのアクティビティとは別スレッド で実行される。このため、他アクティビティによる割込みが発 生しても処理を続けることができる 音楽を再生(サービス未使用) 音楽を再生(サービス使用) 割込み 割込み メ ール受信により メ ール受信により 中断 中断 アクティ ビティ アクティ ビティ サービス開始 再生開始 サービス 音楽再生 中断に関係なく 処理を 完了 再生開始 アクティビティから直接音楽再生した場合と、サービ ス経由で音楽再生した場合で、メール受信によるアク ティビティの割込みが発生した時の動作の違い 音楽再生 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 62
  63. 63. 2.1.5.サービス • サービスを使用したアプリケーションの紹介 – DroidTracker • GPSで取得した位置情報を、SMS、メール、twitterで送信する アプリケーション • GPS機能による位置情報の取得をサービスで処理 • SMS、メール、twitter送信機能をサービスで処理 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 63
  64. 64. 2.1.6.コンテントプロバイダ • コンテントプロバイダとは? – アプリケーションが保持しているデータ※を他アプリ ケーションからアクセス(検索、追加、更新、削除) できるようにする仕組み – 具体的な例 • アプリケーションから通話ログを参照する • アプリケーションからブラウザのブックマークにWebサイトを 追加する ※ データとはアプリケーションが、ファイル、データベースに永続化している 情報を示す This material is licensed under the Creative Commons License BY-NC-SA 4.0. 64
  65. 65. 2.1.6.コンテントプロバイダ • なぜ他アプリケーションのデータにアクセスする 為にコンテントプロバイダを使用するのか? – アプリケーションの保持するデータは外部アプリケー ションから直接アクセスできない セキュリティの壁 アプリケー ション 情報の取得 外部アプリ ケーション ストレージ 情報の編集 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 65
  66. 66. 2.1.6.コンテントプロバイダ • 外部アプリケーションからのアクセスを実現する 仕組みとしてコンテントプロバイダがある セキュリティの壁 アプリケー ション コンテント プロバイダ 情報の取得 外部アプリ ケーション ストレージ 情報の編集 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 66
  67. 67. 2.1.6.コンテントプロバイダ • コンテントプロバイダは、安全なアクセスを実 現する為に、インターフェースを取り決めてい る – 主なインターフェース # イベント名 内容 1 検索(query) データを検索し、 検索結果を返す インターフェー スが決まってい る コンテント プロバイダ query 2 追加(insert) データを追加す る insert 3 更新 (update) データを更新す る update 4 削除 (delete) データを削除す る 外部アプリ ケーション delete ■詳細はAndroid Developersの開発ガイドを参照 http://developer.android.com/intl/ja/reference/android/content/ContentProvider.html This material is licensed under the Creative Commons License BY-NC-SA 4.0. 67
  68. 68. 2.1.6.コンテントプロバイダ • Androidにはコンテントプロバイダによって公開 されているデータがある – 公開されているデータ • • • • • • • 通話ログ コンタクトリスト ブラウザのブックマーク ブラウザの検索履歴 メディア内の画像 メディア内の映像 メディア内のオーディオ This material is licensed under the Creative Commons License BY-NC-SA 4.0. 68
  69. 69. 2.2. ライフサイクル • ライフサイクルとは? – アクティビティ、サービスにはオブジェクト生成~ 破棄に至るまでのライフサイクルが定義されている Activity起動 Service起動 フ ア ォ グラ ウンド 実行中 ・ "戻る"で元画面に復帰 ・ 他Activityの割込み ・ 端末スリ ープ ・ 長時間無操作状態が続いた ・ Activityがフォ アグラ ウンド に表示( 戻るボタ ン等) プ ロセス破棄 実行中 ・ 他アプリ ケーショ ンから メ を モリ 要求さ れる 一時停止 ビジブル ・ 他アプリ ケーショ ンから メ を モリ 要求さ れる ・ 処理完了 ・ 停止命令 ・ 他Activityの割込み ・ 長時間無操作状態が続いた 状態遷移方向 終了 状態 バッ ク グラ ウンド Service破棄 Activity破棄 アクティビティのライフサイクル under the Creative サービスのライフサイクル This material is licensed Commons License BY-NC-SA 4.0. 69
  70. 70. 2.2.1. アクティビティのライフサイクル • アクティビティのライフサイクル – アクティビティの3種類の状態遷移が定められている (フォアグラウンド、バックグラウンド、ビジブル) – 状態の変化が発生した時、イベントが通知される Activity起動 フ ア ォ グラ ウンド 実行中 ・ "戻る"で元画面に復帰 ・ 他Activityの割込み ・ 端末スリ ープ ・ 長時間無操作状態が続いた ・ Activityがフォ アグラ ウンド に表示( 戻るボタ ン等) プ ロセス破棄 ・ 他アプリ ケーショ ンから メ を モリ 要求さ れる 一時停止 ビジブル ・ 他アプリ ケーショ ンから メ を モリ 要求さ れる ・ 他Activityの割込み ・ 長時間無操作状態が続いた 状態遷移方向 終了 状態 バッ ク グラ ウンド This material isActivity破棄 under the Creative licensed Commons License BY-NC-SA 4.0. 70
  71. 71. 2.2.1. アクティビティのライフサイクル • 通知されるイベントを含むライフサイクル Activity起動 onCreate() ・ "戻る"で元画面に復帰 onStart() フ ア ォ グラ ウンド プ ロセス破棄 onRestart() onResume() 実行中 ・ 他Activityの割込み ・ 端末スリ ープ ・ 長時間無操作状態が続いた onPause() ・ 他アプリ ケーショ ンから メ を モリ 要求さ れる 一時停止 ・ Activityがフ アグラ ォ ウンド ビジブル ・ 他Activityの割込み ・ 長時間無操作状態が続いた に表示( 戻るボタ ン等) onStop() ・ 他アプリ ケーショ ンから メ を モリ 要求さ れる 終了 ・ Activityがフ アグラ ォ ウンド に表示( 戻るボタ ン等) バッ ク グラ ウンド 状態遷移方向 onDestroy() 状態 Activity破棄 This material is licensed under the Creative Commons License BY-NC-SA 4.0. Activityのイ ベント 71
  72. 72. 2.2.1. アクティビティのライフサイクル • アクティビティでは以下のイベントが通知される 。開発者はこれらの通知に応答する処理を作成で きる – 通知されるイベント # イベント名 内容 1 onCreate 最初の起動時に発生するイベント 2 onStart アクティビティが表示される直前に発生するイベント 3 onResume アクティビティが利用可能な状態(アクティブ状態)になる直前 に発生するイベント 4 onPause アクティビティがビジブルになる直前に発生するイベント 5 onStop onPauseの後、しばらく使用しない状態になった場合に発生するイ ベント (メモリ不足の際、イベントが発生しない場合がある) 6 onRestart 終了状態のアクティビティが再度表示される際に発生するベント 7 onDestory アクティビティが破棄される直前に発生するイベント (メモリ不足の際、イベントが発生しない場合がある) This material is licensed under the Creative Commons License BY-NC-SA 4.0. 72
  73. 73. 2.2.1. アクティビティのライフサイクル • アクティビティの通知イベントに関する注意 – onStop、onDestroyは必ず通知される保証はない • Androidはメモリ不足の状態に なった場合、使用していないアプ リケーションプロセスを強制終了 する。 • この場合、アクティビティのライフサ イクルでは、onStop、onDestroy のは通知される事が保証されて いない • 必ず必要な処理の場合はonPause で処理を行う onCreate() ・ "戻る"で元画面に復帰 onStart() onResume() プロセス破棄 実行中 ・ 他Activityの割込み ・ 端末スリ ープ ・ 長時間無操作状態が続いた onPause() ・ 他アプリ ケーショ ンから メ を モリ 要求さ れる 一時停止 ・ 他Activityの割込み ・ 長時間無操作状態が続いた onStop() ・ 他アプリ ケーショ ンから メ を モリ 要求さ れる 使用可能メモリが不足した場合の 遷移ルート This material is licensed under the Creative Commons License BY-NC-SA 4.0. 終了 onDestroy() 73
  74. 74. 2.2.2. サービスのライフサイクル • サービスには右図のようなライフ サイクルが定義されている • アクティビティと同じように状態 変化時にイベントが通知される為 、通知に応答する処理を作成する 事ができる # イベント 名 最初の起動時に発生するイベント 2 onStart サービスが起動される直前に発生するイベ ント 3 onDestroy サービスが破棄される直前に発生するイベ ント onCreate() onStart() 内容 1 onCreate Service起動 実行中 ・ 処理完了 ・ 停止命令 onDestroy() 状態遷移方向 状態 Service破棄 This material is licensed under the Creative Commons License BY-NC-SA 4.0. Activityのイベント 74
  75. 75. 2.3. Androidのセキュリティ • ネットワークや、カメラ等のハードウェアの機能 を利用する為には、アプリケーション毎に利用許 可情報を設定する – アプリケーションは、OS、アプリケーション、ユーザ ーデータ等に影響を与える可能性のある操作はできな いように制限されている This material is licensed under the Creative Commons License BY-NC-SA 4.0. 75
  76. 76. 2.3. Androidのセキュリティ • アプリケーションに利用許可を設定する方法 1. AndroidManifest.xmlにuses-permissionタグを追加する 2. android:nameに許可する機能の設定値を設定する ※ 下記の例では、アプリケーションがインターネットへ接続す る事を許可している ■設定例 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=http://schemas.android.com/apk/res/android android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> ・・・ インターネット接続許可 </application> 情報の設定 <uses-sdk android:minSdkVersion=“7" /> <uses-permission android:name=“android.permission.INTERNET“/> // ・・・ 手順1,2 </manifest> This material is licensed under the Creative Commons License BY-NC-SA 4.0. 76
  77. 77. 2.3. Androidのセキュリティ • Androidアプリケーションが以下の機能を利用す るには許可情報をAndroidManifest.xmlに設定する 許可情報設定値の一例 設定値(android.permission) 説明 INTERNET インターネットへの接続 ACCESS_FINE_LOCATION 位置情報(GPS等)へのアクセス CALL_PHONE 呼び出し画面を使用せずに発呼する READ_CONTACTS アドレス帳の読み込み WRITE_CONTACTS アドレス帳への書き込み CAMERA カメラデバイスへのアクセス その他の設定値は、以下URLを参照 http://developer.android.com/intl/ja/reference/android/Manifest.permission.html This material is licensed under the Creative Commons License BY-NC-SA 4.0. 77
  78. 78. 2.3. Androidのセキュリティ • 利用許可情報を含めたアプリケーションは、イン ストール時に許可する情報の確認が行われる インターネット接続許 可の確認 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 78
  79. 79. 3. 開発環境の準備 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 79
  80. 80. 3章の概要 • インストールする開発ツール • 各開発ツールのインストール方法 – 開発ツールはC:android_trainingdevtoolsに格納されて いるものを使用する • エミュレータの準備 – Android Virtual Device(AVD)の作成 – AVDの動作確認 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 80
  81. 81. 3.1. インストールする開発ツール • 本トレーニングでは下記の開発ツールのインスト ールを行う ソフトウェア バージョン 統合開発環境 Eclipse 3.5 (Galileo) Java SDK JDK 1.6.0_20 Android SDK 2.1 r2 Android Plug-in Android Development Tools (ADT) Ver.0.9.X This material is licensed under the Creative Commons License BY-NC-SA 4.0. 81
  82. 82. 3.2.各開発ツールのインストール方法 • Android SDKのインストール 1. スタートメニューの[すべてのプログラム]-[アクセサリ]の[エクスプロー ラ] からエクスプローラを起動し、C:android_trainingdevtoolsを開く 2. android-sdk_r06-windows.zipのファイルを右クリックし、[プログラムから 開く]-[Compresses (zip) Folders]を選択する 3. zip内のandroid-sdk-windowsフォルダをC:android_trainingtoolsに移動させ る 3 2 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 82
  83. 83. 3.2.各開発ツールのインストール方法 • 環境変数の設定 1. 2. スタートメニューの [コントロールパネル]からコントロールパネ ルを開き、[システム]をダブルクリックする システムのプロパティウィンドウの[詳細設定]タブの[環境変数] ボタンをクリックする 1 2 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 83
  84. 84. 3.2.各開発ツールのインストール方法 3. 環境変数ウィンドウの[システムの環境変数]から[Path]を選択し 、[編集]ボタンをクリックする 4. システム変数の編集ウィンドウの変数値の先頭に C:android_trainingtoolsandroid-sdk-windowstools;を追加する システム変数の編集ウィンドウの[OK]ボタンをクリックする 環境変数ウィンドウの[OK]ボタンをクリックする 5. 6. 追加する 4 3 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 84
  85. 85. 3.2.各開発ツールのインストール方法 7. 環境変数の変更が反映されていることを確認する 1. スタートメニュー[すべてのプログラム]-[アクセサリ]の[コマンドプロ ンプト]をクリックし、コマンドプロンプトを起動する 2. コマンドプロンプトからコマンド set<sp>|<sp>find<sp> “android” を実 行し、Pathの設定が表示されることを確認する(出力結果は、下図を 参照) ※ <sp> ・・・ 半角スペースの意 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 85
  86. 86. 3.2.各開発ツールのインストール方法 • Android Development Tools (ADT)のインストール 1. 2. デスクトップにあるeclipseをダブルクリックし、Eclipseを起動 する Eclipseのメニュー[Help]から[Install New Software…+を選択する 1 2 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 86
  87. 87. 3.2.各開発ツールのインストール方法 3. Proxyを利用しているネットワーク環境の場合、以下の設定を行 う i. ii. iii. Eclipseのメニュー[Window]から[Preferences]を選択する Preferencesウィンドウから[General]-[Network Connections]を選択す る Network Connectionsの画面から「Manual Proxy Configuration」を選択 し、以下の項目を設定する – – HTTP Proxy: Proxyサーバアドレス(右図の例では、192.168.1.1) iii Port : Proxyサーバのポート番号(右図の例では 80) ii i This material is licensed under the Creative Commons License BY-NC-SA 4.0. 87
  88. 88. 3.2.各開発ツールのインストール方法 4. Available SoftwareウィンドウのWork withの入力欄に http://dl-ssl.google.com/android/eclipse/を入力し、Enterキーを押 す 4 http://dl-ssl.google.com/android/eclipse/ This material is licensed under the Creative Commons License BY-NC-SA 4.0. 88
  89. 89. 3.2.各開発ツールのインストール方法 • サーバに接続できない場合の代替方法 4-1. Available Softwareウィンドウの[Add...]ボタンをクリックする 4-2. Add Siteウィンドウで[Archive]ボタンをクリックする 4-3. ファイル名にC:android_trainingdevtoolsforOfflineフォルダ下 のADT-0.9.X.zipを入力し、[開く]ボタンをクリックし、[OK]ボ タンをクリックする 4-1 C:android_trainingdevtoolsforOffline 4-2 4-3 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 89 89
  90. 90. 3.2.各開発ツールのインストール方法 5. 6. Available Softwareウィンドウで、Android DDMS、Android Development Toolsをチェックし、[Next]ボタンをクリックする Installウィンドウで[Next]ボタンをクリックする 5 6 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 90
  91. 91. 3.2.各開発ツールのインストール方法 8. 9. Installウィンドウで[I Accept the terms of the license agreements]を チェックし、[Finish]ボタンをクリックする。インストールが開 始する インストールが完了し、Sowftware Updatesのメッセージが表示 されたら[Yes]をクリックし、Eclipseを再起動する 8 9 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 91
  92. 92. 3.2.各開発ツールのインストール方法 10. Eclipse再起動後、ツールバーにAndroid Development Toolsのボタ ンが追加されていることを確認する 10 Android Development Tools のツールボタンが表示され ている This material is licensed under the Creative Commons License BY-NC-SA 4.0. 92
  93. 93. 3.2.各開発ツールのインストール方法 • Eclipseの設定を行う – ADTにAndroid SDKを認識させる 1. Eclipseのメニュー[Window]から[Preferences]を選択する 1 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 93
  94. 94. 3.2.各開発ツールのインストール方法 2. 3. 4. Preferencesウィンドウから[Android]を選択する。選択するとエラ ーメッセージが表示されるので、[OK]をクリックしてメッセージ ウィンドウを閉じる SDK Locationに「 C:android_trainingtoolsandroid-sdk -windows」 を入力する Preferenesウィンドウ上部のエラーメッセージが消えていること を確認し、[OK]ボタンをクリックする 3 2 エラーメッセージ が表示されていな い事を確認する C:android_trainingtoolsandroid-sdkwindows 4 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 94
  95. 95. 3.2.各開発ツールのインストール方法 5. Proxyを利用しているネットワーク環境の場合、以下の設定を行 う i. ii. Preferencesウィンドウから[Android]-[Launch]を選択する Launchの画面から[Default Emulator Options]にProxy設定を追加する (書式: -http-proxy<sp><Proxy サーバアドレス>:<ポート番号> ) – Proxyサーバアドレスが「 http://192.168.1.1 」、ポート番号が「80」の 場合、 以下のように設定する ii » -http-proxy<sp>http://192.168.1.1:80 <sp> ・・・半角スペース の意 i This material is licensed under the Creative Commons License BY-NC-SA 4.0. 95
  96. 96. 3.2.各開発ツールのインストール方法 6. Eclipseのメニュー[Window]から[Android SDK and AVD Manager]を 選択する 6 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 96
  97. 97. 3.2.各開発ツールのインストール方法 7. 8. Android SDK and AVD Managerウィンドウの左カラムからAvailable Packagesを選択する 右カラムのURLを[+]をクリックして展開し、[SDK Platform Android 2.1, API-7, revision 2]にチェックを入れ、[Install Selected]ボタンを クリックする ※ オフライン環境では講師の指示に従いC:android_trainingdevtoolsforOffline の platformフォルダをC:android_trainingtoolsandroid-sdk-windowsにコピーすること 7 8 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 97
  98. 98. 3.2.各開発ツールのインストール方法 9. Choose Packages to Installウィンドウにて[Accept]を選択し[Install] ボタンをクリックする 10. インストールが終了したら、[Close]ボタンをクリックし、インス トールを終了する。 10 9 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 98
  99. 99. 3.3.エミュレータの準備 • エミュレータのデバイスイメージであるAndroid Virtual Device(AVD)を作成する 1. Eclipseのメニュー[Window]から[Android SDK and AVD Manager]を 選択する 1 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 99
  100. 100. 3.3.エミュレータの準備 2. Android SDK Devicesウィンドウの[New]ボタンをクリックする 2 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 100
  101. 101. 3.3.エミュレータの準備 3. Create new Android Virtual Deviceウィンドウ表示されたら、各値 を以下のように設定する 項目名 Name Android 2.1-update1 Skin 3 default Target 4. 設定値 WVGA800 設定完了後、[Create AVD] ボタン をクリックする 4 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 101
  102. 102. 3.3.エミュレータの準備 • エミュレータを起動し、AVDが作成できているこ とを確認する 1. 2. EclipseにおいてAndroid SDK and AVD Managerを立ち上げ、AVD Nameが Defaultを選択し、[Start]ボタンをクリックする。 Launch Optionウィンドウにて[Scale display to real size]にチェックを入れ 、[Screen Size (in)]に 6 と入力し[Launch]ボタンをクリックする 1 環境により適宜最適サイ ズを入力する 2 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 102
  103. 103. 3.3.エミュレータの準備 3. 下図のようなエミュレータ画面が表示される事を確認する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 103
  104. 104. 4. チュートリアル This material is licensed under the Creative Commons License BY-NC-SA 4.0. 104
  105. 105. 4章の概要 • HelloWorldアプリケーションの作成を通じて、開 発ツールの操作方法を習得する – Android Development Tools(ADT) – エミュレータ、Android Virtusl Device(AVD) – Dalvik Debug Monitor Services (DDMS) This material is licensed under the Creative Commons License BY-NC-SA 4.0. 105
  106. 106. 4.1. ADTでアプリケーションを作成する • Android Development Tools(ADT)とは? – AndroidアプリケーションをEclipseで開発する為のPlugin • ADTが提供する機能 – Androidプロジェクトの作成 – Androidアプリケーションの実行・デバッグ – リソースファイルの作成支援 • リソースファイルについては本節で解説 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 106
  107. 107. 実 習 4.1.1. Hello Worldの表示 • 初めにAndroidプロジェクトを作成し、下記のア プリケーションを作成する – 完成イメージ 新規作成したプロジェクトは、左図 のようなHello World HelloWorld!と表 示されるアプリケーションとして作 成される This material is licensed under the Creative Commons License BY-NC-SA 4.0. 107
  108. 108. 実 習 4.1.1. Hello Worldの表示 • Androidプロジェクトを作成する 1. 2. 3. デスクトップのeclipseをダブルクリックし、Eclipseを起動する Eclipseのメニュー[File]から[new]-[Other]を選択する Newウィンドウの[Android]-[Android Project]を選択し[Next]ボタン をクリックする 3 2 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 108
  109. 109. 実 習 4.1.1. Hello Worldの表示 3. [New Android Project]ウィンドウからProject Name、Build Target、 Propertiesに下記を入力する Project Nameに HelloWorld を入力する Build Targetで Android 2.1-update1 をチェッ クする Propertiesの各項目に以下を入力する Application Name :HelloWorld Package Name :jp.oesf.tutorial Create Activity :HelloWorld MinSDK Version :7 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 109
  110. 110. 実 習 4.1.1. Hello Worldの表示 4. 5. Android Projectが生成され、左図のように表示される Package ExplorerからHelloWorldプロジェクトを選択し、右クリッ ク[Run As]-[Android Application]を選択する 4 5 5 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 110
  111. 111. 実 習 4.1.1. Hello Worldの表示 6. エミュレータが別ウィンドウで起動し、下記画面が表示される ことを確認する • アプリケーションタイトルが HelloWorld である • アプリケーションに Hello World, HelloWorld! と表記されている 6 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 111
  112. 112. 4.2. 画面デザインを作成する • 画面デザインをリソースファイルで作成する – リソースファイルとは? • ソースコード以外の全て外部ファイル • Androidプロジェクトでは/res以下に格納されているファイル – リソースファイルの種類(一部抜粋) # リソースファイル 内容 1 res/drawable(-Xdpi)/*.* 画像ファイル(.png、.jpeg、.gif) 2 res/layout/*.xml 画面デザイン情報(ex. main.xml) 3 res/values/colors.xml 色情報 4 res/values/dimens.xml サイズ情報(ex. 5px,10dip,20pt) 5 res/values/strings.xml 文字列情報 ■リソースファイルに関する説明 http://developer.android.com/intl/ja/guide/topics/resources/resources-i18n.html This material is licensed under the Creative Commons License BY-NC-SA 4.0. 112
  113. 113. 4.2. 画面デザインを作成する • ADTには、リソースファイルの作成支援機能があ る – ADTは3種類のリソースファイルエディタを提供する • レイアウトエディタ – 画面デザインリソースファイルの作成をサポート • リソースエディタ – 画面デザインリソースファイル以外のリソースファイルの作成をサポー ト • マニフェストエディタ – AndroidManifest.xmlの作成をサポート This material is licensed under the Creative Commons License BY-NC-SA 4.0. 113
  114. 114. 実 習 4.2. 画面デザインを作成する • レイアウトエディタの機能を使用して、 HelloWorldにボタン、チェックボックス、テキス ト入力を含む画面を作成する – 完成イメージ • ボタン、チェックボックスはレイアウトエデ ィタのGUI機能を利用して追加する • テキスト入力は、画面デザインリソースファ イル(XMLファイル)を直接編集して追加す る • 各ビューの表示文字列は以下の通り設定する # ビュー 表示文字列 1 ボタン Button01 2 チェックボック ス CB1 3 テキスト入力 EditText This material is licensed under the Creative Commons License BY-NC-SA 4.0. 114
  115. 115. 実 習 4.2.1. リソースファイルの作成 • 画面デザインリソースファイルを開く 1. 2. Package Explorerからres/layout/main.xmlをダブルクリックする res/layout/main.xmlのファイルがレイアウトエディタで開かれ、 右図の画面が表示されることを確認する 2 1 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 115
  116. 116. 実 習 4.2.1. リソースファイルの作成 • レイアウトエディタのLayoutタブで、画面デザイ ンにボタン、チェックボックスを追加する 1. 2. 3. [Views]からButtonを選択し、スクリーン上にドラッグ&ドロップ する 右図のようにボタンが表示される 同様に、 [Views]からCheckBoxをスクリーン上にドラッグ&ドロ ップし、表示されることを確認する 2 1 ドラッグ&ド ロップ This material is licensed under the Creative Commons License BY-NC-SA 4.0. 116
  117. 117. 実 習 4.2.1. リソースファイルの作成 4. 4. スクリーン上のCheckBox01を選択し、PropertiesビューからTextプ ロパティを CheckBox01 から CB1 に変更する 同様に@+id/Button01のTextプロパティをButton01に変更する Package ExplorerからHelloWorldプロジェクトを選択し、右クリッ ク[Run As]-[Android Application]を選択する 5 5 5 4 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 117
  118. 118. 実 習 4.2.1. リソースファイルの作成 6. エミュレータが起動し、下記画面が表示されることを確認する • 画面にボタン、チェックボックスが表示されている • ボタンの表示文字列が Button01 であることを確認する • チェックボックスの表示文字列が CB1 であることを確認する 6 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 118
  119. 119. 実 習 4.2.1. リソースファイルの作成 • レイアウトエディタの<ファイル名>タブで、画面 デザインにテキスト入力を追加する 1. レイアウトエディタのmain.xmlタブをクリックし、レイアウトエ ディタにXMLソースが表示されることを確認する ■res/layout/main.xml(一部割愛) 1 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=http://schemas.android.com/apk/res/android ・・・・・・・・・・・ > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <Button android:text="Button01" android:id="@+id/Button01“ ・・・・・・・・・></Button> <CheckBox android:id="@+id/CheckBox01“ android:text="CB1“ ・・・・・・・・・ ></CheckBox> </LinearLayout> This material is licensed under the Creative Commons License BY-NC-SA 4.0. 119
  120. 120. 実 習 4.2.1. リソースファイルの作成 2. テキスト入力ビューである EditTextタグをmain.xmlに追加する ■res/layout/main.xml(一部割愛) <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=http://schemas.android.com/apk/res/android ・・・・・・・・・・・ > <TextView ・・・・・・・・・・・ /> <Button ・・・・・・・・・></Button> <CheckBox ・・・・・・・・・ ></CheckBox> <EditText android:id="@+id/EditText01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="EditText"></EditText> </LinearLayout> 2 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 120
  121. 121. 実 習 4.2.1. リソースファイルの作成 3. Layoutタブに表示を切り替えて、下記のようにEditTextが表示さ れている事を確認する 表示切替 LayoutタブでEditTextが 表示されている 3 追加したEditText This material is licensed under the Creative Commons License BY-NC-SA 4.0. 121
  122. 122. 実 習 4.2.1. リソースファイルの作成 4. Package ExplorerからHelloWorldプロジェクトを選択し、右クリッ ク[Run As]-[Android Application]を選択する エミュレータが起動し、右画面が表示されることを確認する 5. • テキスト入力が表示されている • テキスト入力の表示文字列が EditText である 4 5 5 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 122
  123. 123. 4.2.1. リソースファイルの作成 • レイアウトエディタ使用時の注意点 1. Layoutタブでビューグループ(Layoutに含まれているビュー)を ドラッグ&ドロップでスクリーンに張り付けても、スクリーン 上にViewGroupが表示されない • 以下の事は、XMLを直接編集する事で対応する – ビューグループの中にボタン等のViewを配置する 2. カスタムビューは[Views]から選択する事はできない • XMLを直接編集する事で対応する 1 LinearLayoutを配置した が 表示されない This material is licensed under the Creative Commons License BY-NC-SA 4.0. 123
  124. 124. 4.2.1. リソースファイルの作成 • リソースファイルを使用した画面作成の仕組み – アクティビティはRクラスを使用し、画面デザインリソースファイ ルの内容を取得する • Rクラス – ビルド時に自動生成されるクラス – プログラムからリソースファイルの情報を取得する為に必要なクラス – 取得したリソースファイル情報から、Activity#setContentViewによ って画面デザインを表示する ■HelloWorld.java R.layout.mainがmain.xmlを示す public class HelloWorld extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } <?xml version="1.0" encoding="utf-8"?> <LinearLayout ・・・・・・・・・・・ > ・・・・・・・・・・・ <EditText android:id="@+id//EditText01“ ・・・・・・・・・・・ android:text="EditText"></EditText> </LinearLayout> ■setContentView 画面デザインをアクティビティ上に表示 する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 124
  125. 125. 4.2.1. リソースファイルの作成 • Rクラスとリソースファイルの関係 – プログラムとリソース情報は、リソースIDで関連付けられている ■HelloWorld.java setContentView(R.layout.main); 参照 ■R.java public static final class layout { public static final int main=0x7f030000; } リソースID This material is licensed under the Creative Commons License BY-NC-SA 4.0. リソース ファイル 125
  126. 126. 実 習 4.3. デザイン以外のリソースを使用す る • HelloWorldに追加したボタンの表示文字列 Button01を Hello Button に変更する • 表示文字列は文字列リソースファイルに設定する – 完成イメージ This material is licensed under the Creative Commons License BY-NC-SA 4.0. 126
  127. 127. 4.3. デザイン以外のリソースを使用す る • 文字列リソースファイルは、アプリケーションで 使用する文字列を定義したリソースファイルであ る 1. 画面上に表示す る文字列を文字 (res/values/strings.xml) 列リソースファ ■文字列リソースファイル(res/values/strings.xml) <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, HelloWorld!</string> <string name="app_name">HelloWorld</string> </resources> 文字列 を参照 する イルに追加する ■画面デザインリソースファイル(res/layout/main.xml)上のTextView <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> 2. TextViewのTextプロパティから文字列 リソースファイルの文字列を参照す る 実行 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 3. strings.xmlに設 定されている文 字列が表示され ている 127
  128. 128. 実 習 4.3. デザイン以外のリソースを使用す る • 文字列リソースファイルに文字列設定を追加する 1. 2. Package Explorerからres/values/strings.xmlをダブルクリックする res/values/strings.xmlのファイルがリソースエディタで開かれ、 右図の画面が表示されることを確認する 2 1 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 128
  129. 129. 実 習 4.3. デザイン以外のリソースを使用す る 3. 4. Resourcesタブの*Add…+ボタンをクリックし、追加要素の選択画 面を表示する 選択画面から、String を選択し、[OK] ボタンをクリックする 3 4 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 129
  130. 130. 実 習 4.3. デザイン以外のリソースを使用す る 5. 6. ResourcesタブのResouces Elementsに String が追加されて いることを確認する ResourcesタブのAttributes for StringのName、Valueに以下の値を入 力する Attributes for Stringの設定値 項目名 5 Name button_label Value 6 設定値 Hello Button This material is licensed under the Creative Commons License BY-NC-SA 4.0. 130
  131. 131. 実 習 4.3. デザイン以外のリソースを使用す る 7. 8. 9. Package Explorerからres/layout/main.xmlをダブルクリックする レイアウトエディタが起動したら、Layoutタブを開いてButton01 を選択する PropertiesビューからTextプロパティを@string/button_label に変 更する 8 7 9 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 131
  132. 132. 実 習 4.3. デザイン以外のリソースを使用す る 10. Package ExplorerからHelloWorldプロジェクトを選択し、右クリッ ク[Run As]-[Android Application]を選択する 11. エミュレータが起動し、右画面が表示されることを確認する • ボタンの表示文字列が Hello Button になっている 11 10 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 132
  133. 133. 4.4. マニフェストファイルを変更する • マニフェストエディタ – マニフェストファイルを変更する為の5つの機能がある • Manifestタブ – バージョン情報、拡張情報等 • Applicationタブ – 使用コンポーネント情報、アイコン、アプリケーション名等 • Permissionsタブ – アクセス制限設定 • Instrumentationタブ – プロファイラ等の情報収集用クラスの設定(TestRunner等) • AndroidManifest.xmlタブ – XMLファイルの直接編集 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 133
  134. 134. 4.4. マニフェストファイルを変更する • マニフェストファイルとは? – AndroidManifest.xml(アプリケーションに1つ存在) – アプリケーションに関する以下の情報を定義する • • • • • アプリケーションのアイコン、タイトルの設定 使用するコンポーネント(Activity、Service等)の定義 コンポーネントの振る舞いに関する定義 アプリケーションのアクセス制限設定 ライブラリの使用設定 ■マニフェストファイルに関する説明 http://developer.android.com/intl/ja/guide/topics/manifest/manifest-intro.html This material is licensed under the Creative Commons License BY-NC-SA 4.0. 134
  135. 135. 4.4.1.アプリケーションにアクティビティ を追加 • アプリケーションにアクティビティを追加する ファイル名 追加アクティビティ HelloWorld2.java 追加画面デザイン リソースファイル res/layout/ helloworld2.xml – アプリケーションにアクティビティ HelloWorld2を追加する – HelloWorld2の画面デザインデザインリソ ースファイルがhelloworld2.xmlである This material is licensed under the Creative Commons License BY-NC-SA 4.0. 135
  136. 136. 4.4.1.アプリケーションにアクティビティ を追加 • アプリケーションに追加したアクティビティを利 用できるようにApplicationタブで設定する 1. 2. Package ExplorerからAndroidManifest.xmlをダブルクリックする AndroidManifest.xmlのファイルがマニフェストエディタで開かれる。マ ニフェストエディタのApplicationタブを選択し、右図の画面が表示され ることを確認する 2 1 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 136
  137. 137. 4.4.1.アプリケーションにアクティビティ を追加 3. 4. Application Nodesの*Add…+ボタンをクリックし、追加要素の選択画面を 表示する 選択画面から Activity を選択し、[OK]ボタンをクリックする 4 3 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 137
  138. 138. 4.4.1.アプリケーションにアクティビティ を追加 5. 6. Application NodesにActivityが追加されていることを確認する Attributes for Activityの Name に下の値を入力する 項目名 Name 5 設定値 HelloWorld2 6 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 138
  139. 139. 4.4.2.インターネットへのアクセス許可を 設定 • インターネットへのアクセス許可をPermissonsタ ブで設定する 1. 2. Package ExplorerからAndroidManifest.xmlをダブルクリックする AndroidManifest.xmlのファイルがマニフェストエディタで開かれる。マ ニフェストエディタのPermissonsタブを選択し、右図の画面が表示され ることを確認する 2 1 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 139
  140. 140. 4.4.2.インターネットへのアクセス許可を 設定 3. 4. Permissionsの*Add…+ボタンをクリックし、追加要素の選択画面を表示す る 選択画面から Uses Permisson を選択し、[OK]ボタンをクリックする 3 4 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 140
  141. 141. 4.4.2.インターネットへのアクセス許可を 設定 5. 6. 5 Permissionsに Permission が追加されていることを確認する Attributes for Uses Permissionの Name のプルダウンから android.permission.INTERNETを選択する 6 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 141
  142. 142. 4.5. エミュレータの使用方法 • エミュレータとは? – Android Virtual Device(AVD)を読み込み、パソコン上でのハード ウェア動作をエミュレートする • エミュレータでサポートされていない機能・設定 – – – – – – – 実際の電話からの着信、実際の電話への発信 USB接続 カメラ・ビデオ撮影 ヘッドフォン接続 Bluetoothを使った通信 接続状態の設定 電池の充電レベル、AC電源の設定 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 142
  143. 143. 4.5. エミュレータの使用方法 • Android Virtual Device(AVD)とは? – Android端末情報を持っているもの • Android動作環境情報 (Androidのバージョン毎の動作環境) • スキン情報(外観、モニターサイズ) • SD Card情報 命令 Android Virtual Device ( AVD ) 操作 emulator.exe 使用者 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 143
  144. 144. 4.5. エミュレータの使用方法 • エミュレータの操作方法 # 内容 デバイス キー 1 音量DOWN 2 音量UP 1 2 3 11 4 3 電源 電源入・切 10 5 4 選択ボタ ン 選択ボタン 9 8 7 6 5 通話終了 6 検索 7 戻る 前の画面に戻る 8 メニュー 12 検索ウィジッドに移動 メニューを画面に表示 9 ホーム ホームを表示 10 通話開始 8 11 十字キー カーソルの移動 12 キーボー ド キー入力 144 This material is licensed under the Creative Commons License BY-NC-SA 4.0.
  145. 145. 4.5. エミュレータの使用方法 • 画面向きの切り替え(Ctrl + F11) – デバイスの向きに合わせた画面表示 縦長表示(ポートレート) 横長表示(ランドスケープ) Androidエミュレータに関する詳細情報 http://developer.android.com/intl/ja/guide/developing/tools/emulator.html This material is licensed under the Creative Commons License BY-NC-SA 4.0. 145
  146. 146. 4.6. デバッグツールの使用方法 • ADT – Eclipseのデバッグ機能がAndroidアプリケーション開発で利用でき る • ブレークポイント • ステップ実行 • Dalvik Debug Monitor Services(DDMS) – Android SDK同梱のデバッグツール – 以下の機能がある • モニタリング • エミュレータ操作 • エミュレータ・ハードウェア内の情報取得 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 146
  147. 147. 4.6.1.ADTの使用方法 • ブレークポイント/ステップ実行使用方法 – ブレークポイントの設定方法、ステップ実行の方法は全てEclipse の使用方法と同じ Debugビューと ステップ実行 ブレークポイント による処理中断 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 147
  148. 148. 4.6.1.ADTの使用方法 • ADTでデバッグする際の注意 – ハードウェア(実際のAndroid端末)を使用してデバッグをするに はAndroidManifest.xmlに設定が必要 ■AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="jp.oesf.mtgeduwg.training.rssreader" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true"> ・・・ </application> デバッグの設定 <uses-sdk android:minSdkVersion=“7" /> </manifest> This material is licensed under the Creative Commons License BY-NC-SA 4.0. 148
  149. 149. 4.6.2.DDMSの使用方法 • DDMSを起動する2つの方法 – ddmsコマンドを実行する 1. 2. スタートメニューの[すべてのプログラム]-[アクセサリ]の[コマンド プロンプト]を選択し、コマンドプロンプトを起動する コマンドプロンプトで ddms と入力後、[Enter]キーを押す コマンドから起動した DDMS This material is licensed under the Creative Commons License BY-NC-SA 4.0. 149
  150. 150. 4.6.2.DDMSの使用方法 • DDMSを起動する2つの方法 – EclipseからDDMSを利用する 1. Eclipseのメニュー[Window]から[Open Perspective]-*Other…+-[DDMS]を 選択する EclipseのDDMSパースペクティ ブ ※コマンド起動したDDMSに比べ一部使用できない機能がある This material is licensed under the Creative Commons License BY-NC-SA 4.0. 150
  151. 151. 4.6.2.DDMSの使用方法 • DDMSのデバッグ機能 – モニタリング 1. 2. アプリケーションが出力するログの参照 リソース使用状況の参照 – エミュレータへのデータ送信 1. 2. 3. 電話発信 SMS送信 位置情報送信 – スクリーンショットの取得 – プロセス管理 1. ガベージコレクション実行 2. プロセス停止 – ファイル操作 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 151
  152. 152. 4.6.3.アプリケーションログの参照 • アプリケーションログの参照 – LogCatビューから、アプリケーションが出力しているログを参照 する事ができる LogCat アプリケーションから出 力されているログ情報を 表示 Logレベル レベル E エラー情報 W 警告情報 I 動作情報 D デバッグ情報 V 詳細情報 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 152
  153. 153. 4.6.3.アプリケーションログの参照 • アプリケーションログの参照 – ログを出力するには、android.util.Logクラスのログ出力メソッドを 使用する ■サンプルコード import android.util.Log; Log.e(“HelloWorld”, “Error Message”); Log.w(“HelloWorld”, “Warning Message”); Log.i(“HelloWorld”, “Infomation Message”); グ Log.d(“HelloWorld”, “Debug Message”); Log.v(“HelloWorld”, “Verbose Message”); // エラーを出力するログ // ワーニングを出力するログ // アプリケーション動作の情報を出力するロ // デバッグ情報を出力するログ // 詳細情報を出力するログ ログ出力 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 153
  154. 154. 実 習 4.6.4.Hello Worldからログを出力する • HelloWorldの起動時にアプリケーションログを出 力 1. 2. Package ExplorerからHelloWorld.javaをダブルクリックする HelloWorld.javaのソースコードが開かれ、右図の画面が表示され ることを確認する。 2 1 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 154
  155. 155. 実 習 4.6.4.Hello Worldからログを出力する 3. HelloWorld#onCreateにログ出力を行う5つのコードを追加する ■HelloWorld.java package jp.oesf.tutorial; import android.app.Activity; import android.os.Bundle; import android.util.Log; public class HelloWorld extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.e("HelloWorld", "Error Message"); Log.w("HelloWorld", "Warning Message"); Log.i("HelloWorld", "Infomation Message"); Log.d("HelloWorld", "Debug Message"); Log.v("HelloWorld", "Verbose Message"); 3 } } This material is licensed under the Creative Commons License BY-NC-SA 4.0. 155
  156. 156. 実 習 4.6.4.Hello Worldからログを出力する 4. 5. Package ExplorerからHelloWorldプロジェクトを選択し、右クリッ ク[Run As]-[Android Application]を選択する エミュレータが起動し、右画面が表示されることを確認する 5 4 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 156
  157. 157. 実 習 4.6.4.Hello Worldからログを出力する 6. 7. EclipseのパースぺクティブをDDMSに変更し、DDMSの画面が表示 されることを確認する LogCatビューに5つのログが出力されていることを確認する 6 7 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 157
  158. 158. 4.6.5.リソース使用状況の確認 • リソース使用状況を参照する – 参照できる情報と表示画面 • infoビュー(コマンド実行時のみ) – プロセス情報(ID、DalvikVM情報)を表示する • Threadsビュー – 動作しているスレッドの情報を表示する • VM Heapビュー – ヒープメモリの使用状況を表示する • Allocation Trackerビュー – メモリ確保状況(確保クラス、メソッド等)を表示する • Sysinfoビュー (コマンド実行時のみ) – システム状態(CPU使用率、メモリ状況)をグラフ表示する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 158
  159. 159. 4.6.5.リソース使用状況の確認 • VM Heap情報を参照する Heap情報を表示したい プロセスにUpdate設定 をする 下記項目を一覧表示 オブジェクトの型 オブジェクトの個 数 使用メモリ合計 最小使用メモリ 最大使用メモリ 平均使用メモリ This material is licensed under the Creative Commons License BY-NC-SA 4.0. 159
  160. 160. 実 習 4.6.6.エミュレータへ電話発信 • 電話発信(エミュレータに電話発信する) 1. Emulator Control ビューを選択する 2. Incoming numberに電話番号(09010000001)を入力する 3. Voiceを選択し、[Call]ボタンをクリックする 発信元番号入力 ex. Incoming number : 09010000001 Voiceを選択 Call : 発信する Hang Up : 電話を切る 1 2 Emulator Control エミュレータに対して電話 発信、SMS送信、位置情報 の送信を行う 3 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 160
  161. 161. 実 習 4.6.6.エミュレータへ電話発信 4. エミュレータに09010000001から着信されることを確認する 4 09010000001から エミュレータに着信 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 161
  162. 162. 4.6.7.エミュレータへSMS発信 • SMS送信(エミュレータにSMS送信する) 1. Emulator Control ビューを選択する 2. Incoming numberに電話番号(09010000001)を入力する 3. SMSを選択、Messageに送信メッセージ(Hello Android)を入力し 、[Send]ボタンをクリックする 発信元番号・メッセージ入力 ex. Incoming number : 09010000001 SNSを選択 Message : Hello Android 2 3 Send : 送信する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 162
  163. 163. 4.6.7.エミュレータへSMS発信 4. エミュレータで09010000001からメッセージが着信していること を確認する SMSが着信したこ とが通知される Messagingアプリケー ションに送信したメッ セージが記録されてい る 4 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 163
  164. 164. 4.6.8.エミュレータへ位置情報送信 • 位置情報を送信する 1. 2. 3. 4. Emulator Control ビューを選択する Manualタブを開き、Decimalを選択する Longitude(経度)/Latitude(緯度)を入力する [Send]ボタンをクリックする This material is licensed under the Creative Commons License BY-NC-SA 4.0. 164
  165. 165. 4.6.9.その他エミュレータの機能 • スクリーンショットの取得 1. 2. [Screen Capture]ボタンをクリックすると、Device Screen Capture ウィンドウに端末のスクリーンショットが表示される [Save]ボタンをクリックし、保存ウィンドウからファイルを保存 する 1 2 Device Screen Capture プレビュー表示が表示 される 保存も含めて以下の 機能がある Refresh : 再取得する Save : 保存する Done : 終了する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 165
  166. 166. 4.6.9.その他エミュレータの機能 • ガベージコレクションを実行する 1. 2. Devicesビューからガベージコレクションを実行したプロセスを選 択する HeapビューのCause GCボタンをクリックする 2 1 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 166
  167. 167. 4.6.9.その他エミュレータの機能 • プロセスを停止する 1. 2. Devicesビューからガベージコレクションを実行したプロセスを選 択する DevicesビューのStop Processボタンをクリックする 2 1 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 167
  168. 168. 4.6.9.その他エミュレータの機能 • 端末内のファイル取得/転送/削除を行う 1. 2. FileExplorerビューを選択する 操作に対応するボタンをクリックする(ファイル取得/転送/削 除) 1 File Explorer 端末内のファイル情報を表示す る ※ 実機の場合はアクセス制限 がかかっている為、参照で きる範囲が限られる 2 : 端末からファイルを取り出 す : 端末へファイルを転送する :ファイルを削除する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 168
  169. 169. 5. 実習 This material is licensed under the Creative Commons License BY-NC-SA 4.0. 169
  170. 170. 5.1.概要 実習の進め方 • 5ステップでAndroidアプリケーション作成を学ぶ 5.2. 5.3. 5.4. • 画面デザインの作り方 • 画面遷移の方法 • データベースの全件検 索と一覧表示 • メニュー画面を作成する • 「ボタンをクリックした」 ことを認識する • 一覧形式の画面を追加する • インテントを使用して画面 遷移を行う 5.5. 5.6. • データベースの1件検 索と画面表示 • データベースにテーブル を作成する • データを一覧形式で表示 する • オプションメニューの 作り方 • 画面間でパラメータを受 け渡す • データを絞り込み検索す る • オプションメニューを追 加する • オプションメニューのク リックを認識する This material is licensed under the Creative Commons License BY-NC-SA 4.0. 170
  171. 171. 5.1.概要 実習の準備 • 実習用スケルトンプロジェクトをEclipseに取り込む – 格納場所 • C:android_trainingskeleton_project – ここでは、「RssReaderSkeleton1」を取り込む – 取り込み方法 • Eclipseを起動して「File」メニューから「Import」を選択し、「Import 」ダイアログを表示する • 「Import」ダイアログの「General」から「Existing Projects into Workspace」を選択して「Next」ボタンを押し、スケルトンプロジェ クトのルートディレクトリを指定して取り込む – 「Copy projects into workspace」にチェックを入れる This material is licensed under the Creative Commons License BY-NC-SA 4.0. 171
  172. 172. 5.1.概要 実習アプリケーションの概要 • 実習では、RSSリーダーを佀

×