28
Andoroid入門 ~アプリケーション開発でのいくつかの ポイントについて catsin

Andoroid入門 Open

  • Upload
    cat-sin

  • View
    11.486

  • Download
    2

Embed Size (px)

DESCRIPTION

Andoroid入門 スマートフォン勉強会@関西#2 - 2009/03/14(Sat) 開催

Citation preview

Page 1: Andoroid入門  Open

Andoroid入門~アプリケーション開発でのいくつかの

ポイントについて

catsin

Page 2: Andoroid入門  Open

自己紹介

catsinです。

いわゆるSEです。

どちらかといえばなんでも屋です。

最近購入したオモチャは以下の通り。

AndroidDevPhone1

Chumby

Nabaztag

NetBook(AspireOne)

Page 3: Andoroid入門  Open

Android入門

• Androidとはなんぞ?

– Android は 30 社以上の IT およびモバイル関連企業のグループである Open Handset Alliance により開発されています。Android は、オープンで無償の初めての完結したモバイル プラットフォームです。

– だ、そうな。

Page 4: Andoroid入門  Open

アーキテクチャの概要

Page 5: Andoroid入門  Open

現在想定かつ実装されている範囲であれば、ハードウェアは隠蔽されている

• 上位層側から見れば– CPUの選択も含めハードの違いを意識する必要が

ない。

– Javaは既に普及していて開発者の確保も容易

• 下位層側から見れば– 組み込みのフレームワークとして、Androidを実

装すればUI等は既に存在する、なくても開発は容易なのが保障されている。

– 品質・価格面での優位性

Page 6: Andoroid入門  Open

関連技術

• Java• 携帯 / 組込 Linux• ARM• SQLite(DB)・・設定の保持等

• XML• etc.etc.

Page 7: Andoroid入門  Open

Androidのこれからの展開

• 携帯電話・スマートフォンとしてのプラットフォーム

• NetBook、MID等の携帯端末のプラットフォーム

• ネット家電等組み込み開発のフレームワーク

• 他のプラットフォームと比べるとかなり自由です。

Page 8: Andoroid入門  Open

Androidをどうして使う、どう使う

• 魅力– オープンでありながら携帯電話+α(=スマートフォンか)に機能がすでに実装されている

– 縛りが少なく応用範囲を広く想定できる

– アプリケーション間の連携の仕組みも提供されていて、容易にマッシュアップすることができる

• 課題– オープンを維持しつつ新規デバイスへの展開のフィードバックがうまく進むか

– セキュリティの維持・向上

Page 9: Andoroid入門  Open

Android向けアプリケーション開発

• Androidで動作するアプリケーションとは?

– Java標準ライブラリ+Android特有ライブラリで作成するJavaアプリケーション、と思ってほぼ間違いありません。

– アプリケーションとして動作するには、Activityクラス等Android特有のコンポーネントクラスを継承する必要があります。

Page 10: Andoroid入門  Open

開発環境

• Windows/Machintosh/Linuxが利用可能です。

• 以下を入手して環境を構築します。

– SDK– Eclipse– ADT(Android Development Tools)

Page 11: Andoroid入門  Open

よくアクセスするであろうWeb

• Google• code.google.com – Android• 日本Androidの会

• AndroidZaurus-安藤恐竜

• また最近出た雑誌ではSoftwareDesign2009/3がよくまとめられています。

Page 12: Andoroid入門  Open

アプリケーションを作成する上でのポイント

Page 13: Andoroid入門  Open

AndroidManifest.xml

• アプリケーションの素性を示すもので重要

• AndroidMarketでの公開も、実際の実行も、他のアプリとの連携もこのファイルでの記述を元に行われる。

– Package情報(名称・バージョン・アイコン等)

– 含まれるコンポーネント情報(アクティビティ・サービス等)

– 利用するパーミッションの宣言

Page 14: Andoroid入門  Open

アプリケーションに実装されるコンポーネントの種類

• アクティビティ– UIを持つフォアグラウンドな制御

• サービス– UIを持たないバックグラウンドでの制御

• インテントレシーバ– 受信できるIntentを定義、処理の流れの制御

• コンテンツプロバイダ– 受信できるURIを定義、情報の流れの制御

Page 15: Andoroid入門  Open

