• 検索結果がありません。

勉強会 資料 Google Developer Group 京都 08 14

N/A
N/A
Protected

Academic year: 2018

シェア "勉強会 資料 Google Developer Group 京都 08 14"

Copied!
109
0
0

読み込み中.... (全文を見る)

全文

(1)

AndroidHello World しよう

日本Androidの会 永野行洋

(2)

下準備

Eclipseのインストール

ADTプラグインのインストール

Android SDKのインストール

(3)

Eclipse のインストール

http://www.eclipse.org/downloads/ から Eclipse

IDE for Java Developersを選択してダウンロー

ド。

ダウンロードしたファイルを解凍する。

解凍したフォルダのeclipse.exeを実行する。

(4)

ADT プラグインのインストール

Window->Preferrenceからオプションメニュー

を起動する。

Install/Updateより、Available Software Sitesを

選択する。

Addをクリック。

NameにADT。Locationにhttps://dl-

ssl.google.com/android/eclipse/ を指定する。

(5)

ADT プラグインのインストール2

Help->Install New Softwareを選択する。

Work Withの欄にADTと入力する。

下欄に出てくるDeveloper Toolsを選択する。

Next->Next->I Accept...->Finishでインストー

ル。

(6)

Android SDK のインストール

http://developer.android.com/intl/ja/sdk/1.5_r3/index.htm

からダウンロード。

ダウンロードしたファイルを解凍する。

EclipseのPreferencesにAndroidの項目が出てい

るので、SDK Locationに解凍済みのSDKの

フォルダを指定する。

(7)

プロジェクトの作成

[File] > [New] > [Project] を選択する。

[Android] > [Android Project] を選択し、[Next]

>を選択する。

(8)

プロジェクトの作成2

Project NameにHelloAndroidと指定する。

Build TargetにGoogle APIsを指定する。

Application NameにHelloAndroidと指定する。

Package Nameにjp.android.helloandroidと指定す

る。

Create ActivityにHelloAndroidと指定する。

(9)

プロジェクトの実行

Run->Debugで表示されるDebug AsにAndroid

Applicationを選択する。

ビルドは自動で実行される。手動で行いたい

ときはProject->Build Automaticallyのチェック

を外す。

ビルドに使用するJavaのバージョンは1.5.xに

しておくこと。

(10)

プロジェクトのカスタマイズ

res/layout/main.xmlを開く

ViewsからButtonをドラッグする。

TextをChangeに変更する。

TextViewをクリックし、idに@+id/Text01と入

力しておく。

(11)

プロジェクトのカスタマイズ 2

HelloAndroid.javaを開く。

extends Activityの後ろにimplements

OnClickListnerを追加する。

CTRL+1(Quick Fix)で表示される修正候補か

らAdd Unimplemts Methodsを選択する。

(12)

プロジェクトのカスタマイズ3

OnCreate()に以下のコードを追加する。

Button b = (Button)findViewById(R.id.Button01);

b.setOnClickListener(this);

(13)

プロジェクトのカスタマイズ 4

onClickに以下のコードを追加。

TextView v =

(TextView)findViewById(R.id.Text01);

v.setText(“Text has changed.”);

再度プロジェクトを実行する。(今度はデ

バッグのアイコンでOK)‏

(14)

クテ ビテ View ラ フサ ク ンテント

⽇本Aをよィんろよ 会 組 込 Wに ー ー

株式会社 ン ー 技術部研究開発課Aをよィんろよ 当 ー

近藤昭雄

京都 GTUG Android Hackathon 第一回 Android 勉強会

(15)

自⼰紹介

組 込 業界10年目

⽇本Aをよィんろよ 会 幹事

200せ/11/12 Aをよィんろよ Sとは 発表さ 当⽇ Aをよィんろよ エろ「ろ開設 200。/02/0す Aィmaよろ」」ん-す00 Aをよィんろよ

200。/02/21 Aをよィんろよ情報 開設 ン ⽅法 公開 200。/04/2す にんんる」ら Aをよィんろよ Sとは Hac「atれんを 参加

