Upload
cat-sin
View
11.479
Download
2
Embed Size (px)
DESCRIPTION
Andoroid入門 スマートフォン勉強会@関西#2 - 2009/03/14(Sat) 開催
Citation preview
Andoroid入門~アプリケーション開発でのいくつかの
ポイントについて
catsin
自己紹介
catsinです。
いわゆるSEです。
どちらかといえばなんでも屋です。
最近購入したオモチャは以下の通り。
AndroidDevPhone1
Chumby
Nabaztag
NetBook(AspireOne)
Android入門
• Androidとはなんぞ?
– Android は 30 社以上の IT およびモバイル関連企業のグループである Open Handset Alliance により開発されています。Android は、オープンで無償の初めての完結したモバイル プラットフォームです。
– だ、そうな。
アーキテクチャの概要
現在想定かつ実装されている範囲であれば、ハードウェアは隠蔽されている
• 上位層側から見れば– CPUの選択も含めハードの違いを意識する必要が
ない。
– Javaは既に普及していて開発者の確保も容易
• 下位層側から見れば– 組み込みのフレームワークとして、Androidを実
装すればUI等は既に存在する、なくても開発は容易なのが保障されている。
– 品質・価格面での優位性
関連技術
• Java• 携帯 / 組込 Linux• ARM• SQLite(DB)・・設定の保持等
• XML• etc.etc.
Androidのこれからの展開
• 携帯電話・スマートフォンとしてのプラットフォーム
• NetBook、MID等の携帯端末のプラットフォーム
• ネット家電等組み込み開発のフレームワーク
• 他のプラットフォームと比べるとかなり自由です。
Androidをどうして使う、どう使う
• 魅力– オープンでありながら携帯電話+α(=スマートフォンか)に機能がすでに実装されている
– 縛りが少なく応用範囲を広く想定できる
– アプリケーション間の連携の仕組みも提供されていて、容易にマッシュアップすることができる
• 課題– オープンを維持しつつ新規デバイスへの展開のフィードバックがうまく進むか
– セキュリティの維持・向上
Android向けアプリケーション開発
• Androidで動作するアプリケーションとは?
– Java標準ライブラリ+Android特有ライブラリで作成するJavaアプリケーション、と思ってほぼ間違いありません。
– アプリケーションとして動作するには、Activityクラス等Android特有のコンポーネントクラスを継承する必要があります。
開発環境
• Windows/Machintosh/Linuxが利用可能です。
• 以下を入手して環境を構築します。
– SDK– Eclipse– ADT(Android Development Tools)
よくアクセスするであろうWeb
• Google• code.google.com – Android• 日本Androidの会
• AndroidZaurus-安藤恐竜
• また最近出た雑誌ではSoftwareDesign2009/3がよくまとめられています。
アプリケーションを作成する上でのポイント
AndroidManifest.xml
• アプリケーションの素性を示すもので重要
• AndroidMarketでの公開も、実際の実行も、他のアプリとの連携もこのファイルでの記述を元に行われる。
– Package情報(名称・バージョン・アイコン等)
– 含まれるコンポーネント情報(アクティビティ・サービス等)
– 利用するパーミッションの宣言
アプリケーションに実装されるコンポーネントの種類
• アクティビティ– UIを持つフォアグラウンドな制御
• サービス– UIを持たないバックグラウンドでの制御
• インテントレシーバ– 受信できるIntentを定義、処理の流れの制御
• コンテンツプロバイダ– 受信できるURIを定義、情報の流れの制御
ActivityとView• ActivityはUIを持つことができるコンポーネントです。持
たないと黒い画面です。
• Viewを作って貼り付けることで画面が表示されます。
• Viewは表示されるものすべてに継承されています、なのでたとえばリストだけの画面も作れるし、リストと絵を貼り付けた画面も作れます。
Activityのライフサイクル
サービス• 定期的に動作したり、他の操作をしている間も動作を続
けるような処理には必須の実装です。
• UIがありません。
• アクティビティは同じものを複数起動できるが、サービスは同じものを一つしか起動できません。
サービスのライフサイクル• 途中で死なないのを前提に考えれば、Activityほどシビ
アに考える必要はありません。
• サービスから見て複数アクティビティが接続されることを注意すればよいでしょう。
サービスの作成
• サービスクラスを継承したクラスを作成する
• AndroidManifect.xmlのサービスを定義する
• サービスを起動するアクティビティを作成する
• アクティビティとの通信が必要ならAIDLを使用しI/Fを作成する
アプリケーション・サービス間の通信
• Intent– アクティビティから別のアクティビティを起動する為のオブジェクト
• AIDL(AndroidInterfaceDefinitionLanguage)
– アクティビティからサービスへの呼び出しをする為のしくみ
– xxxx.aidlに記述してビルドするとxxxx.javaファイルを生成して組み込まれます
アプリケーションの外部アクセスのパーミッション
• AndroidManifest.xmlで記述します。• 各種マネージャでのデバイス制御、情報・設定書換え、
一部情報の読み出しには必須と思っていいです。• 0.9βまでなかったので、サンプルや検索で得た情報に
含まれないことが頻繁にあります。• ログを見るとエクセプションでパーミッションのエラー
だとわかります。• 動作しないときにここが原因だと意外と気がつかないこ
とが多いです。
省電力
• スクリーンロックした場合、CPUスリープに入る。
• あわせてWifi等も電源断。
• Timerクラス等の定期動作も停止。(操作等での復帰時に継続する)
• 対策
– 動作を整理して、人の操作を契機に動作すればよい仕様を考える。
– AlarmManagerで一定時間後に起動するよ
う指定しておく。
デバッグ環境
• Eclipseからリモートデバッグを行うことができます。– SDKに含まれるエミュレータを利用できます
– DDMS(Dalvik Debug Monitor Service )– 実機を利用したリモートデバッグも可能です
AndroidMarketでの公開
• 公開するにはAndroidMarketに開発者登録が必要です。有料です。($25)
• 実機からアクセスしないと、公開の様子を見ることもダウンロードすることもできません。
• 実機とエミュレータで挙動の違いはあるので、実機での動作確認をしたものを公開するべきです。
• 公開するには自前のものでよいので、50年以上の保障をしたテスト証明書を付加する必要があります。(JDKに含まれるツールを使用します)
実機
• T-MobileG1– まだ商品はアメリカのT-MobileG1だけです。
• AndroidDevPhone1– ハードウェアとしてはG1と同じもの
– Googleから開発者向け端末の入手が可能
– SIMロックフリー
– ファームの書き込みの認証不要
DevPhone1の入手
• クレジットカードが必要です
• AndroidMarket・Developer Registration登録
• DevelopmentPhonesBuynow→案内にしたがって購入
• 1アカウントで1台入手可能
• DeveloperRegistration$25+本体$399+シッピング(catsinの場合)$47=合計$471でした。
SIMのはなし
• 日本国内で携帯電話回線を使うとしたら、3GPP(1.7G/2.1G)を利用できるはずです。
• 利用するには携帯電話会社と契約して入手するSIMが必要です。
• データ通信するにはAPNの設定が必要です。
• 日本国内で携帯電話として使用するには国内での端末の承認が必要です。
• おしまい