Upload
techtalkdwango
View
4.379
Download
3
Embed Size (px)
Citation preview
バージョンについて
� 1.6 (Donut)◦ 音声検索機能
� 2.1 (Eclair)◦ 多くの解像度に対応,ライブ壁紙
� 2.2 (Froyo)◦ FlashPlayer10使える,高速化
� 2.3 (Gingerbread)◦ 高速化,Javaを使わなくても開発可能に
詳しくはWikipediaを…
7
アーキテクチャ(2)
�こんな感じ
Linux
標準ライブラリ .
アプリケーション
コア・ライブラリ
DalvikVM
アプリケーションフレームワーク
11
Androidアプリ開発ではこの辺が重要
DalvikVM
� Androidアプリを実行する仮想マシン
◦ 省メモリ
◦ Javaで書いたアプリはDalvik用のコードに変換して実行する
◦ Android 2.2からはJITコンパイルに対応
13
開発環境
� 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
Intent
� ActivityやService間でデータを受け渡す
◦ 例:ボタンを押したら画面が切替わる
Activity A Activity B
ボタンボタン
1ボタンを押す
2AがIntent投げる
3 Bが起動しIntent受け取るIntent
24
Intent
�明示的Intent
◦ 指定したActivityやServiceを起動したりデータを渡せる
�暗黙的Intent
◦ URLやファイルをIntentで投げると対応アプリが自動的に起動する
� 複数ある場合はユーザーが選択する
26
Content Provider
�他のプロセスにファイルやDBを提供� ファイル自体はIntentで渡せない
� 他のアプリからURIでアクセスできる
� 例: content://com.example.hoge.fileprovider
27
気を付けること:メモリ
� Javaだからメモリリークとか気にしなくて良い?
→そんなことはない
�基本的に1アプリ16MB
� javaのstaticメンバ等は避けるのが無難� アプリ画面を閉じてもプロセスは生存してる
30
作ったアプリを公開する
1. 開発者用アカウントを取得($25必要)
2. アプリケーションを登録
◦ ファイルをアップロード
◦ 説明文を書く
◦ スクリーンショットなど
3. 少し待つと検索結果に現れる
◦ 30分くらい?
審査とか待たなくて良いのが素晴らしいですね!
36