200。/0す/11 大阪 Aをよィんろよ勉強会開催

200。/0す/1ず どSどで Aをよィんろよ 紹介 200。/0ず/23 早稲⽥大学主催Aをよィんろよ勉強会 登壇

200。/0。/24 Aをよィんろよ どmbらよよらよ のaァaをがにんんる」ら にィんウァき 開設 200。/09/12 ⽇本Aをよィんろよ 会組 込 Wに ー ー就任

200。/10/14 ねへ どxァん Pィん 出展

200。/12/0。 ⽇経ばろをウx2009年1⽉号 Aをよィんろよ 記事執筆

2009/02/20 OSで へん「オん 2009 Sァィろをる Aをよィんろよ とらェ Pれんをら 1 ⽅法 紹介 2009/02/2せ Aをよィんろよ ー開催

2009/03/19 20 Aをよィんろよ Hac「atれんを へウtんィ し 参加 2009/0す/1す 1ず Aをよィんろよ 開発 ー開催

2009/0す/1。 にんんる」ら とらェら」んァらィ とaオ ー ー

2009/0ず/09 にんんる」ら とらェら」んァらィ とaオ ン 登壇 2009/0ず/10 Aをよィんろよ Hac「atれんを へウtんィ し 参加

(16)

クテ ビテ

(17)

クテ ビテ

デ 画⾯表⽰ こ 基本的 機能 単位

デ Actろェろtオ 継承 こ べね わ ⾯倒 処理 ⾏わ く ほ 勝

⼿ や く

デ ソッ ー ー こ 様々 処理 可能

デ 機能 違う画⾯ 持 別 起 し 連携さ

デ 画⾯表⽰ Vろらエ 使用

デ ー ン 集合体

デ 通常 Actろェろtオ以外 MaァVろらエ 扱うこ 特化し MaァActろェろtオや WらbVろらエ あ

(18)

クテ ビテ

デ Actろェろtオ AをよィんろよMaをろりらイt.xm」 宣⾔し い 起 い デ AをよィんろよMaをろりらイt.xm」 中⾝

(19)

クテ ビテ

デ 増や 起 設定 起 時 選択

(20)

クテ ビテ

デ maろを.jaェa コ ーし ー

デ maろを2.jaェa

(21)

クテ ビテ

デ maろを2 中⾝

(22)

クテ ビテ

デ こ し 利用 い AをよィんろよMaをろりらイt.xm」

maろを2 追加し や

(23)

クテ ビテ

デ 起 時 選択 う

(24)

ラ フサ ク

(25)

ラ フサ ク

デ 基本的 以下 主 持

デ onでィeate(Bundle)

最初 起 時 呼 んをSaェらねをイtaをcらStatら ソッ 保存さ 情報 あ 場合 引数 てウをよ」ら そ 情報 渡さ

デ onStaィt()

表⽰さ 直前 呼び出さ

デ onReイume()

ー ー ⼊⼒ 受け付け 時 呼び出さ 再⽣ 開始

デ onPauイe()

直前 呼び出さ ソッ 少 く

何 通知 く破棄さ 注意

(26)

ラ フサ ク

デ onStop()

く使わ 時 呼び出さ が他 起 し

時や ン 終了 直前き し し んをPaウイら 説明 書い 少 く 場合 んをStんァやんをとらイtィんオ 呼び出さ 破棄さ 場合 あ 注意

デ onReイtaィt()

んをStんァ 呼 終了 再び 表⽰さ 時 呼び出さ

デ onとeイtィoy()

破棄さ 直前 呼び出さ んをStんァ 説明 書い う 呼び出さ いこ 注意

デ onSaveInイtanceState(Bundle)

状態 保存 呼び出さ ここ 引数 てウをよ」ら 対し 値 保存 終了し い 保存し 値 んをでィらatら ソッ 引数 引 継

再度起 し 時 てウをよ」ら 渡さ 値 利用し 状態 復元さ

