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

もくじ 1. Android とは? 2. Android アーキテクチャ 3. Android 開発 (OS 編 ) 4. Android 開発 ( アプリ編 ) 5. Android アプリ実演 6. Android の今後について

N/A
N/A
Protected

Academic year: 2021

シェア "もくじ 1. Android とは? 2. Android アーキテクチャ 3. Android 開発 (OS 編 ) 4. Android 開発 ( アプリ編 ) 5. Android アプリ実演 6. Android の今後について"

Copied!
38
0
0

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

全文

(1)

Android

について

2011/05/13

(2)

もくじ

1. Android

とは?

2. Android

アーキテクチャ

3. Android

開発

(OS

)

4. Android

開発

(

アプリ編

)

5. Android

アプリ実演

6. Android

の今後について

(3)
(4)

Android

とは?

・ ・ ・ ・オープンソースオープンソースオープンソースオープンソースによるによるによる携帯端末向による携帯端末向携帯端末向けの携帯端末向けのけのプラットフォームけのプラットフォームプラットフォームプラットフォーム ・・・200711月、Google社を中心に組織された団体 「OHAOpen Handset Alliance)」により開発される

・ ・ ・ ・Linuxををベースををベースベースとしベースとしとしとし、、、、JAVA言語言語言語言語でででで開発開発開発開発 ・ ・ ・ ・Apache v2ライセンスライセンスライセンスライセンス((((WebKit、、、、カーネルカーネルとそのカーネルカーネルとそのとそのとそのライブラリライブラリライブラリライブラリ以外以外以外以外)))) ・ ・ ・ ・自由自由自由自由ななななアプリケーションアプリケーション開発アプリケーションアプリケーション開発開発開発がががが可能可能可能可能

(5)

iPhone(iOS)

との比較 ~開発者視点~

Android

iPhone

iOS

開発 開発 開発 開発ににに制限に制限制限制限ありありありあり ソースコード ソースコード ソースコード ソースコード非公開非公開非公開非公開 Apple以外開発不可以外開発不可以外開発不可以外開発不可 自由 自由 自由 自由にににに開発開発開発開発できるできるできるできる 技術 技術技術 技術ののの流用の流用流用が流用ががが面倒面倒面倒面倒 技術の技術技術技術ののの流用流用流用流用がががが楽楽楽楽 ソースコード ソースコードソースコード ソースコード公開公開公開公開 独自 独自独自 独自ののの開発可能の開発可能開発可能開発可能 Appleののの認証の認証認証認証がが必要がが必要必要必要でででで 手間 手間 手間 手間がががが掛掛掛掛かるかるかるかる 開発効率が開発効率開発効率開発効率がが良が良良い良いいい

(6)

iPhone(iOS)

との比較 ~ユーザ視点~

Android

iPhone

iOS

メリット メリット メリット メリット 信頼性 信頼性 信頼性 信頼性がががが高高高高いいいい 拡張 拡張 拡張 拡張アクセサリアクセサリアクセサリアクセサリがががが多多多多いいいい メリット メリットメリット メリット デメリット デメリット デメリット デメリット デメリットデメリットデメリットデメリット 更新 更新 更新 更新がががが速速速速いいいい 機種 機種 機種 機種のののの選択肢選択肢選択肢選択肢がががが多多多多いいいい 更新 更新 更新 更新がががが遅遅遅遅いいいい 機種 機種 機種 機種のののの選択肢選択肢選択肢選択肢がががが少少少少ないないないない 信頼性信頼性が信頼性信頼性がが低が低低い低いいい

(7)
(8)
(9)

カーネルの特徴

Power Management::::

各ドライバの電源管理を行う仕組み

ashmem::::

メモリを共有して効率的に扱う仕組み

Low Memory Killer::::

メモリが足りなくなるとプロセスを強制的に終了する仕組み

Binder::::

(10)

ライブラリの特徴

libc(Bionic libc):::: 機能を制限させたコンパクトなlibcライブラリ →マルチバイト文字に対応していない →C++の例外処理は非対応 Bionic libc ★複雑な条件をあえて取り除く事で速さを追求