ActivityとView• ActivityはUIを持つことができるコンポーネントです。持

たないと黒い画面です。

• Viewを作って貼り付けることで画面が表示されます。

• Viewは表示されるものすべてに継承されています、なのでたとえばリストだけの画面も作れるし、リストと絵を貼り付けた画面も作れます。

Page 16: Andoroid入門  Open

Activityのライフサイクル

Page 17: Andoroid入門  Open

サービス• 定期的に動作したり、他の操作をしている間も動作を続

けるような処理には必須の実装です。

• UIがありません。

• アクティビティは同じものを複数起動できるが、サービスは同じものを一つしか起動できません。

Page 18: Andoroid入門  Open

サービスのライフサイクル• 途中で死なないのを前提に考えれば、Activityほどシビ

アに考える必要はありません。

• サービスから見て複数アクティビティが接続されることを注意すればよいでしょう。

Page 19: Andoroid入門  Open

サービスの作成

• サービスクラスを継承したクラスを作成する

• AndroidManifect.xmlのサービスを定義する

• サービスを起動するアクティビティを作成する

• アクティビティとの通信が必要ならAIDLを使用しI/Fを作成する

Page 20: Andoroid入門  Open

アプリケーション・サービス間の通信

• Intent– アクティビティから別のアクティビティを起動する為のオブジェクト

• AIDL(AndroidInterfaceDefinitionLanguage)

– アクティビティからサービスへの呼び出しをする為のしくみ

– xxxx.aidlに記述してビルドするとxxxx.javaファイルを生成して組み込まれます

Page 21: Andoroid入門  Open

アプリケーションの外部アクセスのパーミッション

• AndroidManifest.xmlで記述します。• 各種マネージャでのデバイス制御、情報・設定書換え、

一部情報の読み出しには必須と思っていいです。• 0.9βまでなかったので、サンプルや検索で得た情報に

含まれないことが頻繁にあります。• ログを見るとエクセプションでパーミッションのエラー

だとわかります。• 動作しないときにここが原因だと意外と気がつかないこ

とが多いです。

Page 22: Andoroid入門  Open

省電力

• スクリーンロックした場合、CPUスリープに入る。

• あわせてWifi等も電源断。

• Timerクラス等の定期動作も停止。(操作等での復帰時に継続する)

• 対策

– 動作を整理して、人の操作を契機に動作すればよい仕様を考える。

– AlarmManagerで一定時間後に起動するよ

う指定しておく。

Page 23: Andoroid入門  Open

デバッグ環境

• Eclipseからリモートデバッグを行うことができます。– SDKに含まれるエミュレータを利用できます

– DDMS(Dalvik Debug Monitor Service )– 実機を利用したリモートデバッグも可能です

Page 24: Andoroid入門  Open

AndroidMarketでの公開

• 公開するにはAndroidMarketに開発者登録が必要です。有料です。($25)

• 実機からアクセスしないと、公開の様子を見ることもダウンロードすることもできません。

• 実機とエミュレータで挙動の違いはあるので、実機での動作確認をしたものを公開するべきです。

• 公開するには自前のものでよいので、50年以上の保障をしたテスト証明書を付加する必要があります。(JDKに含まれるツールを使用します)

Page 25: Andoroid入門  Open

実機

• T-MobileG1– まだ商品はアメリカのT-MobileG1だけです。

• AndroidDevPhone1– ハードウェアとしてはG1と同じもの

– Googleから開発者向け端末の入手が可能

– SIMロックフリー

– ファームの書き込みの認証不要

Page 26: Andoroid入門  Open

DevPhone1の入手

• クレジットカードが必要です

• AndroidMarket・Developer Registration登録

• DevelopmentPhonesBuynow→案内にしたがって購入

• 1アカウントで1台入手可能

• DeveloperRegistration$25+本体$399+シッピング(catsinの場合)$47=合計$471でした。

Page 27: Andoroid入門  Open

SIMのはなし

• 日本国内で携帯電話回線を使うとしたら、3GPP(1.7G/2.1G)を利用できるはずです。

• 利用するには携帯電話会社と契約して入手するSIMが必要です。

• データ通信するにはAPNの設定が必要です。

• 日本国内で携帯電話として使用するには国内での端末の承認が必要です。

Page 28: Andoroid入門  Open

• おしまい