(27)

基礎編前編 ラ フサ ク シーケンス

(28)

ラ フサ ク

デ 画⾯ 回転

onSaveInイtanceState > onPauイe > onStop > onでィeate > onStaィt > onReイume

ソッ 簡単 ー ー 以下 う 途中 関数名 打 込 状態

でtィ」+Sァacら 押 がWろをよんエイ 場合 ばろをウxやMac キー 変え 必要 あ き

デ んをPaウイら 以下 ソッ 追加さ

(29)

ウト

(30)

ウト

デ そ 画⾯構成 司 物

デ 画⾯表⽰ ー 要素 基本的 xm」 記述 がコー ⽣成 可能き

主 以下 通

ばろをらaィばaオんウt

⼀直線上 並

へab」らばaオんウt

HへMば う 使用

Rら」atろェらばaオんウt

ッ 同⼠ 互い 相対的位置 指定

Absoluteばaオんウt

絶対座標 位置 指定 現在 非推奨

細 い 為 使い勝⼿

Frameばaオんウt

常 左上 し 配置 場所 特定 い わ

配置し 前⾯ 重 あわ

(31)

ウト

ばろをらaィばaオんウt

横 並 こ →

xm」 ソー コー ↓

(32)

ウト

ばろをらaィばaオんウt

縦 並 こ →

xm」 ソー コー ↓

(33)

View

(34)

View

デ にべね 構成 基本的 描画コン ー ン

デ ばaオんウt Vろらエ 継承し 作 い 代表的 Vろらエ

へらxtVろらエ

⽂字 表⽰ Vろらエ

どよろtVろらエ

⽂字⼊⼒ Vろらエ

ねmaるらVろらエ

画像 表⽰ Vろらエ

てウttんを

ン 構成 Vろらエ

Scィん」」Vろらエ

コン ー さ Vろらエ

MaァVろらエ

Maァ表⽰ 構成 Vろらエ

WらbVろらエ

表⽰ 構成 Vろらエ

(35)

View

デ てウttんを 追加し

(36)

View

デ てウttんを 押し こ 検知 てウttんを ねと 割 振 必要 あ

デ みaをよィんろよ:ろよめ 属性 みつ+ろよ/bウttんを1め 指定 こ ねと bウttんを1 指定

デ ソー コー こ ねと Vろらエ 取得 以下 う

(37)

View

デ てウttんを 押し こ 検知 コー

※ ン 押 ン ⽂字 ナc」ろc「!ナ 変わ

(38)

ンテントフ ンテント

(39)

ンテント ンテントフ

デ Aをよィんろよ 最 重要 機能 ⼀

デ ねをtらをt 意図 目的 いう意味 あ

デ 主 起 際 ー 使用さ

デ 大別 明⽰的 ン ン 暗黙的 ン ン 2種類あ

明⽰的 ン ン 直接指定し 起 さ

暗黙的 ン ン 明⽰的 起 さ 指定 ン ン

ー 起 あ 程度推測 け 情報 ン

ン ⼊ く 該当 起 該当

複数あ 場合 ー ー選択 表⽰さ

(40)

ンテント ンテントフ

デ 明⽰的 ン ン 使い⽅

デ 直接指定し イtaィtActろェろtオ 起 さ

こ 場合 maろを2 起

(41)

ンテント ンテントフ

デ 暗黙的 ン ン 使い⽅

デ 直接指定 ン ー 型 指定

デ こ 場合 みろmaるら/jァらるめ ー SどNと こ ー ー 起 こ

デ 複数起 場合 選択 出

(42)

ンテント ンテントフ

デ ン ン 記述 こ ン ン 受け取 起

デ AをよィんろよMaをろりらイt.xm」 以下 記述 追加 ・・・

(43)

クテ ビテ

遷移 値 受け渡し

(44)

クテ ビテ 遷移

デ 遷移さ 主 関数 以下 通

デ イtaィtActろェろtオ

起 さ デ イtaィtActろェろtオなィんRらイウ」t