(11)

ANDROID RUNTIME

の特徴

Core Libraries:::: JAVA言語のコアライブラリ 基本的なAPIを提供 Dalvik VM:::: JavaVMの実行形式を独自形式に変えて高速化を図っている Androidのアプリケーションは、Dalvik VM上で動作する

(12)

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

Activity Manager:::: 各アプリケーションのアクティビティのライフサイクルを管理 View System:::: 画面に表示する各種部品やユーザーの操作に関する 各種機能をアプリケーションに提供 Package Manager:::: Android上のパッケージ管理機能をアプリケーションに提供

(13)

アプリケーションの特徴

アプリケーション アプリケーション アプリケーション アプリケーション:::: フレームワークが提供するAPI を使って誰もが作成可能 アプリケーション配信サービスである 「Android Market」への公開・入手も可能 Nativeアプリアプリアプリアプリ:::: Voice Dial Email Client Maps Media Player Games Market Update…etc.

(14)
(15)

開発するにあたって

アプリ アプリ? 組み込み 組み込み? アプリ側を作成すれば 他はツールが自動生成 →Linuxを知らなくても出来る (標準的なカーネル上で開発) 必要に応じて カーネル(ドライバ)も編集可能 →知識は必要だが 既存の枠に囚われない Linux Windows

(16)

カーネルなどを編集できたら?

Android端末として端末端末端末としてとしてとして必要必要必要必要/不要不要な不要不要な部分なな部分部分部分のののの選択選択選択選択がががが可能可能可能可能

Plug and Play機能は欲しい ・FDドライバはいらない カーネルで提供しているから 必要なものを選択できるッス Android 利用 利用 利用 利用できるものはできるものはできるものはできるものは利用利用利用利用しししし、、、、 不要 不要 不要 不要であればであればであればであれば省省省く省くく事く事で事事ででで容量削減容量削減容量削減容量削減ができるができるができるができる

(17)

カーネルなどを編集できたら?

Android端末として端末端末端末としてとしてとして必要必要必要必要/不要不要な不要不要な部分なな部分部分部分のののの選択選択選択選択がががが可能可能可能可能

Plug and Play configuration”を有効にする

(18)

カーネルなどを編集できたら?

Android端末端末端末に端末ににに新規新規新規新規ドライバドライバドライバドライバ/APIをををを追加可能追加可能追加可能追加可能 TVに香りを出す 機能を付けたい 香りを出す 機能はないです・・・ ハードウェア を取り付け 制御仕様を 実装 ハードウェア ハードウェア ハードウェア ハードウェアにに合にに合合わせた合わせたわせたカーネルわせたカーネルカーネルカーネル実装実装実装を実装を行をを行行う行うう事う事事事でででで、、、、 現行機種 現行機種 現行機種 現行機種にないものをにないものをにないものを新規開発にないものを新規開発新規開発できる新規開発できるできるできる

(19)

カーネルなどを編集できたら?

ライブラリ ライブラリ ライブラリ ライブラリ群群群群をををを修正修正修正する修正する事するする事事事がががが可能可能可能可能 Linuxのライブラリとは違うのだよ (C++例外処理の未サポートなど) A機能はとにかくレスポンスを速くしたい B機能は時間がかかっても精度を上げたい Android 速度 速度 速度 速度/精度精度精度精度/使用使用メモリ使用使用メモリメモリをメモリををを考慮考慮考慮考慮したした修正したした修正修正を修正をを加を加える加加えるえる事える事事事でででで その その その そのハードウェアハードウェアハードウェアにハードウェアににに最適最適最適最適なな環境なな環境環境環境をををを構築構築構築構築できるできるできるできる

(20)

カーネルなどを編集できたら?

