SlideShare a Scribd company logo
1 of 320
Android プログラミング入門
トレーニングの目的
Androidアプリケーション開発に必要な基本的なプログラミング知
識を身につける。
演習を通して、アプリケーション開発を体験する

注意事項
本トレーニングは同じ資料で1日コース、2日コースを行います。
1日コースではトレーニングの一部を省略します

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

2
目次
目次
1.
2.
3.
4.
5.
6.
7.

Androidとは
Androidアプリケーションのアーキテクチャ
開発環境の準備
開発ツールの使い方
ユーザーインタフェース
画面遷移
まとめ
※本トレーニングでは既に開発環境はセットアップ済です。そのため、「3. 開
発環境の準備」は説明のみになります。

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

3
トレーニングスケジュール
2日コース

1日コース

1日目

1日目

Androidとは
Androidアプリケーションのアーキテクチャ
開発環境の準備
開発ツールの使い方
ユーザーインタフェース(Viewまで)

2日目
ユーザーインタフェース(ViewGroup)
画面遷移
まとめ

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

Androidとは
Androidアプリケーションのア
ーキテクチャ
開発環境の準備
開発ツールの使い方
ユーザーインタフェース
• 一部省略
画面遷移
• 一部省略
まとめ

4
受講するにあたって必要なスキル
何かしらのプログラミング言語での開発経験があること
下記の条件があるとより理解度が上がります
オブジェクト指向の基本的な知識
Java開発経験
Eclipse使用経験

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

5
開発環境
開発環境の説明
本トレーニングでは下記の開発ツールを用いる
トレーニング用マシンは既に開発環境は構築済みです
SDK付属のToolsに環境変数のパスが通っている

ソフトウェア

バージョン

統合開発環境

Eclipse IDE with built-in ADT

Java SDK

JDK 1.6

Android SDK

Android 2.3.3 (API 10)

Android Plug-in

Android Development Tools (ADT) Ver.21.X.X

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

6
開発環境
開発環境の説明
ディレクトリ構成
トレーニングに必要なファイルは全てandroid_traing_pnに用意してあります
。
以下はandroid_traing_pnのディレクトリ構成になります
パス(c:¥android_trainig_pn以
下)

内容

adt-bundle-windows-x86¥sdk

AndroidSDK

adt-bundle-windows-x86¥eclipse

eclipse

workspace

eclipseのワークスペース

answer_docs/html

実習の解答ドキュメント

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

7
演習の進め方
プロジェクトの共通設定
演習で作成するプロジェクトは特に指定のない限り以下のように設定に
する
項目

設定値

Project name

演習毎に指定

Build Target

※講師の指示に従う

Application name

Project nameと同じ

Package name

jp.oesf.xxx
※xxxはプロジェクト名小文字が入
る
※パッケージ名は任意のものでもよ
い

Create Activity

MainActivity

Min SDK Version

Build Targetと同じ

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

8
1. Androidとは
概要
Androidとは
開発に必要なもの
アプリケーション開発の流れ
アプリケーションの紹介

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

10
Androidとは
Androidとは
携帯端末用プラットフォームである
主に携帯電話、タブレットなどのプラットフォームとして利用されてい
る
現在では、携帯電話、タブレット問わずさまざまなハードウェアに
Androidは搭載されている

AndroidはOS
AndroidはOSなため多くのハードウェアメーカーからプラットフォームと
して採用されている

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

11
ハンドセット、タブレット以外の
Android
ノートPC
MediaController
腕時計型

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

12
Android組込みハードウェア

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

13
豊富なインタフェース
Androidのインタフェース

NFC

タッチパネル
各種センサ
トラックボール
カメラ
GPS
ソフトキーボード/ハードキーボード
GPS
NFC(Near Field Communication)
Bluetooth

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

Bluetooth

タッチパネル

14
Androidのバージョン
Androidのバージョン一覧

1.5

2.3

Cupcake

Gingerbread

1.6

3.0–3.2

Donuts

HoneyComb

2.0–2.1

4.0

Eclair

Ice Cream Sandwich

2.2

4.1-4.2

Froyo

Jelly Bean

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

15
Androidのバージョン 2.x系
2.x系の新機能
Version

コードネーム

APIレベル

リリース

新機能

2.0/2.1

Eclair

5, 6, 7

2009/10/26
(2.0)
2009/12/3
(2.0.1)
2010/1/12
(2.1)

• マルチタッチ
• LiveWallPaper
• Bluetooth

2.2

Froyo

8

2010/5/21

• Dalvik VM にJITコンパイラを搭
載(2〜5倍高速化)
• クラウドとデバイスの連携API
(C2DM)
• テザリング対応
• Adobe Flash対応
• インストール済アプリの自動更
新

2.3

Gingerbread

9, 10

2010/12/6

•
•
•
•
•
•

ゲームのための改良
並列GC(目標3ms以下の停止)
NFC(近距離無線通信)対応
複数のカメラを扱えるAPIの追加
SIPの標準サポート
バッテリー管理機能の向上

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

16
Androidのバージョン 3.x系
3.xの新機能
Version

コードネー
ム

APIレベル

リリース

新機能

3.0

Honeycomb

11

2011/2/22

• 大型ディスプレイに最適化
• タブレット専用となった
• マルチコアプロセッサのサポート

3.1

Honeycomb

12

2011/5/10

•
•
•
•

3.2

Honeycomb

13

2011/7/15

• 広範囲なタブレット向けの最適化
• SDカードに対してのメディア同期
• スクリーンサポートの拡張

ユーザーインターフェースの改善
オープンアクセサリAPI
USBホストAPI
マウス、ゲームパッド、ジョイス
ティックからの入力
• ホームスクリーンウィジェットのサ
イズ変更

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

17
Androidのバージョン 4.x系
4.xの新機能
Version

コードネー
ム

APIレベル

リリース

新機能

4.0

Ice Cream
Sandwich

14, 15

2011/10/08

•
•
•
•
•
•
•
•
•

4.1

Jelly Bean

16

2012/06/27

•
•
•
•
•
•
•

ハンドセットとタブレットのUIの統合
Android Beam
WiFi Direct
Bluetooth Health Device Profile
Notificationの向上
ロック画面で、カメラと音楽の操作
ランチャーのアプリ管理の改善
画像や動画のエフェクト
正確なカメラの測光、顔認識

Systrace
アクセシビリティの拡張
双方向テキスト対応
Unicode 6.0 の絵文字対応
Notificationの拡張
リサイズ可能なアプリウィジェット
ライトアウト・フルスクリーンモードへ
の遷移API
• Remoteable View の追加
• デバイスの追加と除去の検知
• Android Beam の改善
This material is licensed under the Creative
18
Commons License BY-NC-SA 4.0.
Androidのバージョン 4.x系
4.xの新機能
Version

コードネーム

APIレベル

リリース

新機能

4.2

Jelly Bean

17

2012/11/13

• マルチアカウント
• クイック設定
• フォトギャラリーのアップデート。360
度撮影。
• ジェスチャ文字入力
• Miracast ワイヤレスディスプレイ
• Google Play 以外からインストールする
アプリにもマルウェアスキャン

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

19
開発準備
開発に必要なツール

Eclipse
Java SDK
Android SDK
Android Development Tools (ADT)

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

20
アプリケーション開発の手順
開発手順
Eclipseでプロジェクト作成
画面デザインの作成
• Button、CheckBoxなどのパーツの配置
ソースコードを書く
• 例)ボタンクリック時の処理など

ビルド
Androidアプリが出来上がる(apk)

エミュレータ、実機に転送
アプリケーションの起動

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

21
Third Party Framework
Kivy on Android
PythonコードからAndroid
アプリケーションを作成す
る

Monaca
HTML5、JavaScript、CSSベ
ースでAndroidアプリケー
ションを作成する

Unity
AppInventor
Webブラウザ上で画面をデ
ザインし、ブロックをドラ
ッグ&ドロップしてパズル
のように組み合わせて作成
する

3Dコンテンツも作成できる
ゲーム開発プラットフォー
ム。Webやマルチプラット
フォームでコンテンツの書
き出しができる

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

22
Third Party IDE
IntelliJ IDEA

AIDE

JetBrains社が開発した、
Java言語など多言語対応の
統合開発環境

Android上でAndroidアプ
リケーションの開発を行
えるIDE

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

23
Androidアプリケーションにの種類
Androidアプリケーションの種類
従来のハンドセットをターゲット
タブレット対応のアプリケーション
Webサービスと連携
特定のハードや機能に特化したアプリケーション
ICS以降のアプリも既にリリース
Android Marketのアプリケーション

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

24
主なアプリケーションの紹介
Androidアプリケーションの紹介
Angry Birds
手軽に遊べるAndroid用アクションパズルゲーム

Tinamium
Webサービスと連携した画像検索アプリケーション
ICS以降に対応

Kindle
Amazonの電子書籍リーダーアプリケーション
ブラウザで電子書籍を購入し、読む事が出来る

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

25
Android Market
Android Market
Google Play
Googleが提供するコンテンツ配信サービス
「Android Market」「Google eBookstore」「Google Music」といった、これ
まで個別に運営されてきた複数のサービスを統合
• https://play.google.com/store

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