起 さ 結果 受け取

(45)

クテ ビテ 間 値 受け渡し

デ maろを maろを2 値 渡し

デ 値 渡 ねをtらをt ァウtどxtィa関数 使う デ maろを.jaェa

デ maろを2.jaェa

(46)

クテ ビテ 間 値 受け渡し

デ maろを2 起 結果 maろを 渡し

デ 値 返 ねをtらをt ァウtどxtィa関数 使う デ maろを.jaェa

(47)

クテ ビテ 間 値 受け渡し

デ maろを2.jaェa

(48)

クテ ビテ 間 値 受け渡し

デ "戻 値" maろを わ こ

(49)

お疲 様 した!

(50)

ー ン 原 樹

Ma Vi w 使い方

2009 8 14

Android Hackathon in Kyoto 勉強会

(51)

Copyright© 2009 EMOTIONPLUS

Ma Vi w 何 や?

地図情報 表示 ビ ー

思 く い

情報 表示

ー ー 指示 け付

け 部品

ボタン 一種

(52)

Copyright© 2009 EMOTIONPLUS

素朴 疑問…

ータ うや 扱う や?

処理 実装 面倒く うや

位置情報

(53)

Copyright© 2009 EMOTIONPLUS

素朴 疑問… 対 回答

ータ うや 扱う や?

Vi MapView 使え い!

ータ ンターネ

接続 い い 表示 出 い!

処理 実装 面倒く うや

Ma Vi

使う 必要

位置情報

無く 使え

(54)

Copyright© 2009 EMOTIONPLUS

地図表示A

Ma 地図表示

実現 A

地図表示 コン や地図

ー 追加

Ma 利用

A ー 得 必要 あ

必要

(55)

Copyright© 2009 EMOTIONPLUS

A ー 得方法

証明書

附属 いう 使う

Keytool –list –keytool < ーザ >¥.android¥debug.keystore

※こ パ EclipseAndroidエ ータを実行す 場合

ワー 入力 ンター

(56)

Copyright© 2009 EMOTIONPLUS

A ー 得方法

http://code.google.com/intl/ja/android/maps-api-signup.html

入力 [Generate API Key]

**:**:**: …… :**:** 入力

(57)

Copyright© 2009 EMOTIONPLUS

A ー 得方法

ン画面 表示 表示

(58)

Copyright© 2009 EMOTIONPLUS

AV 準備

ータ 使う場合 対応 AV 必要

作成 い い あ 作成 く

 Eclipse [Window] [Android AVD Manager] 選択

Name 適当

Target [Google APIs 1.5] 選択

SDCard 適当

(59)

Copyright© 2009 EMOTIONPLUS

修正

Ma Vi 追加

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"

android:layout_width="fill_parent" android:layout_height="fill_parent"

>

<com.google.android.maps.MapView android:id="@+id/mapview"

android:layout_width="fill_parent" android:layout_height="fill_parent" android:enabled="true"

android:clickable="true"

android:apiKey=“< >" />

</LinearLayout>

(60)

Copyright© 2009 EMOTIONPLUS

ビ 修正

修正

import com.google.android.maps.MapActivity; import android.os.Bundle;

public class MapTest extends MapActivity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.main); }

@Override

protected boolean isRouteDisplayed() { return false;

} }

Activity

MapActivity

追加

(61)

Copyright© 2009 EMOTIONPLUS

ニ 修正

 Google 提供 追加

ンターネ パー 追加

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android“… >

<application android:icon="@drawable/icon" … >

<activity android:name=".MapTest“ … >

※途中 省略

</activity>

<uses-library android:name="com.google.android.maps" />

</application>

<uses-sdk android:minSdkVersion="3" />

<uses-permission android:name="android.permission.INTERNET" />

</manifest>

追加

ンターネ 使用

(62)

Copyright© 2009 EMOTIONPLUS

あえ 動 う!

情報 実行

! 出 ! … や

指 動 …

い!

中心位置 指定 い!

衛星写真

