42
Android イ業本部 画開発部 川平 航

みゆっき☆Think#3 「androidに触ってみるよ!」

Embed Size (px)

Citation preview

Android

モバイル事業本部企画開発部

川平航介

Androidの時代がやってきた!

� Android搭載スマートフォンが増えてきた

� 日本でも新機種が続々と

2

Agenda

� Androidの紹介

� Androidアプリの作り方

� Android Market

�作ってみたアプリの紹介

3

自己紹介

�川平航介

�モバイル事業本部企画開発部

◦ モバイルサイトのプラットフォームとか

� 2009年4月入社

◦ 今年で3年目です

� Id: @binzume

4

ANDROIDの紹介の紹介の紹介の紹介

5

Android??

�モバイル向けプラットフォーム

◦ Google

◦ 2007年11月

◦ オープンソース→ソース読めます

◦ ドロイド君

6

バージョンについて

� 1.6 (Donut)◦ 音声検索機能

� 2.1 (Eclair)◦ 多くの解像度に対応,ライブ壁紙

� 2.2 (Froyo)◦ FlashPlayer10使える,高速化

� 2.3 (Gingerbread)◦ 高速化,Javaを使わなくても開発可能に

詳しくはWikipediaを…

7

Android Market上での統計

� 2.2 63.9%� 2.1 27.2%� 1.6 3.5%� 2.3 2.5% (2.3.3含む)

2011/04/01

8

日本では…

� とあるアプリの場合

� 2.2 39.3%� 2.1 47.8%� 1.6 6.4%� 2.3 6.0%

2011/04/13

9

アーキテクチャ(1)

� Wikipediaより

10

アーキテクチャ(2)

�こんな感じ

Linux

標準ライブラリ .

アプリケーション

コア・ライブラリ

DalvikVM

アプリケーションフレームワーク

11

Androidアプリ開発ではこの辺が重要

標準ライブラリ

� OpenGL 3D/2Dグラフィック

� SQLite データベース

� Web Kit HTMLの表示

�他色々

◦ 今回ライブラリの話はしません

12

DalvikVM

� Androidアプリを実行する仮想マシン

◦ 省メモリ

◦ Javaで書いたアプリはDalvik用のコードに変換して実行する

◦ Android 2.2からはJITコンパイルに対応

13

ANDROIDアプリの作り方アプリの作り方アプリの作り方アプリの作り方

14

開発環境

� Java

� Android SDK

� Eclipse + ADT Pluginが便利

◦ ADT : Android Development Tools

導入方法などは適当にググって!

15

Java

� Javaで開発するのが現実的

◦ NDKを使えば他の言語で書いたライブラリ等を呼び出せる

� NDK : Native Development Kit

� 端末のCPUに依存するアプリになってしまう

16

Android SDK

http://developer.android.com/sdk/index.html

� SDKの内容

◦ AndroidのAPI使うためのSDK本体

◦ サンプルプログラム

◦ エミュレータ

◦ 開発用のツール

17

Eclipse + ADT Plugin

� Eclipse

◦ 超便利

(贅沢言うなら,もう少しサクサク動いて欲しい)

� ADT Plugin

◦ Eclipse上でAndroid SDKのツールを簡単に使える

◦ コンパイル→端末に転送→実行がワンク

リックで

18

アプリケーションフレームワーク

� Androidアプリの肝

◦ Activity

◦ Service

◦ Intent

◦ Content Provider

ActivityとIntent は必修!

19

Activity

� 表示される画面の単位

◦ Activityクラスを継承して処理を書く

◦ 画面が切り替わるとき別のActivityが起動している

◦ 前のActivityも保持され,戻ることができる

20

Activity A Activity B Activity C

Cを終了しBにBを終了しAに

Bを起動 Cを起動

ActivityとView

� Activityはまず最初にViewを用意する

� View = 画面に表示する内容

◦ ボタンや画像,テキストなどを置ける

ボタン

テキスト

Activity

View画像

21

ActivityとView

� Viewの内容はlayoutというxmlに書く

◦ Javaのコードでも書けるけどxmlで定義するのが良い

◦ EclipseのADT PluginならならならならGUIでボタンなどを配置できる(…が日本語使うのは難あり)

22

Service

� Activityと違って画面には出ない

◦ バックグラウンドで動く

� Activityを起動したり

� 通知領域にアイコンやメッセージを出すなど

◦ 通知領域

23

Intent

� ActivityやService間でデータを受け渡す

◦ 例:ボタンを押したら画面が切替わる

Activity A Activity B

ボタンボタン

1ボタンを押す

2AがIntent投げる

3 Bが起動しIntent受け取るIntent

24

Intent

�渡せるもの

� URL

� 数値

� 文字列

� …など

� Intentは別のアプリにも送れる

25

Intent

�明示的Intent

◦ 指定したActivityやServiceを起動したりデータを渡せる

�暗黙的Intent

◦ URLやファイルをIntentで投げると対応アプリが自動的に起動する

� 複数ある場合はユーザーが選択する

26

Content Provider

�他のプロセスにファイルやDBを提供� ファイル自体はIntentで渡せない

� 他のアプリからURIでアクセスできる

� 例: content://com.example.hoge.fileprovider

27

センサー類

� GPS

�加速度

�ジャイロ

�コンパス

�カメラ

28

その他

�ライブ壁紙

� 動く壁紙

�ウィジェットアプリ

� ホーム画面に置ける常駐アプリ

�ホームアプリ

� ホーム画面自体もアプリで作成できる

29

気を付けること:メモリ

� Javaだからメモリリークとか気にしなくて良い?

→そんなことはない

�基本的に1アプリ16MB

� javaのstaticメンバ等は避けるのが無難� アプリ画面を閉じてもプロセスは生存してる

30

気を付けること:速度

� UIスレッドで重い処理をしない

◦ ネットワーク

◦ ファイルアクセス

�別スレッドで処理する

◦ Service

◦ AsyncTask

31

気を付けること:環境

�環境は様々

◦ OSのバージョン

◦ 画面の解像度

◦ 使えるセンサーの種類

◦ カメラ・フラッシュの有無

32

ANDROID MARKET

33

Android Market

https://market.android.com/

34

Android Market

�アプリケーション数:20万以上

◦ 2011年4月時点

�無料のアプリが多い

◦ 65%が無料

◦ 審査などは無い

◦ 良いアプリ探すのは結構大変

35

作ったアプリを公開する

1. 開発者用アカウントを取得($25必要)

2. アプリケーションを登録

◦ ファイルをアップロード

◦ 説明文を書く

◦ スクリーンショットなど

3. 少し待つと検索結果に現れる

◦ 30分くらい?

審査とか待たなくて良いのが素晴らしいですね!

36

開発者ページで見れるもの

�ダウンロード数

◦ 実際にインストールされてる数も分かる

�ユーザーの統計

◦ OSのバージョン

◦ 機種

◦ 国・言語

37

作ってみたアプリの紹介作ってみたアプリの紹介作ってみたアプリの紹介作ってみたアプリの紹介

38

ネギアンテナ

�ネギが表示されるウィジェットアプリ

�電波の強さでネギの本数が変わります

�画期的!

冗談です

39

ニコニコPlayer(仮)

�作ってみました

◦ ニコニコ動画のクライアント

◦ コメントもできるよ

◦ まだ一部の動画が再生できない…

40

ニコニコPlayer(仮)

�デモ

41

最後に

� Androidアプリ開発 楽しいです

◦ 楽しい≒苦難の道

◦ Androidはまだまだ進化中

42