26
Third Party Market
Third Party Market
Amazon Appstore for Android
米Amazon.comが、Androidアプリを販売
するアプリ市場

DeployGate
開発中のアプリケーション配信サービス
。
主に開発メンバーに対してテスト版アプ
リをリモートで提供することが目的

Handster
ホワイトレーベルのプラットフォームと
ブランドのアプリケーションストアを提
供するアプリ市場

M-trix Market
Androidアプリの成人向けコンテンツ専
用ストア

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

27
Androidの構成要素(1)
Androidアプリケーションが動作する環境
AndroidアプリケーションはAndroidランタイムという仮想マシンの上で
動作する
Androidランタイムの実行基盤としてLinuxを採用している為、アプリケ
ーションはLinux上で動作している

ソフトウェア(Androidプラットフォーム)
アプリケーション

アプリケーション

Androidランタイム

Linuxカーネル
ハードウェア
This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

28
Androidの構成要素(2)
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.

29

電源管理

③
Androidの構成要素(3)
構成要素の概要
① Linuxカーネル
Linuxカーネル2.6をベースにAndroid用の変更を加えたLinuxカーネル (ただ
しICS以降のカーネルはほぼ3.1ベースに)
アプリケーションが動作する為に必要な機能を提供しており、ハードウェア
ドライバを含んでいる

② ライブラリ
C/C++で作成されたライブラリ
• Webkit(Webブラウザ描画)、SQLite(データベース)、 OpenGL/ES (
3D描画)等
アプリケーションが、アプリケーションフレームワーク経由で使用する

③ Androidランタイム
Androidアプリケーションの実行環境
Androidで使用するJavaのコアライブラリ、実行環境である仮想マシン(
Dalvik VM)が含まれる

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

30
Androidの構成要素(4)
構成要素の概要
④ アプリケーションフレームワーク
アプリケーションの動作やライブラリを使用する為に必要なJava APIを提供
する

⑤ アプリケーション
アプリケーションフレームワークを使用して開発されたAndroidアプリケーシ
ョン
• 具体例として、電話、Webブラウザ、アドレス帳

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

31
この章のまとめ
まとめ
Androidとは
携帯端末用プラットフォームである
主に携帯電話、タブレットなどのプラットフォームとして利用されている
現在では、携帯電話、タブレット問わずさまざまなハードウェアにAndroidは
搭載されている
AndroidはOSなため多くのハードウェアメーカーからプラットフォームとして
採用されている

開発に必要なもの
Eclipse
Java SDK
Android SDK
Android Development Tools (ADT)

アプリケーション開発の流れ

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

32
この章のまとめ
まとめ (続き)
アプリケーション開発の流れ
Eclipseでプロジェクト作成
• 画面デザインの作成
– Button、CheckBoxなどのパーツの配置
• ソースコードを書く
– 例)ボタンクリック時の処理など
ビルド
• Androidアプリが出来上がる(apk)
エミュレータ、実機に転送
アプリケーションの起動

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

33
2. Androidアプリケーションの
アーキテクチャ
概要
Activity
View
Intent
ライフサイクル

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

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

コンポーネ
ント間通信

データ

イベント

アクセス

トリガー

バック
グラウンド
実行

実現

Activity

Intent

Content

Broadcast

Provider

Receiver

Service

Androidの主要コンポーネントとインテント
This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

36
主要コンポーネント
基本となる4つのコンポーネントとインテント
アクティビティ(Activity)
インテント(Intent)
ブロードキャストレシーバ(Broadcast Receiver)
サービス(Service)
コンテントプロバイダ(Content Provider)

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

37
アクティビティ
アクティビティとは?
Androidアプリケーションの画面は、アクティビティの上にボタン、チェ
ックボックス等の部品を配置し、 画面を作成する
基本的に1画面は1つのアクティビティで構成する
アクティビティは実行中、一時停止といった状態を持っている

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

38
ActivityにUIを配置する
Androidアプリケーションの画面は、アクティビティの上にボタン、
チェックボックス等の部品を配置し、画面を作成する

①

②

左図はアクティビティにビュー(ボタン)を配置してい
る
1. アクティビティ
2. ビュー(ボタン)

左図の画面は以下のような構成になっている

2.ビュー(ボタン)
1.アクティビティ

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

39
アクティビティとイベント
ユーザーの画面入力に応答する処理を作成する事ができる
画面にて操作の情報(例えばボタンをクリックした)は、ビューを通じ
てアクティビティに通知される
アクティビティでは通知に応答する処理を作成する事ができる
ボタンがクリックされた時の例

1.ボタンをクリック
ボタン

3.ボタンクリック時の処理を実行
2.通知

アクティビティ

public void onClick(View view)
{
// 画面にメッセージを表示する
}

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

40
アクティビティと画面の関係
1画面は1つのアクティビティで構成する
複数の画面を持つアプリケーションの場合、画面の数だけアクティビテ
ィを持っている

アプリケーション

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

アクティビティ

アクティビティ

アクティビティ

1つの画面で構成されている
アプリケーション

3つの画面で構成されている
アプリケーション

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

41
アクティビティ表示の仕組み
アクティビティが表示される仕組み
アクティビティは画面に1つだけ表示される
Androidアプリケーションは、複数のアクティビティを持っていても、表示で
きるアクティビティは1つだけである
新しいアクティビティを表示する場合、前のアクティビティは隠され、新し
いアクティビティが上に表示される

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

42
アクティビティの状態
アクティビティの状態は複数あり、操作により状態が変化する
アクティビティの状態は3種類定義されている
フォアグラウンド状態
• アクティビティが表示されていて、カーソルがあたっている状態
バックグラウンド状態
• アクティビティが別のアクティビティによって隠されている状態
ビジブル状態
• アクティビティが表示されているが、操作できない状態

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

43
アクティビティの種類
画面の種類に応じて、アクティビティが用意されている
アクティビティの一例
#

作成する画面

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

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使用)

44
ビュー
ビューとは?
ボタン、チェックボックス等の部品である
複数のビューをまとめる機能を持つビューを、ビューグループと呼ぶ
アクティビティ、ビュー、ビューグループの関係

ユーザーインターフェース
View
View

View

ViewGroup

View

ViewGroup
Activity

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

45
代表的なビュー
代表的なビュー
View名

概要

TextView

テキストを表示する

Button

基本的な押しボタン

EditText

テキストの入力をする

CheckBox

ON/OFF状態をもつボタン

Spinner

リストから1つのアイテムを選択するボタン

AnalogClock

イメージ

アナログ時計

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

46
代表的なビューグループ
代表的なビューグループ
名前

概要

LinearLayout

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

TableLayout

• 格子状にビューを配置するビューグループ(HTMLのtableタグに似ている)
• 内部にTableRowを指定する

TableRow

• Table行の中にビューを配置するビューグループ

ListView

• 1列のリスト上にビューを配置するビューグループ
• 画面内に収まらない場合は、スクロールバーを表示

TabHost

• タブによって表示を切り替えるビューグループ

RelaytiveLayout

• 親子関係のViewを用意することによって、相対的な位置を指定して表示

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

47
カスタムビュー
独自のビューを作成できる(カスタムビュー)
カスタムビューは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.

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

インテントを利用する具体例
アクティビティAからアクティビティBを起動する(画面遷移)
アドレス帳アプリケーションから電話をかけるアプリケーションへ電話発信
を依頼する

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

49
インテント
インテントにより、コンポーネントを呼び出すには
インテントに、呼び出し先のコンポーネントの情報を含めて、Androidに
呼び出しを依頼する
コンポーネントAからコンポーネントBを呼び出す例
イ
ンテント
オブジェ
クト
を作成し 送信メ
て、
ソッ を実行する
ド

"B"が起動する

インテント
• "B"を呼び出す

イ
ンテント

イ
ンテント

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

50
明示的インテント
インテントの使い方には、明示的なインテントと暗黙的なインテン
トの2つの使い方がある
明示的なインテント
呼び出し先のコンポーネントが明確な場合、コンポーネントを直接指定して
呼び出す方法。同一アプリケーション内のコンポーネントを呼び出す場合に
使用する(画面遷移等)
• コンポーネントを指定して呼び出す例
アプリ
ケーショ
ン
"B"が起動する

インテント
• "B"を呼び出す

イ
ンテント

イ
ンテント

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

51
暗黙的インテント
暗黙的なインテント
呼び出し先のコンポーネントを指定せず、アクション(下図の例では” 電話
をかける”を指す)のみを指定する方法。主に他アプリケーションのコンポ
ーネントを呼び出す場合に使用する(別アプリケーション画面等)
起動するコンポーネントは各アプリケーションの設定情報からAndroidが決定
する
例)アクションのみ指定して呼び出す例

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

52
暗黙的インテント
暗黙的なインテント(続き)
暗黙的なインテントを使用すると、Androidに含まれているアプリケーション
と連携して、以下の事ができる
• 電話アプリケーション
– 指定した番号のダイヤルウィンドウを開く
• アドレス帳アプリケーション
– アドレス帳のリストを表示する
– アドレス帳の中から1つのアドレス情報を表示する
– 指定のアドレス情報を編集する
• Webブラウザ
– 指定したURLアドレスのWebサイトをブラウザで表示する

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

53
アクティビティのライフサイクル(
1)
ライフサイクルとは?
アクティビティにはオブジェクト生成~破棄に至るまでのライフサイク
ルが定義されている

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

