GoogleはGoogle Cloud Messaging for Android (GCM) サービスを公開した。これは廃止予定のCloud to Device Messaging (C2DM) フレームワークを改善して置き換えるもので、クォータ制限なし、サインアップなしで、よりリッチな新APIを提供している。
GCMはアプリケーションサーバとAndroidデバイス間のブローカー機能を提供し、両者間にクラウド型のスケーラブルなコミュニケーションを保証する。GCMは取り決めを定義する。そしてサーバとAndroidアプリケーション両者がGCMサービスに登録し、Google GCMサーバが両者のコミュニケーションを管理する。メッセージのキューイングとAndroidデバイス上で動作するターゲットアプリケーションへの配信のあらゆる面は、GCMサーバが担当する。
GCMはほかにも重要な機能を提供している。たとえば、Androidデバイスはメッセージを受信するのにポーリングをする必要がない。その代わり、アプリケーションサーバがデータを送ると、GCMサーバが登録されたデバイスにデータをプッシュする。こうしてポーリングをなくすことにより、モバイルデバイスのバッテリー消費を節約することができる。さらにはGCMからのメッセージを受信するために、必ずしもAndroidアプリケーションが動いている必要もない。必要な準備がしてあれば、メッセージがデバイスにプッシュされると、Intentブロードキャスト経由でアプリケーションを起動することができる。
GCMサービスはGoogleのさまざまなAPI(たとえばMaps、Cloud SQLなど)の一部となり、GoogleのAPIコンソールでプロジェクトごとに管理される。また、ほかのGoogle APIとは異なり、GCMサービスにはクォータ制限がない。したがってメッセージ数やサービスを利用するデバイス数によらず、完全にフリーで使うことができる。
以前のC2DMフレームワークを使っているユーザに対しては、C2DMサービスは2012年6月26日に公式に廃止予定であることがアナウンスされており、以後サービスは警告なしにシャットダウンされるおそれがある。またC2DMとGCMに互換性はないが、2つのプラットフォーム間の移行は簡単だ。新しいGCM機能が利用できるよう、すでにC2DMからGCMへの移行ドキュメントが公開されている。またC2DMをGCMに置き換える方法やC2DMからGCMへの移行といった開発者によるブログ記事も参考になる。
よく書かれたGCMの技術ドキュメントに加えて、オンライン上にはさまざまなリソースがある。Stack Overflowには質問やGCMの内部動作に関する回答などがあがっている。また、GCMについてハイレベルな情報を探しているなら、サンフランシスコで開かれたGoogle I/O 2012カンファレンスでのFrancesco Nerieri氏(GCMのエンジニアリングマネージャ)によるGCMプラットフォームに関する1時間の講演を見るとよいだろう。