Android特有の特有特有特有ののの問題問題問題を問題ををを独自独自独自独自にに解決にに解決解決解決するするするする事事事事がががが可能可能可能可能 カーネルに制約があるからできねぇよ・・・ このドライバとそのライブラリで あの機能を実現したい Android 回避策 回避策 回避策 回避策もしくはもしくはもしくはもしくはカーネルカーネルカーネルカーネル修正修正修正修正によりにより実現によりにより実現実現実現させるさせるさせるさせる事事事ができる事ができるができるができる

(21)
(22)

Android

アプリ開発

C、C++ Java アプリは下回りを気にしなくてもいい - ハードの違いは下層で吸収される アプリはDalvik仮想マシン上で動作する アプリ開発も下回りを気にしなくていい - フレームワークより下は意識不要 - Javaで開発可能 ※C必要なハードウェアの制御もJNI(JavaCをつなぐ仕組み) によってフレームワークで提供されている

(23)

フレームワーク

フレームワーク

フレームワーク Webアプリケーションなど特定のタイプのソフトウエアを対象とし、 開発の効率を高めるために定義ファイルやクラス・ライブラリを 集めたもの クラス・ライブラリ Javaのようなオブジェクト指向言語で使うひな型のようなライブラリ Actvity::::アプリケーションアプリケーションアプリケーションアプリケーションののロジックののロジックロジックロジックををを記述を記述記述記述 Intent:アプリケーション:::アプリケーションアプリケーション間アプリケーション間間の間のののデータデータデータデータのの受のの受受け受けけ渡け渡渡渡しをしをしをしを記述記述記述記述 リソース リソースリソース リソース::::画面画面画面に画面にに表示に表示表示表示するする文字するする文字文字・文字・・レイアウト・レイアウトをレイアウトレイアウトををを記述記述記述記述 マニフェスト マニフェストマニフェスト マニフェスト::::アプリケーションアプリケーションアプリケーションアプリケーションのの情報のの情報情報情報をををを記述記述記述記述 ク ラ ス ・ ラ イ ブ ラ リ ☆ Androidで提供されているフレームワークの理解が必要

(24)

フレームワーク

Activityとはとはとはとは 画面を制御するクラス アクティビティ・クラスを継承したクラスを画面ごとに定義する アクティビティ アクティビティアクティビティ アクティビティ・・・・クラスクラスクラスクラスはははは各種用途各種用途各種用途各種用途にに応にに応応応じたものじたものじたものがじたものががが,,,, フレームワーク フレームワークフレームワーク フレームワークででで提供で提供提供提供されているされているされているされている たとえば たとえばたとえば たとえば地図地図地図を地図をを表示を表示表示表示するするだけのするするだけのだけのだけの画面画面画面画面ならならならなら アクティビティ アクティビティアクティビティ アクティビティ「「「「MapActivity」」を」」を使をを使使使ってってってって ほとんど ほとんどほとんど ほとんどコードコードコードコードをををを記述記述しなくても記述記述しなくてもしなくてもしなくても作成作成作成作成可能可能可能可能 複数画面 複数画面複数画面 複数画面ををを持を持持つ持つアプリつつアプリアプリアプリでのでのでのでの例例例例 アプリを起動 ↓アプリのメイン画面(Activity1)が表示される 設定画面(Activity2)を表示する ↓Activity1がヒストリースタックヒストリースタックヒストリースタックヒストリースタック(履歴)に積まれる 設定画面Activity2を終了する ↓メイン画面Activity1が表示される

(25)

アンテナ アンテナ アンテナ アンテナ

アプリ動作

(

内部

)

No Signal Alert」 ・ライブラリ、カーネルのコードを意識せずに ハードウェアからの検知、制御が可能! 圏外になった ユーザー通知 電波状態の変化 通知処理 バイブレーター バイブレーター バイブレーター バイブレーター スピーカースピーカースピーカースピーカー ハードウェア ハードウェア ハードウェア ハードウェア バイブレーションドライバ バイブレーションドライバ バイブレーションドライバ バイブレーションドライバ オーディオドライバオーディオドライバオーディオドライバオーディオドライバ カーネル カーネル カーネル カーネル Telephonyドライバドライバドライバドライバ Viblater AudioManager フレームワーク フレームワーク フレームワーク フレームワーク TelephonyManager Media Framework ライブラリ ライブラリライブラリ ライブラリ アプリケーション アプリケーション アプリケーション アプリケーション