実行中

・
"戻る"で元画面に復帰
・
他Activityの割込み
・
端末スリ
ープ
・
長時間無操作状態が続いた

・
Activityがフ アグラ
ォ
ウンド

に表示(
戻るボタ
ン等)

プ
ロセス破棄

・
他アプリ
ケーショ
ンから
メ を
モリ 要求さ
れる

一時停止

ビジブル

・
他アプリ
ケーショ
ンから
メ を
モリ 要求さ
れる

・ ・Activityが非表示
他Activityの割込み
・
長時間無操作状態が続いた
になった

状態遷移方向
終了
状態

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

バッ
ク
グラ
ウンド

54
アクティビティのライフサイクル(
2)
通知されるイベントを含むライフサイクル
Activity起動

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

onStart()

フ ア
ォ
グラ
ウンド

プ
ロセス破棄

onRestart()

onResume()

実行中
・
他Activityの割込み
・
端末スリ
ープ
・
長時間無操作状態が続いた

onPause()
・
他アプリ
ケーショ
ンから
メ を
モリ 要求さ
れる

一時停止
・
Activityがフ アグラ
ォ
ウンド

ビジブル

・ ・Activityが非表示に
他Activityの割込み
なった
・
長時間無操作状態が続いた

に表示(
戻るボタ
ン等)

onStop()
・
他アプリ
ケーショ
ンから
メ を
モリ 要求さ
れる

終了
・
Activityがフ アグラ
ォ
ウンド

に表示(
戻るボタ
ン等)
バッ
ク
グラ
ウンド

状態遷移方向

onDestroy()
状態
Activity破棄
This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

Activityのイ
ベント

55
アクティビティのライフサイクル(
3)
アクティビティでは以下のイベントが通知される。開発者はこれら
の通知に応答する処理を作成できる

・ 通知されるイベント
#

イベント名

内容

1

onCreate

最初の起動時に発生するイベント

2

onStart

アクティビティが表示される直前に発生するイベント

3

onResume

アクティビティが利用可能な状態(アクティブ状態)になる直前に発生するイベン
ト

4

onPause

アクティビティがビジブルになる直前に発生するイベント

5

onStop

onPauseの後、Activityが非表示の状態になった場合に発生するイベント
(メモリ不足の際、イベントが発生しない場合がある)

6

onRestart

終了状態のアクティビティが再度表示される際に発生するイベント

7

onDestory

アクティビティが破棄される直前に発生するイベント
(メモリ不足の際、イベントが発生しない場合がある)
This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

56
アクティビティのライフサイクル(
4)
アクティビティの通知イベントに関する注意
onStop、onDestroyは必ず通知される保証はない
Androidはメモリ不足の状態に
なった場合、使用していないアプ
リケーションプロセスを強制終了
する。
この場合、アクティビティのライフサ
イクルでは、onStop、onDestroy
は通知される事が保証されて
いない
必ず必要な処理の場合はonPause
で処理を行う

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

onStart()

onResume()

プロセス破棄

実行中
・
他Activityの割込み
・
端末スリ
ープ
・
長時間無操作状態が続いた

onPause()
・
他アプリ
ケーショ
ンから
メ を
モリ 要求さ
れる

一時停止
・ ・Activityが非表示に
他Activityの割込み
なった
・
長時間無操作状態が続いた

onStop()
・
他アプリ
ケーショ
ンから
メ を
モリ 要求さ
れる

使用可能メモリが不足した場合の
This material is licensed under the Creative
遷移ルート
Commons License BY-NC-SA 4.0.

終了

onDestroy()

57
この章のまとめ
まとめ
Activity
Androidアプリケーションの画面は、アクティビティの上にボタン、チェック
ボックス等の部品を配置し、 画面を作成する
基本的に1画面は1つのアクティビティで構成する
アクティビティは実行中、一時停止といった状態を持っている

View
ボタン、チェックボックス等の部品である
複数のビューをまとめる機能を持つビューを、ビューグループと呼ぶ

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

58
この章のまとめ
まとめ
Intent
コンポーネント間で、処理の依頼や、メッセージをやりとりする為の仕組み
• インテントを利用できるコンポーネントは、アクティビティ、ブロード
キャストレシーバ、サービス
インテントの使い方には、明示的なインテントと暗黙的なインテントの2つの
使い方がある

ライフサイクル
アクティビティには、オブジェクト生成〜破棄に至るまでのライフサイクル
が定義されている。
アクティビティの3種類の状態遷移が定められている
(フォアグラウンド、バックグラウンド、ビジブル)

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

59
3. 開発環境の準備
概要
開発環境の構築
別ドキュメント「開発環境の構築」を参照

エミュレータの作成
別ドキュメント「エミュレータの作成」を参照

環境変数の登録
別ドキュメント「環境変数の登録」を参照

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

61
4. 開発ツールの使い方
概要
HelloWorldアプリケーションの作成を通じて、開発ツールの操作方
法を習得する
Android Development Tools(ADT)
エミュレータ、 Android Virtual Device (AVD)
Dalvik Debug Monitor Services (DDMS)

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

63
ADT
Android Development Tools(ADT)とは?
AndroidアプリケーションをEclipseで開発する為のPlug-in

ADTが提供する機能
Androidプロジェクトの作成
Androidアプリケーションの実行・デバッグ
リソースファイルの作成支援
リソースファイルについては本節で解説

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

64
Hello Worldの表示
初めにAndroidプロジェクトを作成し、下記のアプリケーションを作
成する
完成イメージ

新規作成したプロジェクトは、左図
のようなHello world!と表示される
アプリケーションとして作成される

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

65
プロジェクトの作成(1)
Androidプロジェクトを作成する
1. File > NewからAndroid Application Project をクリック

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

66
プロジェクトの作成(2)
2. [New Android Application]画面の設定
Apllication の設定情報を以下にし、Nextボタンをクリック

Propertiesの各項目に以下を入力する
項目

設定値

Application
Name

HelloWorld

Project Name

HelloWorld

Package Name

jp.oesf.tutori
al

Minimum Required SDK

API 10

Target SDK

API 10

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

With

Theme

67

API 10
None
プロジェクトの作成(3)
3. [New Android Application]画面の設定
Create Custom launcher iconのチェックを外し、Nextボタンをクリック

チェックを外す

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

68
プロジェクトの作成(4)
4. [Create Activity]画面の設定
Create Activityにチェックし、Blank Activityを選択後にNextボタンをクリ
ックする

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

69
プロジェクトの作成(5)
5. [New Blank Activity]画面の設定
Finishボタンをクリックする

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

70
アプリケーションの実行
6. Android Projectが生成され、下図(上)のように表示される
7. Package ExplorerからHelloWorldプロジェクトを選択し、右クリックし
、[Run As]-[Android Application]を選択する

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

71
実行画面の確認
8. エミュレータが別ウィンドウで起動し、下記画面が表示されることを確
認する
アプリケーションに Hello world! と表記されている

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

72
リソースファイル
画面デザインをリソースファイルで作成する
リソースファイルとは?
ソースコード以外の全て外部ファイル
Androidプロジェクトでは/res以下に格納されているファイル

リソースファイルの種類(一部抜粋)
#

リソースファイル

内容

1

