Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

忘れちゃいけない、Androidの新機能C2DM(その1

こんばんは。kimukimuです。

一応、最近の一連の投稿はAndroid2.3新機能シリーズ。。。なんですが、
実はAndroidには、Android2.2から加わった忘れちゃいけない新機能があります。

C2DM(Cloud to Device Messaging)です。

と、ただその前に最近のAndroidニュースを。

1.最近のAndroidニュース

最近あった個人的に大きなAndroidニュースは、
Intel Developer Forum 2011で発表された、
「将来登場する Android 全てのバージョンで Intel チップをサポートし、
 Intel Architectureに向けて最適化していく」
というニュースです。

これまでAndroidはArmアーキテクチャのCPUに対してメインで開発されてきました。
そのため、IntelCPU(デスクトップ/ノートPC)に対する対応はどうしても遅れており、
自前でマシン組んでAndroidをインストールしてみようという選択にはなりにくかったです。
※尚、2011/09/16の時点で、Intel CPU向けのAndroidはAndroid2.3.1のRC版までリリース
※Arm CPU版Androidに比べて4バージョン以上遅いです。

IntelCPUに対してAndroidが最適化されれば小さいマシンを組んだ際に
Androidをインストールする選択肢が出てきます。

また、VMWare/VirtualBoxといった仮想環境に対しても
最新のAndroidがインストール可能となります。

Androidエミュレータがやたらと重いことを考えると、
仮想環境にAndroidを直接インストールできるというのは地味にうれしいです。
・・・ちょっとマニアックだったでしょうか^^;

2.C2DMって何なの?

では、C2DMに戻りましょう。

C2DMとは何か?

一言で言うと、
Android 上のアプリケーションにデータを送信することができるようにするサービス」です。

C2DMサービスを使用することによって、
開発者はAndroid端末で起動したアプリケーションに対して、
端末レベルで指定してメッセージの配信ができるようになります。

C2DMが登場するまで、Androidアプリというのは基本的に
Pull型(端末から情報を取りに行く方式)で情報を取得していたと思います。


ですが、C2DMを利用することによって、
Push型(端末に対して情報を配信する方式)での情報配信が可能となります。

3.C2DMを実現するためには何が必要なの?

C2DMアプリケーションを実現するためには、下記の3つが必要になります。

  1. Android端末
  2. Google C2DMサーバ
  3. メッセージ配信サーバ

・1.Android端末
当然ながら、Pushメッセージを受け取るためにはAndroid端末が必要です。

・2.Google C2DMサーバ
Android端末を識別し、Pushメッセージを飛ばすための基盤です。
Googleが保持し、提供しています。

・3.メッセージ配信サーバ
Google C2DMに対してPushメッセージの配信依頼を行うサーバです。

イメージとしてはこんな感じですね。


2は元々存在しているので、試すためには1と3が必要です。

尚、ちょうどGoogleなので、3:メッセージ配信サーバには
GAEJ(Google App Engine for Java)を使わせてもらうのがよさそうですね。
つまり自分ではAndroid端末しか用意しないとも言います^^;

1と3を用意する手順と、後必要な技術要素を
C2DMアプリケーションのサンプルを用いて次回から説明していきます。
お楽しみに!