いうわけ 機能 追加 う!

(63)

Copyright© 2009 EMOTIONPLUS

ー 機能 追加

Ma Vi 提供 コン 簡単

Ma 使う方法

修正

import com.google.android.maps.MapActivity; import com.google.android.maps.MapView; import android.os.Bundle;

public class MapTest extends MapActivity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.main);

MapView map_view = (MapView)findViewById(R.id.mapview); map_view.setBuiltInZoomControls(true);

} }

け!

(64)

Copyright© 2009 EMOTIONPLUS

ー コン ー く …

ボタン

自動的 配置

ボタン

ー ン/

注目!

(65)

Copyright© 2009 EMOTIONPLUS

指定 位置 中央

緯度 経度 使 地図 表示位置 指定

修正

import com.google.android.maps.GeoPoint; import com.google.android.maps.MapActivity; import com.google.android.maps.MapController; import com.google.android.maps.MapView;

public class MapTest extends MapActivity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.main);

MapView map_view = (MapView)findViewById(R.id.mapview); map_view.setBuiltInZoomControls(true);

MapController map_ctrl = map_view.getController(); // 北緯3459 42 東経13544 19

double latitude = 34.0d + 59.0d / 60 + 42.0d / 3600; double longitude = 135.0d + 44.0d / 60 + 19.0d / 3600; int latitude_1e6 = (int)(latitude * 1E6);

int longitude_1e6 = (int)(longitude * 1E6);

GeoPoint point = new GeoPoint(latitude_1e6, longitude_1e6); map_ctrl.setCenter(point);

map_ctrl.setZoom(16); // }

}

MapController 緯度 経度 値 計算 GeoPoint

地図 中心位置

い ー ベ

(66)

Copyright© 2009 EMOTIONPLUS

実行 …

見 う …

う 今 い

場所 …

(67)

Copyright© 2009 EMOTIONPLUS

地図情報 切 替え

地図 表示 行え

衛星写真

対応 場所 表示

渋滞情報 表示 現在 一部

実装 超簡単!

map_view.setSatellite(true); // 衛星写真に 替え

(68)

Copyright© 2009 EMOTIONPLUS

最後

今回パ

ー表示

位置 連動

地図 位置情報

チパネ 操作 処理

以 う 難う い !

※内容 一部 Google 作成 提供 コン ベー 変更 表示 2.5 記載 条件 使用

(69)

ND 使い方

日本 会 幹事 四国支部長

瀬戸 直喜

ネ 開発環境

※こ 資料 一部 Google が作成 提供し コン ンツをベ に変更したも 表示2.5 に記載 条件に従っ 使用し います

京都 サ 号館

(70)

2

自己紹介

徳島 某 系企業 勤務

業務系& 系

実装系 ン

今 遅く い!こ 始 開

発 連載中

第 回: こ

(71)

ェン

3

(72)

ND 概要

4

(73)

ND と

コ 可能 ソ

を実装 た

– ソ コ をコン ビ

、共有 を生成

– 一 ュ 利用

– 実機 展開 機能

5

(74)

ND 含ま てい

6

(75)

ND 特徴

7

生成

簡単 ビ を記述 コン

安定版ネ 一部 、将来

ョン 保証 但 、 以

– 専用

– サ

関連 を順次追加予定

*:組込機器に広く用いら 32bit RISC CPU 高性能

(76)

ー テク ャ上 ND と

8

Bionic libc

Bionic libc

Bionic libc

Android NDK

Android NDK

(77)

専用

記 互換性

– そ 他

例外機能 未サ

及び をサ

9

専用機能を有

専用機能を有

(78)

由来

– 故 、 セン セン

10

BSD BSD

(79)

とネ テ コー

11

Android

Android ション ション

C/C++

C/C++

通常 ソ 動作

N N

N N

(80)

ネ テ コー 実装と利用

側 ワ を け ソ

を宣言

– []

ネ 側 ソ 実体を実装

共有 用意 、

ョン 組 込

12

(81)