res/drawable(-Xdpi)/*.*

画像ファイル(.png、.jpeg、.gif)

2

res/layout/*.xml

画面デザイン情報(ex. activity_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.

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

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

74
画面デザインを作成する
レイアウトエディタの機能を使用して、HelloWorldにボタン、チェ
ックボックス、テキスト入力を含む画面を作成する
完成イメージ
ボタン、チェックボックスはレイアウトエディタのGUI機能を利用して追加す
る
テキスト入力は、画面デザインリソースファイル(XMLファイル)を直接編集
して追加する

階層構造
<LinearLayout>
<TextVIew />
<Button />
<CheckBox />
<EditText />
</LinearLayout>

– 各ビューの表示文字列は以下の通り設定する

# ビュー

表示文字列

1 ボタン

Button01

2 チェックボックス CB1
3 テキスト入力

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

EditText

75
リソースエディタの起動
画面デザインリソースファイルを開く
1. Package Explorerからres/layout/activity_main.xmlをダブルクリック
する
2. res/layout/activity_main.xmlのファイルがレイアウトエディタで開か
れ、右図の画面が表示されることを確認する

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

76
Viewを追加する
レイアウトエディタのGraphical Layoutタブで、画面デザインにボ
タン、チェックボックスを追加する
1. [Form Widgets]からButtonを選択し、スクリーン上にドラッグ&ドロッ
プする
2. 右図のようにボタンが表示される
3. 同様に、 [Form Widgets]からCheckBoxをスクリーン上にドラッグ&ド
ロップし、表示されることを確認する

ドラッグ&ドロッ
プ
This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

77
Viewの表示テキストを変更する
4. スクリーン上のCheckBoxを選択し、Propertiesビュー上でTextプロパテ
ィを CheckBox から CB1 に変更する
5. 同様にButtonのTextプロパティをButton01に変更する
6. Package ExplorerからHelloWorldプロジェクトを選択し、右クリックし
、[Run As]-[Android Application]を選択する
• ※Propertiesビューの表示方法
• Window>ShowView>Other>General>properties

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

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

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

79
Viewの整列
Layoutを変更し、ボタンやテキストを整列する
デフォルトはRelativeLayoutになっている為、LinearLayoutに変更する

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

80
Viewの整列(LinearLayout対応
)
LinearLayoutに変更する
1. プレビュー画面上で右クリックし、[Change Layout]を選択
2. New Layout Type を LinearLayout(Vertical)に変更

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

81
Viewの整列 (余白の設定)
 余計な空白があって綺麗に整列されない場合
marginの確認をする
• LinearLayoutへの変更時、配置情報によってはmarginで補正されている
ことがあります。marginの値を消すことで対応出来ます

Propertiesビューを使っ
て余計なmarginを削除す
る

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

82
実行確認
3. Package ExplorerからHelloWorldプロジェクトを選択し、右クリック
[Run As]-[Android Application]を選択する
4. エミュレータが起動し、画面デザインが変更されたことを確認する
• ボタンやテキストが垂直方向に配置されているか

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

83
EditTextの追加
レイアウトエディタの<ファイル名>タブで、画面デザインにテキス
ト入力を追加する
1. レイアウトエディタのactivity_main.xmlタブをクリックし、レイアウ
トエディタにXMLソースが表示されることを確認する
■res/layout/activity_main.xml(一部省
略)
<LinearLayout

・・・・・・・・・ >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content”
android:padding="@dimen/padding_medium"
android:text="@string/hello_world"
tools:context=".MainActivity" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content”
android:text="Button01" />
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content”
android:text=”CB1" />
This material is licensed under the Creative
</LinearLayout>
84

Commons License BY-NC-SA 4.0.
XMLエディタからEditTextを追加
2. テキスト入力ビューである EditTextタグをactivity_main.xmlに追加す
る
■res/layout/activity_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/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="EditText"></EditText>
</LinearLayout>

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

85
画面プレビューの確認
3. Layoutタブに表示を切り替えて、下記のようにEditTextが表示されてい
る事を確認する

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

追加したEditText
This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

86
実行確認
4. Package ExplorerからHelloWorldプロジェクトを選択し、右クリック
[Run As]-[Android Application]を選択する
5. エミュレータが起動し、右画面が表示されることを確認する
• テキスト入力が表示されている
• テキスト入力の表示文字列が EditText である

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

87
リソースファイルの仕組み(1)
リソースファイルを使用した画面作成の仕組み
アクティビティはRクラスを使用し、画面デザインリソースファイルの内
容を取得する
Rクラス
• ビルド時に自動生成されるクラス
• プログラムからリソースファイルの情報を取得する為に必要なクラス

取得したリソースファイル情報から、Activity#setContentViewによって
画面デザインを表示する
■MainActivity.java
public class MainActivity extends Activity {

R.layout.activity_mainが
activity_main.xmlを示す

<?xml version="1.0" encoding="utf-8"?>
@Override
<LinearLayout
public void onCreate(Bundle savedInstanceState) {
・・・・・・・・・・・
super.onCreate(savedInstanceState);
>
・・・・・・・・・・・
setContentView(R.layout.activity_main);
<EditText
}
android:id="@+id/editText1“
}
・・・・・・・・・・・
android:text="EditText"></EditText>
■setContentView
</LinearLayout>
画面デザインをアクティビティ上に表示する
This material is licensed under the Creative
88
Commons License BY-NC-SA 4.0.
リソースファイルの仕組み(2)
Rクラスとリソースファイルの関係
プログラムとリソース情報は、リソースIDで関連付けられている

■MainActivity.java

setContentView(R.layout.activity_main);
参照

■R.java
public static final class layout {
public static final int

activity_main=0x7f030000;
}

リソースID
This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

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

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

90
文字レスリソースの定義
文字列リソースファイルは、アプリケーションで使用する文字列を
定義したリソースファイルである
(res/values/strings.xml)
■文字列リソースファイル(res/values/strings.xml)

1. 画面上に表示する文字列を文字
列リソースファイルに追加する

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello_world">Hello world!</string>
・・・・・・・・・
</resources>

文字列
を参照
する

■画面デザインリソースファイル(res/layout/activity_main.xml)上のTextView
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/padding_medium"
android:text="@string/hello_world"
tools:context=".MainActivity" />

実行

3.strings.xmlに
設定されている
文字列が表示さ
れている

2. TextViewのTextプロパティから文字列リ
ソースファイルの文字列を参照する
This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

91
文字列リソースの追加(1)
文字列リソースファイルに文字列設定を追加する
1. Package Explorerからres/values/strings.xmlをダブルクリックする
2. res/values/strings.xmlのファイルがリソースエディタで開かれ、右図
の画面が表示されることを確認する

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

92
文字列リソースの追加(2)
3. Resourcesタブの[Add…]ボタンをクリックし、追加要素の選択画面を表
示する
4. 選択画面から、String を選択し、[OK] ボタンをクリックする

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

93
文字列リソースの追加(3)
5. ResourcesタブのResouces Elementsに String が追加されていることを
確認する
6. ResourcesタブのAttributes for StringのName、Valueに以下の値を入
力する
Attributes for Stringの設定値

項目名

Name

button_label

Value

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

設定値

Hello Button

94
文字列リソースの追加(4)
7. Package Explorerからres/layout/activity_main.xmlをダブルクリック
する
8. レイアウトエディタが起動したら、Layoutタブを開いてButton01を選択
する
9. PropertiesビューからTextプロパティを@string/button_label に変更
する

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

95
文字列リソースの追加(5)
10.Package ExplorerからHelloWorldプロジェクトを選択し、右クリック
[Run As]-[Android Application]を選択する
11.エミュレータが起動し、右画面が表示されることを確認する
ボタンの表示文字列が Hello Button になっている

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

96
マニフェストファイルを変更する
マニフェストエディタ
マニフェストファイルを変更する為の5つの機能がある
Manifestタブ
• バージョン情報、拡張情報等
Applicationタブ
• 使用コンポーネント情報、アイコン、アプリケーション名等
Permissionsタブ
• アクセス制限設定
Instrumentationタブ
• プロファイラ等の情報収集用クラスの設定(TestRunner等)
AndroidManifest.xmlタブ
• XMLファイルの直接編集

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

97
マニフェストファイルとは
マニフェストファイルとは?
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.

98
アプリケーションにアクティビティを
追加(1)
アプリケーションにアクティビティを追加する
MainActivity2を追加する例:
 アプリケーションにアクティビティ
MainActivity2を追加する

ファイル名
追加アクティビ
ティ

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

MainActivity2.java

99
アプリケーションにアクティビティを
追加(2)
アプリケーションに追加したアクティビティを利用できるように
Applicationタブで設定する
1. Package ExplorerからAndroidManifest.xmlをダブルクリックする
2. マニフェストエディタが起動する。マニフェストエディタの
Applicationタブを選択し、右図の画面が表示されることを確認する

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

100
アプリケーションにアクティビティを
追加(3)
3. Application Nodesの[Add…]ボタンをクリックし、追加要素の選択画面
を表示する
4. 選択画面から Activity を選択し、[OK]ボタンをクリックする

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

101
アプリケーションにアクティビティを
追加(4)
5. Application NodesにActivityが追加されていることを確認する
6. Attributes for Activityの Name に下の値を入力する

項目名
Name

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

設定値
MainActivity2

102
インターネットへのアクセス許可
を設定(1)
インターネットへのアクセス許可をPermissionsタブで設定する
1. Package ExplorerからAndroidManifest.xmlをダブルクリックする
2. マニフェストエディタが起動する。エディタのPermissionsタブを選択
し、右図の画面が表示されることを確認する

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

103
インターネットへのアクセス許可を
設定(2)
3. Permissionsの[Add…]ボタンをクリックし、追加要素の選択画面を表示
する
4. 選択画面から Uses Permission を選択し、[OK]ボタンをクリックする

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

104
インターネットへのアクセス許可を
設定(3)
5. Permissionsに Uses Permission が追加されていることを確認する
6. Attributes for Uses Permissionの Name のプルダウンから
android.permission.INTERNETを選択する

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

105
エミュレータの使用方法(1)
エミュレータとは?
Android Virtual Device(AVD)を読み込み、パソコン上でのハードウェ
ア動作をエミュレートする

エミュレータでサポートされていない機能・設定
実際の電話からの着信、実際の電話への発信
USB接続
カメラ・ビデオ撮影
ヘッドフォン接続
Bluetoothを使った通信
接続状態の設定
電池の充電レベル、AC電源の設定

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

106
エミュレータの使用方法(2)
エミュレータの操作方法
#

1 2 3

デバイスキー

内容

1 音量DOWN
4

5

3 電源

電源入・切

6
7

4 検索

検索ウィジェットに
移動

5 戻る

前の画面に戻る

6 メニュー

メニューを画面に表
示

7 ホーム

ホームを表示

8 選択ボタン

選択ボタン

9 十字キー

8 9

2 音量UP

カーソルの移動

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

107
エミュレータの使用方法(3)
画面向きの切り替え(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.

108
デバッグツールの使用方法
ADT
Eclipseのデバッグ機能がAndroidアプリケーション開発で利用できる
ブレークポイント
ステップ実行

Dalvik Debug Monitor Services(DDMS)
Android SDK同梱のデバッグツール
以下の機能がある
モニタリング
エミュレータ操作
エミュレータ・ハードウェア内の情報取得

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

109
DDMSの使用方法
DDMSを起動する
EclipseからDDMSを利用する
Eclipseのメニュー[Window]から[Open Perspective]-[DDMS]を選択する
EclipseのDDMSパースペクティブ

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

110
DDMSのデバッグ機能
DDMSのデバッグ機能
モニタリング
アプリケーションが出力するログの参照
リソース使用状況の参照

エミュレータへのデータ送信
電話発信
SMS送信
位置情報送信

スクリーンショットの取得
プロセス管理
ガベージコレクション実行
プロセス停止

ファイル操作

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

111
アプリケーションログの参照
アプリケーションログの参照
ログを出力するには、android.util.Logクラスのログ出力メソッドを使
用する
■サンプルコード
import android.util.Log;
Log.e(“HelloWorld”,
Log.w(“HelloWorld”,
Log.i(“HelloWorld”,
報を出力するログ
Log.d(“HelloWorld”,
グ
Log.v(“HelloWorld”,

“Error Message”);
“Warning Message”);
“Infomation Message”);

// エラーを出力するログ
// ワーニングを出力するログ
// アプリケーション動作の情

“Debug Message”);

// デバッグ情報を出力するロ

“Verbose Message”);

// 詳細情報を出力するログ

ログ出力

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

112
Hello Worldからログを出力する
(1)
HelloWorldの起動時にアプリケーションログを出力
1. Package ExplorerからMainActivity.javaをダブルクリックする
2. MainActivity.javaのソースコードが開かれ、右図の画面が表示される
ことを確認する

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

113
Hello Worldからログを出力する
(2)
3. MainActivity#onCreateにログ出力を行う5つのコードを追加する
■MainActivity.java
package jp.oesf.tutorial;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.e("HelloWorld",
Log.w("HelloWorld",
Log.i("HelloWorld",
Log.d("HelloWorld",
Log.v("HelloWorld",

"Error Message");
"Warning Message");
"Infomation Message");
"Debug Message");
"Verbose Message");

}
……………………

}

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

114
Hello Worldからログを出力する
(3)
4. Package ExplorerからHelloWorldプロジェクトを選択し、右クリック
[Run As]-[Android Application]を選択する
5. エミュレータが起動し、右画面が表示されることを確認する

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

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

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

116
この章のまとめ
まとめ(1/2)
Android Development Tools(ADT)
AndroidアプリケーションをEclipseで開発する為のPlug-in
Eclipseのデバッグ機能がAndroidアプリケーション開発で利用できる
• ブレークポイント
• ステップ実行
以下の機能がある
• Androidプロジェクトの作成
• Androidアプリケーションの実行・デバッグ
• リソースファイルの作成支援
– ADTは3種類のリソースファイルエディタを提供する

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

117
この章のまとめ
まとめ(2/2)
エミュレータ、 Android Virtual Device (AVD)
Android Virtual Device(AVD)を読み込み、パソコン上でのハードウェア動
作をエミュレートする

Dalvik Debug Monitor Services (DDMS)
Android SDK同梱のデバッグツール
以下の機能がある
• モニタリング
• エミュレータ操作
• エミュレータ・ハードウェア内の情報取得

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

118
5. ユーザーインタフェース
概要
本章では以下の内容について学習します
View

※1日コースでは(*)は省略します

TextView (*)
EditText (*)
Button
CheckBox
ImageView
ProgressBar
WebView

View Group
LinearLayout
FrameLayout (*)
RelativeLayout (*)

OptionMenu
Toast
AlertDialog (*)
まとめ課題 (*)

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

120
View
Viewとは
ViewはButtonやTextViewなど画面を構成する部品の基底クラスです

Viewの例: TextView
TextViewはテキスト(文字列)を表示します

Viewの例2; Button
Buttonはボタンを表示します

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

121
TextView(1)
TextViewとは
TextView は文字通り「テキスト(文字列)を表示する為のクラス」です
。文字列のサイズや文字列のカラーなど変更する事が可能

TextViewにテキストを表示する
[Hello,Android!!]とテキストを表示しましょう

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

122
TextView(2)
TextViewの追加
activity_main.xml(レイアウトファイル)をエディタで開きレイアウトツ
ールでTextViewを選択して表示されている画面上にドラッグ&ドロップ
します
このアイテムを画面上
にドラッグ&ドロップ
します。

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

123
TextView(3)
Stringリソースの追加
res/values/strings.xml(リソースファイル)をエディタで開きリソー
スツール上から表示するテキストを追加します。
※4.3デザイン以外のリソースを使用するページ参照

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

124
TextView(4)
配置したTextViewへ初期表示テキストを定義
配置したTextViewを選択して、プロパティタブのプロパティTextの値を
選択して表示させるテキストを選択。先程追加したStringリソースを使
用します

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

125
TextView(5)
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

実行結果

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:padding="@dimen/padding_medium"
android:text="@string/hello_android"
tools:context=".MainActivity" />

</RelativeLayout>

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

126
TextViewの設定を変更する(1)
TextViewのテキストサイズとテキストカラーを変更後の完成画面
配置したTextViewに対して、テキストサイズとテキストカラーを設定し
ますテキストカラー変更後の完成予定

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

127
TextViewの設定を変更する(2)
Colorリソースの追加
colors.xmlの作成方法
/res/valuesを選択した状態でAndroidXMLファイル作成ボタンをクリッ
クする

xmlファイル作成画面で以下の通り設定

項目

設定値

Resource Type

Values

Project

対象のプロジェクト名

File

colors.xml

Finishボタンをクリックして終了する
This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

128
TextViewの設定を変更する(3)
Colorリソースの追加
res/values/colors.xmlを開きリソースツール上からcolorリソースを定
義します
◆ Colorリソースの追加

RGBの数値を#16進数で設定
する
例) #FF0000

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

129
TextViewの設定を変更する(4)
Dimensionリソースの追加
dimens.xmlの作成方法
/res/valuesを選択した状態でAndroidXMLファイル作成ボタンをクリッ
クする

項目

xmlファイル作成画面で以下のように設定する
設定値

Resource Type

Values

Project

対象のプロジェクト名

File

dimens.xml

※最新バージョンではプロジェクト新規作成時
Finishボタンをクリックして終了する

に追加済になっているis licensed under the Creative
This material
Commons License BY-NC-SA 4.0.

130
TextViewの設定を変更する(5)
Dimensionリソースの追加
res/values/dimens.xmlを開きリソースツール上からDimensionリソース
を定義します
◆ Dimensionリソースの追加

Text Sizeを30spに設定する

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

131
TextViewの設定を変更する(6)
TextViewのテキスサイズとテキストカラーを設定
前項のプロパティタブのプロパティText colorとText sizeの値を設定し
ます

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

132
TextViewの設定を変更する(7)
activity_main.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

実行結果

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:padding="@dimen/padding_medium"
android:text="@string/hello_android"
android:textColor="@color/hello_android_color"
android:textSize=”@dimen/hello_android_textsize"
tools:context=".MainActivity" />
</RelativeLayout>

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

133
EditText(1)
EditTextとは
EditTextはユーザーからテキストボックスに入力された文字列を取得し
ます。
EditTextを表示して使用する。

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

134
EditText(2)
EditTextの追加
activity_main.xml(レイアウトファイル)をエディタで開きレイアウトツ
ールでEditTextを選択して表示されている画面上にドラッグ&ドロップ
このアイテムを画面上
にドラッグ&ドロップ
します。

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

135
EditText(3)
EditTextのレイアウト設定
配置したEditTextを選択して、プロパティタブのプロパティその他の
Layout widthとLayout heightを変更します

Layout width, Layout heightはレイアウトの横幅と縦の長さを指定しま
す
match_parentとすれば、縦または横に属している親ビューの大きさまで
描きます
wrap_contentとすれば、内容に応じて可変の長さになります
This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

136
EditText(4)
Stringリソースの追加
res/values/strings.xmlをエディタで開きリソースツール上から表示す
るテキストを追加します。 ※「4.3デザイン以外のリソースを使用する
」ページ参照

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

137
EditText(5)
配置したEditTextへ初期表示テキストを定義
配置したEditTextを選択して、プロパティタブのプロパティTextの値を
選択して、表示させるテキストを選択します。先程追加したStringリソ
ースを使用します

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

138
EditText(6)
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:padding="@dimen/padding_medium"
android:text="@string/hello_world"
tools:context=".MainActivity" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:ems="10"
android:text="@string/default_message" />
</RelativeLayout>

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

139
EditTextの設定を変更する(1)
EditTextのテキストカラー設定と複数行のテキスト入力を可能とす
る設定
配置したEditTextに対して、テキストカラーと複数行のテキスト入力が
可能なように設定

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

140
EditTextの設定を変更する(2)
表示する行数の追加
前項「TextViewの色と文字のサイズを変更する」を参照
配置したEditTextを選択後、プロパティタブのプロパティMaxLinesを選択し
て、何行までテキスト表示可能とするか定義します

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

141
EditTextの設定を変更する(3)
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:padding="@dimen/padding_medium"
android:text="@string/hello_world"
tools:context=".MainActivity" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:ems="10"
android:maxLines="3"
android:text="@string/default_message"
android:textColor="@color/hello_android_color" />
</RelativeLayout>

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

142
Button(1)
Buttonとは
基本的な押しボタン
クリックイベントによって押したとき処理を実装することができる
基本的な押ボタン以外に、ToggleButtonやCheckBoxなど押した状態を管
理するボタンも存在する

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

143
Button(2)
Buttonの追加
activity_main.xml(レイアウトファイル)をエディタで開きレイアウトツ
ールでButtonを選択して表示されている画面上にドラッグ&ドロップし
ます
このアイテムを画面上に
ドラッグ&ドロップしま
す。

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

144
Button(3)
Stringリソースの追加
res/values/strings.xml(リソースファイル)をエディタで開きリソー
スツール上から表示するテキストを追加する

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

145
Button(4)
配置したButtonへ表示するテキストを定義
配置したButtonを選択して、プロパティタブのプロパティTextの値を選
択して、表示させるテキストを選択。先程追加したStringリソースを使
用する。

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

146
Button(5)
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:padding="@dimen/padding_medium"
android:text="@string/hello_world"
tools:context=".MainActivity" />
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:text="@string/button" />
</RelativeLayout>

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

147
Buttonのクリックイベントを取得(
1)
Buttonが押された時の動作
サンプル
Buttonが押下された時に表示されている文字が変更します

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

148
Buttonのクリックイベントを取得(
2)
「ボタンをクリックした」ことを認識するには
仕組み
ボタンをクリックすると「イベント」というものが発生する。このイベント
をプログラムで認識する為に「イベントリスナ」を準備します
イベントを認識したいボタンに対して、あらかじめ作成したイベントリスナ
を登録しておきます
ボタンでイベントが発生すると、特定のメソッドが呼び出される

イベント発生
ボタンク
リック

public void onClick(View view) {
// 処理

処理が実行
}

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

149
Buttonのクリックイベントを取得(
3)
画面上のボタンをクリックしたときに処理を実行する方法
Activityに「OnClickListener」インターフェースをインプリメントします
ActivityにonClickメソッドをオーバーライドする
サンプルではButtonの表示文字列を変更しています

View#setOnClickListenerメソッドを使用してボタンにイベントリスナを登録
サンプルコード(Activityをイベントリスナにした例)
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
public class SampleActivity extends Activity implements OnClickListener {

・・・

①
Button button;
public void onClick(View view) {
button.setText(“Button clicked!”);

findViewById

・・・ ②
引数で指定した id を持つ

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

button = (Button)findViewById(R.id.button1);
・・・
button.setOnClickListener(this);
}
@Override
This material is licensed under the Creative
public boolean onCreateOptionsMenu(Menu menu) {
Commons License BY-NC-SA 4.0.
・・・・・・・・・

ビューオブジェクトを取得
するActivityクラスのメ
ソッド

③

150
Buttonのクリックイベントを取得(
4)
onClickメソッドでクリックしたビューを判断する方法
引数「view」から、ビューの「id」を取得して判断します
サンプルコード(activity_main.xmlの「android:id=@+id/button1」がクリ
ックされたことを判断する例)
public void onClick(View view) {
if (view.getId() == R.id.button1) {
・・・・・・・・
}
View#getId
}
Viewオブジェクトからidを
取得するメソッド

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

151
Buttonクリック実習(1)
実習 1
サンプルで説明したプログラムを作成する
実習のテーマ
Buttonが押下された時に表示されている文字を変更します

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

152
Buttonクリック実習(2)
アプリケーション概要
<プロジェクト設定>
項目

設定値

Project name

ButtonSample

Build Target

※トレーニングで指定したバージョン

Application name

ButtonSample

Package name

jp.oesf.buttonsample

Create Activity

MainActivity

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

153
Buttonクリック実習(3)
ActivityのButtonが押下された時のソースコード
public class MainActivity extends Activity implements OnClickListener {
Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// R.javaファイルからリソース情報を取得
button = (Button)findViewById(R.id.button1);
button.setOnClickListener(this);
}
public void onClick(View view){
// ボタンがクリックされたときに呼び出す
button.setText("Button clicked!!");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
・・・・・・・・・
}
}
This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

154
OnClickListener
OnClickListenerとは
クリックイベントを受け取るインターフェース
メソッドテーブル
戻り値

メソッド名

説明

void

onClick(View
v)

ビューがクリックされたときに呼び出さ
れます。

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

155
OnClickListenerの実装方法
ButtonにOnClickListenerを実装する方法
ButtonにOnClickListenerを実装する方法は大きく4つあります
匿名クラスを使ってOnClickListenerを実装する
ActivityにOnClickListenerを実装する
OnClickListener実装クラスを定義する
レイアウトxmlファイルにonClickを設定する

次のページから具体的な実装方法を説明します

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

156
方法1:匿名クラスを使う
匿名クラスを使いOnClickListenerを実装する
手順
1. Button#setOnClickListenerで引き数内でOnClickListenerを生成
2. OnClickメソッドをオーバライドする

Button bt = (Button)findViewById(R.id.button1);
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// クリックされたときの処理
}

・・・

①

・・・

②

});

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

157
方法2:Activityに
OnClickListenerを実装する
ActivityにOnClickListenerを実装する
手順
1. AnctivityにOnClickListenerを実装する
2. OnClickメソッドをオーバライドする
3. Button#setOnClickListenerで引数にthisを指定する
public class MainActivity extends Activity implements OnClickListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// OnCLickListenerの実装
Button bt = (Button) findViewById(R.id.button1);
// クリックされるとこのメソッドが呼ばれる
bt.setOnClickListener(this); ・・・
}
public void onClick(View v) {
if (v.getId() == R.id.button1) {
// Buton1が押されたときの処理
} else if (v.getId() == R.id.button2) {
// Buton2が押されたときの処理
}
}

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

・・・

③

・・・

②

158

①
方法3:OnClickListener実装クラ
スを定義する
OnClickListenerに実装クラスを定義①
手順
1.
2.
3.
4.

OnClickListener実装クラスを定義する
OnClickメソッドをオーバライドする
Activityに定義したクラスのインスタンスを作成する
Button#setOnClickListenerに定義したクラスを実装する

class OKOnClickListenerImple implements OnClickListener{・・・

①

@Override
public void onClick(View v) {
//クリックされたときの処理
・・・ ②
}
}
class CancelOnClickListenerImple implements OnClickListener{・・・
@Override
public void onClick(View v) {
//クリックされたときの処理
}
}
This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

・・・ ②

159

①
方法3:OnClickListener実装クラ
スを定義する
OnClickListenerに実装クラスを定義②
private OKOnClickListenerImple okListener = new OKOnClickListenerImple();
private CancelOnClickListenerImple cancelListener = new CancelOnClickListenerImple();

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

Button btOk = (Button)findViewById(R.id.button1);
btOk.setOnClickListener(okListener);

・・・ ④

Button btCancel = (Button)findViewById(R.id.button2);
btCancel.setOnClickListener(cancelListener);
}

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

・・・

④

160

・・・
方法4:レイアウトファイルに定義
する
レイアウトxmlファイルにOnClickListenerを設定する
手順
1. レイアウトxmlのonClickに呼び出したいメソッド名を設定します
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:text="Button"
android:onClick=“onClickButton1” >
</Button>

・・・ ①

2. Activityに1で設定したメソッドを実装します
• 引数にViewを指定する
public void onClickButton1(View v){ ・・・
//Buton01が押されたときの処理
}

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

②

161
CheckBox(1)
CheckBoxとは
CheckBoxは選択状態を持つことができる
CheckBoxをタップすると選択状態を変更する事ができる

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

162
CheckBox(2)
CheckBoxの追加
activity_main.xml(レイアウトファイル)をエディタで開きレイアウトツ
ールでCheckBoxを選択して表示されている画面上にドラッグ&ドロップ
します
このアイテムを画面上に
ドラッグ&ドロップしま
す。

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

163
CheckBox(3)
Stringリソースの追加
「TextView」の「Stringリソースの追加」ページを参照

配置したCheckBoxへ表示テキストを定義
配置したCheckBoxを選択して、プロパティタブのプロパティTextの値を
選択して、表示させるテキストを選択します。先程追加したStringリソ
ースを使用します

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

164
CheckBox(4)
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:padding="@dimen/padding_medium"
android:text="@string/hello_world"
tools:context=".MainActivity" />
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:text="@string/hello_android" />
</RelativeLayout>

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

165
CheckBoxのチェック状態を取得する
(1)
チェック状態の取得方法
OnClickListenerとOnCheckedChangeListenerを使用する方法があり、違
いは以下の通りです
OnClickListenerは、クリックイベントが発生したタイミングで呼び出される
OnCheckedChangeListenerは、チェック状態が変更されたタイミングで呼び出
される

OnClickListenerとOnCheckedChangeListenerの使用方法
OnClickListenerを使用する場合
onClickメソッド内でisCheckedメソッドを使用してチェック状態を取得しま
す。
@Override
public void onClick(View v) {
if(checkebox.isChecked() == true) {
// チェックされた状態の時の処理を記述
}else {
// チェックされていない状態の時の処理を記述
}
}
This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

166
CheckBoxのチェック状態を取得する
(2)
OnCheckedChangeListenerを使用する場合
onCheckedChangedメソッドの引数isCheckedを使用してチェック状態を取得す
る
checkbox.setOnCheckedChangeListener(
new CompoundButton.OnCheckedChangeListener() {

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked == true){
// チェックされた状態の時の処理を記述
} else {
// チェックされていない状態の時の処理を記述
}
}
});

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

167
ImageView(1)
ImageViewとは
画像を表示する際に使用するViewクラス
配置したImageViewにdrawableから画像を読み込んで表示を行う

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

168
ImageView(2)
画像の設定方法
設定したい画像をres/drawable-Xdpi

フォルダ内に格納します

※デフォルトで以下のファイルが格納されています

icon.png (Android2.2以前)
ic_launcher.png (Android2.3以降)
※launcher画像はプロジェクトを作成する時に変更可能

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

169
ImageView(3)
ImageViewの追加
activity_main.xml(レイアウトファイル)をエディタで開きレイアウトツ
ールでImageViewを選択して表示されている画面上にドラッグ&ドロップ
します
このアイテムを
画面上にドラッ
グ&ドロップし
ます。

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

170
ImageView(4)
画像の設定方法
ImageViewに画像を読込むためにはプロパティを開き、Srcに読み込ませ
たい画像に設定します

ImageViewに
画像が設定さ
れる
読み込ませたい
画像を設定する
と
This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

171
ImageView(5)
XMLファイル
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:padding="@dimen/padding_medium"
android:text="@string/hello_world"
tools:context=".MainActivity" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:src="@drawable/ic_launcher" />
</RelativeLayout>

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

172
ProgressBar(1)
ProgressBarとは
処理の進捗状況を表示する

ProgressBarを使用する
1つ目のProgressBarは以下のような設定値と
なっている
ProgressBarの値(黄色のバー)を50、
セカンダリ値(薄い黄色のバー)を75、
最大値(灰色のバー)を100、
スタイルに水平方向を指定

2つ目のProgressBarは進捗状況に値を
使用しないため永久にループする

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

173
ProgressBar(2)
ProgressBarの追加
activity_main.xml(レイアウトファイル)をエディタで開きレイアウトツ
ールでProgressBarを選択して表示されている画面上にドラッグ&ドロッ
プします
ProgressBar(Horizontal)とProgressBar (Large)の2つ配置します

このアイテムを画面
上にドラッグ&ド
ロップします。

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

174
ProgressBar(3)
ProgressBarのレイアウト設定
ProgressBarの設定値
View

Property

ProgressBar

android:id="@+id/progressBar1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:progress="50"
android:secondaryProgress="75"
android:max="100"
style=“?android:attr/progressBarStyleH
orizontal“(※)

ProgressBar

android:id="@+id/progressBar2"
android:layout_width=“wrap_content "
android:layout_height="wrap_content"

※「style=“?android:attr/progressBarStyleHorizontal”」を指定することにより
ProgressBarを水平に設定する

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

175
ProgressBar(4)
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:max="100"
android:progress="50"
android:secondaryProgress="75" />
<ProgressBar
android:id="@+id/progressBar2"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/progressBar1"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp" />
</RelativeLayout>

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

176
WebView(1)
WebViewとは
Webページを表示することができる
WebViewを使うことでアプリ内ブラウザを実現することができる

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

177
WebView(2)
手順
1. レイアウトにWebViewを配置する
2. ActivityにWebページ読み込み処理を追加する
3. インターネットアクセスのパーミッションを追加する

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

178
WebView(3)
1. レイアウトにWebViewを配置する

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

179
WebView(4)
2. ActivityにWebページ読み込み処理を追加する
WeViewのオブジェクトを取得する
setWebViewClientメソッドでWebページの表示をWebViewで行うように指定す
る
• Webページのリンクを選択したときにブラウザが起動するのを防ぐため
loadUrlメソッドで、表示したいULRを引数に指定する

public class MainActivity extends Activity {
WebView webView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView)findViewById(R.id.webView1);
webView.setWebViewClient(new WebViewClient() {});
webView.loadUrl("http://www.google.com");
}
}
This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

180
WebView(5)
3. インターネットアクセスのパーミッションを追加する
WebViewで外部ネットワークに接続する場合インターネットアクセスのパーミ
ッションを追加する

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.webviewsample"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="10" />
<uses-permission android:name="android.permission.INTERNET"/>
...略...
</manifest>
This material is licensed under the Creative
Commons License BY-NC-SA 4.0.

181
WebView(6)
Webページが表示される表示

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

182
ViewGroup
ViewGroupとは
ViewGroupは内部にTextViewなどの他のViewを含むことができるViewです
ViewGroupの内部に他のViewGroupを含むこともできる

ViewGroupの例:LinearLayout
Viewを垂直方向または水平方向に配置します

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

183
LinearLayout(1)
LinearLayoutとは
LinearLayoutはViewを垂直方向または水平方向に配置します

LinearLayoutを使用してViewを配置する
2つのTextViewを水平方向に配置
1. TextView 「Hello world !」
2. TextView 「Hello World, MainActivity!」

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

184
LinearLayout(2)
LinearLayoutの変更方法
デフォルトはRelativeLayoutになっている為、LinearLayoutに変更しま
す
プレビュー画面上で右クリックし、[Change Layout]を選択
New Layout Type を LinearLayout(horizontal)に変更

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

185
LinearLayout(3)
LinearLayoutの設定
orientationプロパティでLinearLayoutの内部のViewを配置する方向を決
定します
verticalの場合は垂直方向に、horizontalの場合は水平方向にViewが配
置されます
配置する方向の変更はLinearLayoutの変更方法を参照

verticalの場合
「垂直方向」

horizontalの場合
「水平方向」

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

186
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プログラミング入門

More Related Content

What's hot

What is tested by pre-launch (security) reports?
What is tested by pre-launch (security) reports?What is tested by pre-launch (security) reports?
What is tested by pre-launch (security) reports?ak_shio_555
 
はじめる前に知っておきたいAndroidアプリ開発のポイント
はじめる前に知っておきたいAndroidアプリ開発のポイントはじめる前に知っておきたいAndroidアプリ開発のポイント
はじめる前に知っておきたいAndroidアプリ開発のポイントShinobu Okano
 
Android lint-srp-practice
Android lint-srp-practiceAndroid lint-srp-practice
Android lint-srp-practicecch-robo
 
Android Studio開発講座
Android Studio開発講座Android Studio開発講座
Android Studio開発講座Keiji Ariyama
 
Android組み込み開発テキスト pandaboard es編
Android組み込み開発テキスト pandaboard es編Android組み込み開発テキスト pandaboard es編
Android組み込み開発テキスト pandaboard es編OESF Education
 
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介Masataka Kono
 
はてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテストはてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテストYu Nobuoka
 
2015年度研究室プレ卒研用Android講座1
2015年度研究室プレ卒研用Android講座12015年度研究室プレ卒研用Android講座1
2015年度研究室プレ卒研用Android講座1Hokuto Tateyama
 
Android学ぶを君へ。生き抜くためのナレッジ共有
Android学ぶを君へ。生き抜くためのナレッジ共有Android学ぶを君へ。生き抜くためのナレッジ共有
Android学ぶを君へ。生き抜くためのナレッジ共有Shinobu Okano
 
Visual Studio 2015 を使用した Cordova アプリの開発
Visual Studio 2015 を使用した Cordova アプリの開発Visual Studio 2015 を使用した Cordova アプリの開発
Visual Studio 2015 を使用した Cordova アプリの開発Osamu Monoe
 
Androidアプリのストレージ戦略
Androidアプリのストレージ戦略Androidアプリのストレージ戦略
Androidアプリのストレージ戦略Masahiro Hidaka
 
HTML5/JavaScriptで作るAndroidアプリ開発seminar
HTML5/JavaScriptで作るAndroidアプリ開発seminarHTML5/JavaScriptで作るAndroidアプリ開発seminar
HTML5/JavaScriptで作るAndroidアプリ開発seminarkujirahand kujira
 
Androidテスティング実践3 ユニットテスト・CI編
Androidテスティング実践3 ユニットテスト・CI編Androidテスティング実践3 ユニットテスト・CI編
Androidテスティング実践3 ユニットテスト・CI編株式会社 NTTテクノクロス
 
多分怖くない, Androidとハードウェア
多分怖くない, Androidとハードウェア多分怖くない, Androidとハードウェア
多分怖くない, AndroidとハードウェアYoshihiro Kobayashi
 
kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験アシアル株式会社
 
Android api-levels
Android api-levelsAndroid api-levels
Android api-levelsKazuaki Ueda
 

What's hot (20)

What is tested by pre-launch (security) reports?
What is tested by pre-launch (security) reports?What is tested by pre-launch (security) reports?
What is tested by pre-launch (security) reports?
 
はじめる前に知っておきたいAndroidアプリ開発のポイント
はじめる前に知っておきたいAndroidアプリ開発のポイントはじめる前に知っておきたいAndroidアプリ開発のポイント
はじめる前に知っておきたいAndroidアプリ開発のポイント
 
Android lint-srp-practice
Android lint-srp-practiceAndroid lint-srp-practice
Android lint-srp-practice
 
Android Studio開発講座
Android Studio開発講座Android Studio開発講座
Android Studio開発講座
 
Android組み込み開発テキスト pandaboard es編
Android組み込み開発テキスト pandaboard es編Android組み込み開発テキスト pandaboard es編
Android組み込み開発テキスト pandaboard es編
 
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
 
はてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテストはてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテスト
 
2015年度研究室プレ卒研用Android講座1
2015年度研究室プレ卒研用Android講座12015年度研究室プレ卒研用Android講座1
2015年度研究室プレ卒研用Android講座1
 
Androidアプリケーション開発中級研修 後編
Androidアプリケーション開発中級研修 後編Androidアプリケーション開発中級研修 後編
Androidアプリケーション開発中級研修 後編
 
Android学ぶを君へ。生き抜くためのナレッジ共有
Android学ぶを君へ。生き抜くためのナレッジ共有Android学ぶを君へ。生き抜くためのナレッジ共有
Android学ぶを君へ。生き抜くためのナレッジ共有
 
Visual Studio 2015 を使用した Cordova アプリの開発
Visual Studio 2015 を使用した Cordova アプリの開発Visual Studio 2015 を使用した Cordova アプリの開発
Visual Studio 2015 を使用した Cordova アプリの開発
 
Androidテスティング実践2 システムテスト編
Androidテスティング実践2 システムテスト編Androidテスティング実践2 システムテスト編
Androidテスティング実践2 システムテスト編
 
インフラジスティックス WPF コントロールを用いたリッチ アプリケーション開発
インフラジスティックス WPF コントロールを用いたリッチ アプリケーション開発インフラジスティックス WPF コントロールを用いたリッチ アプリケーション開発
インフラジスティックス WPF コントロールを用いたリッチ アプリケーション開発
 
Androidアプリのストレージ戦略
Androidアプリのストレージ戦略Androidアプリのストレージ戦略
Androidアプリのストレージ戦略
 
HTML5/JavaScriptで作るAndroidアプリ開発seminar
HTML5/JavaScriptで作るAndroidアプリ開発seminarHTML5/JavaScriptで作るAndroidアプリ開発seminar
HTML5/JavaScriptで作るAndroidアプリ開発seminar
 
Androidテスティング実践3 ユニットテスト・CI編
Androidテスティング実践3 ユニットテスト・CI編Androidテスティング実践3 ユニットテスト・CI編
Androidテスティング実践3 ユニットテスト・CI編
 
多分怖くない, Androidとハードウェア
多分怖くない, Androidとハードウェア多分怖くない, Androidとハードウェア
多分怖くない, Androidとハードウェア
 
kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験
 
Android api-levels
Android api-levelsAndroid api-levels
Android api-levels
 
XAML のこれまでとこれから、今「やる」べき意義
XAML のこれまでとこれから、今「やる」べき意義XAML のこれまでとこれから、今「やる」べき意義
XAML のこれまでとこれから、今「やる」べき意義
 

Viewers also liked

初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウKentarou Mukunasi
 
Android Application Development Advanced
Android Application Development AdvancedAndroid Application Development Advanced
Android Application Development AdvancedOESF Education
 
Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編OESF Education
 
[ABC2016S]Android Wear アプリ開発入門
[ABC2016S]Android Wear アプリ開発入門[ABC2016S]Android Wear アプリ開発入門
[ABC2016S]Android Wear アプリ開発入門Kenichi Kambara
 
Android Application Development Basic
Android Application Development BasicAndroid Application Development Basic
Android Application Development BasicOESF Education
 
Introduction of oesf education consortium
Introduction of oesf education consortiumIntroduction of oesf education consortium
Introduction of oesf education consortiumOESF Education
 
Android Hacks - 合宿インテント
Android Hacks - 合宿インテントAndroid Hacks - 合宿インテント
Android Hacks - 合宿インテントMasanori Ohkawara
 
Designing native android apps
Designing native android appsDesigning native android apps
Designing native android appsRyan Harter
 

Viewers also liked (9)

初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ
 
Android Application Development Advanced
Android Application Development AdvancedAndroid Application Development Advanced
Android Application Development Advanced
 
Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編
 
[ABC2016S]Android Wear アプリ開発入門
[ABC2016S]Android Wear アプリ開発入門[ABC2016S]Android Wear アプリ開発入門
[ABC2016S]Android Wear アプリ開発入門
 
Android Application Development Basic
Android Application Development BasicAndroid Application Development Basic
Android Application Development Basic
 
Introduction of oesf education consortium
Introduction of oesf education consortiumIntroduction of oesf education consortium
Introduction of oesf education consortium
 
Android Hacks - 合宿インテント
Android Hacks - 合宿インテントAndroid Hacks - 合宿インテント
Android Hacks - 合宿インテント
 
Designing native android apps
Designing native android appsDesigning native android apps
Designing native android apps
 
Androidテスティング実践 基礎編
Androidテスティング実践 基礎編Androidテスティング実践 基礎編
Androidテスティング実践 基礎編
 

Similar to Androidプログラミング入門

10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]
10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]
10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]AT GS
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#Yuta Matsumura
 
初めてのFacebookアプリの開発
初めてのFacebookアプリの開発初めてのFacebookアプリの開発
初めてのFacebookアプリの開発Shinichi Hirauchi
 
Windowsストアアプリ開発 オープンセミナー広島
Windowsストアアプリ開発 オープンセミナー広島Windowsストアアプリ開発 オープンセミナー広島
Windowsストアアプリ開発 オープンセミナー広島Akira Onishi
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今Yuki Igarashi
 
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイルVisual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイルAkira Inoue
 
Windows phoneの開発ツール
Windows phoneの開発ツールWindows phoneの開発ツール
Windows phoneの開発ツールNobuaki Aoki
 
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向Tsutomu Ogasawara
 
Web App Framework at SwapSkills vol28
Web App Framework at SwapSkills vol28Web App Framework at SwapSkills vol28
Web App Framework at SwapSkills vol28光一 原田
 
Adobe Edge Inspectを利用してデバッグ
Adobe Edge Inspectを利用してデバッグAdobe Edge Inspectを利用してデバッグ
Adobe Edge Inspectを利用してデバッグKeisuke Todoroki
 
ARコンテンツ作成勉強会:使ってみようSmartAR 基礎から支援ツール活用まで
ARコンテンツ作成勉強会:使ってみようSmartAR  基礎から支援ツール活用までARコンテンツ作成勉強会:使ってみようSmartAR  基礎から支援ツール活用まで
ARコンテンツ作成勉強会:使ってみようSmartAR 基礎から支援ツール活用までTakashi Yoshinaga
 
Dev camp2012jpn day2special
Dev camp2012jpn day2specialDev camp2012jpn day2special
Dev camp2012jpn day2specialKatsuhito Katoh
 
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...Developer Camp 2012 Japan Fall
 
Visual Studio を使わず .NET する
Visual Studio を使わず .NET するVisual Studio を使わず .NET する
Visual Studio を使わず .NET するm ishizaki
 
クロスプラットフォーム開発入門
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門minazou67
 
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Codeどっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio CodeTakashi Okawa
 
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみたCordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみたShin Ogata
 
Cstコース発表2021
Cstコース発表2021Cstコース発表2021
Cstコース発表2021Yutaka Matsuno
 

Similar to Androidプログラミング入門 (20)

10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]
10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]
10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
 
初めてのFacebookアプリの開発
初めてのFacebookアプリの開発初めてのFacebookアプリの開発
初めてのFacebookアプリの開発
 
Windowsストアアプリ開発 オープンセミナー広島
Windowsストアアプリ開発 オープンセミナー広島Windowsストアアプリ開発 オープンセミナー広島
Windowsストアアプリ開発 オープンセミナー広島
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
 
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイルVisual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
 
Windows phoneの開発ツール
Windows phoneの開発ツールWindows phoneの開発ツール
Windows phoneの開発ツール
 
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向
 
Web App Framework at SwapSkills vol28
Web App Framework at SwapSkills vol28Web App Framework at SwapSkills vol28
Web App Framework at SwapSkills vol28
 
Adobe Edge Inspectを利用してデバッグ
Adobe Edge Inspectを利用してデバッグAdobe Edge Inspectを利用してデバッグ
Adobe Edge Inspectを利用してデバッグ
 
ARコンテンツ作成勉強会:使ってみようSmartAR 基礎から支援ツール活用まで
ARコンテンツ作成勉強会:使ってみようSmartAR  基礎から支援ツール活用までARコンテンツ作成勉強会:使ってみようSmartAR  基礎から支援ツール活用まで
ARコンテンツ作成勉強会:使ってみようSmartAR 基礎から支援ツール活用まで
 
Android0422
Android0422Android0422
Android0422
 
Dev camp2012jpn day2special
Dev camp2012jpn day2specialDev camp2012jpn day2special
Dev camp2012jpn day2special
 
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
 
Visual Studio を使わず .NET する
Visual Studio を使わず .NET するVisual Studio を使わず .NET する
Visual Studio を使わず .NET する
 
クロスプラットフォーム開発入門
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門
 
C#
C#C#
C#
 
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Codeどっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
 
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみたCordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
 
Cstコース発表2021
Cstコース発表2021Cstコース発表2021
Cstコース発表2021
 

Recently uploaded

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 

Recently uploaded (8)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 

Androidプログラミング入門