(26)

アプリ開発環境

OS Eclipse

(統合開発環境)

ADT

Android Development Tools

JDK

(Java SE Development Kit)

Android SDK Javaアプリの ライブラリ+コンパイラ Androidバージョンに あわせたものを使用 IBMによって開発された統合開発環境(IDE) オープンソース Eclipseから Android SDKの 各アプリを 利用できるように する ライブラリ エミュレータ コマンドツール Javaプラットフォームに よるプログラム環境と、 C/C++による開発を サポート Android SDKがサポートするOS

Windows、、、、Mac OS X、、、、Linux

(27)

アプリ開発

英語、日本語、 中国語、イタリア語、 スペイン語、 フランス語、 ドイツ語、ロシア語、 韓国語 英語、日本語、 中国語、イタリア語、 スペイン語、 フランス語、 ドイツ語、ロシア語、 韓国語の 相互翻訳 音声入力 読み上げ

(28)
(29)

翻訳アプリができるまで(音声入力)

private void showVoiceRecognitionDialog(LanguageModel locale) { extraLanguage = getLocale(locale);

Intent intent = new

Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); intent.putExtra(RecognizerIntent.EXTRA_PROMPT, getLang(locale)); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, extraLanguage); startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE); }

(30)

翻訳アプリができるまで(音声入力)

protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) {

ArrayList<String> matches = data.getStringArrayListExtra( RecognizerIntent.EXTRA_RESULTS);

StringBuilder sb = new StringBuilder(); for (int i = 0; i < matches.size(); i++) {

sb.append(matches.get(i)); }

((EditText)findViewById(R.id.srctext)).setText(sb.toString()); }

super.onActivityResult(requestCode, resultCode, data); }

(31)

翻訳アプリができるまで(音声出力)

TextToSpeech tts = new TextToSpeech(getApplicationContext(), this);

~~~~~中略~~~~~

public void onClick(View v) { if (gmodel != null) { if (!gmodel.getTranslated().equals("")) { if (tts.isSpeaking()) { tts.stop(); } tts.setLanguage(getLocale(gmodel.getSrcLanguage())); tts.speak(gmodel.getTranslated(), TextToSpeech.QUEUE_FLUSH, null); } } }

(32)
(33)
(34)
(35)

広がる

Android

■デジタルテレビ(GoogleTV) Android 有線/無線のどちらでも インターネット接続できる! ブラウザも作らなくてよい! 【開発者の利点】 ・ネットワーク環境が容易に構築 ・USB機器の利用が容易に可能 【利用者の利点】 ・ Androidアプリをテレビで楽しめる リモコンでなくマウスで操作! HDDやカードリーダーも! ゲームやビューアーなど アプリをテレビでも使える! 好きなアプリをインストール してカスタマイズ!

(36)

広がる

Android

■白物家電(電子レンジ・洗濯機など )

・表示をグラフィカルにし、説明など追加して使いやすく ・タッチパネルを使うことで、ボタンを少なく

(37)

Android

は今後

(38)

参照

関連したドキュメント

自己防禦の立場に追いこまれている。死はもう自己の内的問題ではなく外から

(質問者 1) 同じく視覚の問題ですけど我々は脳の約 3 分の 1

災害に対する自宅での備えでは、4割弱の方が特に備えをしていないと回答していま

現実感のもてる問題場面からスタートし,問題 場面を自らの考えや表現を用いて表し,教師の

「課題を解決し,目標達成のために自分たちで考

• 問題が解決しない場合は、アンテナレベルを確認し てください(14

 複雑性・多様性を有する健康問題の解決を図り、保健師の使命を全うするに は、地域の人々や関係者・関係機関との

本節では本研究で実際にスレッドのトレースを行うた めに用いた Linux ftrace 及び ftrace を利用する Android Systrace について説明する.. 2.1