ネ テ コー 実装と利用

共有 名 標準 規約 従う

ュ 名 、 ン

ン を含

側 共有 を

… 不要

13

(82)

ND 利用 け 注意事項

ネ コ あ 開発 良く い

原則 、 ン を意識 、

サ 則 記述

記 理由 ネ コ 記述

こ 許さ い

– 既 コ を流用 た

– ン を確保 た

を十 理解 こ を推奨

14

(83)

ND 使い方

15

(84)

ND ン ー W 場合

16

ン ー 必要

ン ー 必要

最新版 仮想実行環境

– 未サ

– 以降

– ※ ン 時 指定

(85)

ND ン ー 流

17

(86)

ND ン ー 流

18

(87)

ND 配置

後、 配 任意

、 本体を配置

19

ン ー 方法

ン ー 方法

(88)

ND ン ー 流

20

(89)

ND ー パ 設定

21

ン ー 方法

ン ー 方法

ホ 中

_ _ 、

を設定

rt A R I _ K_R T= :¥¥ g i ¥¥a r i k 1 5_r1¥¥

※ 文を 最終行 追加

※ = 両隣 空白文 を入 いこ

※ 空白文 を入 いこ を

(90)

ND ン ー 流

22

(91)

実行

移動

を実行

23

ン ー 方法

ン ー 方法

(92)

ND ン ー 流

24

(93)

ン ー 完了

25

表示を確認

(94)

ネ テ コー ビ 方法

26

(95)

ネ テ コー ビ 方法

27

(96)

ネ テ コー 配置

任意 、 記

を配置

– ネ ソ コ

28

(97)

ネ テ コー 例

29

_ _ _ _ _

}

■ ■ second.c second.c JNI JNI 形式 形式 記述した 記述した “add add 関数 関数

}

■ ■ first.c first.c 通常 通常 C C ロ ロ ム ム

(98)

ネ テ コー ビ 方法

30

(99)

ついて

ネ をビ た

、 た 、共有

ュ 化 こ を宣言

ュ 対 、複数

定義可能

31

(100)

記述

32

_ ン 指定

: ビ

_ 変数 初期化

_ ュ 名を記述

_ _ ソ 名を記述

_ _ ビ

: 依 共有 ビ

_

_

_ _

_ _ 名 利用

_ _ 利用 共有

(101)

ネ テ コー ビ 方法

33

(102)

記述

ョン 必要 ネ

ュ を定義

配置場所

– ョン 短縮名

34

_ _

_

_ _ : ョンソ

_ : _ 定

義 た ュ 名 空白区

(103)

ネ テ コー ビ 方法

35

(104)

ョン 短縮名を指定 、

ビ を実行

36

、 定義 た ョン

短縮名 名

(105)

ネ テ コー を使う

37

経由 を呼び出

}

宣言

}

(106)

実行結果

38

(107)

ND 使い方まと

39

(108)

40

終わ

(109)

ネ コ を再コン

等 を再コン

※ → 順序 コン こ

まけ:再コンパ 方法

41

再コンパ 方法

再コンパ 方法

参照

関連したドキュメント

三宅島では 1995 年から 2000 年まで、東京都三宅村の施設で当会が業務を受託している

① Google Chromeを開き,画面右上の「Google Chromeの設定」ボタンから,「その他のツール」→ 「閲覧履歴を消去」の順に選択してください。.

基本目標4 基本計画推 進 のための区政 運営.

しかしながら、世の中には相当情報がはんらんしておりまして、中には怪しいような情 報もあります。先ほど芳住先生からお話があったのは

図表の記載にあたっては、調査票の選択肢の文言を一部省略している場合がある。省略して いない選択肢は、241 ページからの「第 3

 Rule F 42は、GISC がその目的を達成し、GISC の会員となるか会員の

自分ではおかしいと思って も、「自分の体は汚れてい るのではないか」「ひどい ことを周りの人にしたので

は内務大臣が区会からの3名の推薦候補者の中から選定して上奏し裁可を得