1

デバイスに保存されている写真に関する情報を含むローカル データベースを持つ Android アプリケーションがあります。アプリケーションがインストールされているすべてのデバイスにオンデマンドで提供できる画像を含むサーバーを作成したいと考えています。したがって、私のアプリケーションはローカルの写真またはサーバーからの写真を提供でき、それらの写真に関連する情報も必要とします。

GCM を分析したところ、メッセージ通信には最適ですが、メッセージのサイズが 4kb に制限されているため、画像を送信できません。私の考えは、次のようなものを持つことでした:ここに画像の説明を入力

私の質問は次のとおりです。このコンテキストでは、GCM 通信は有用ですか、それとも Web サービスを介したクライアント/サーバー通信のみを行う方が効率的でしょうか?

GCMを使用する場合、サーバーとクライアントの通信では、「Bitmap Fun」の例のように次のコードのみを使用して画像を受信すると想定しています

 BitmapFactory.decodeFile(pictureURL, options);

上記のアプローチでは、50 個の画像の配列ではなく、一度に 1 枚の画像を要求しているため、より多くのバッテリーと帯域幅が必要ですか? GCM を使用しない場合、何を処理すればよいですか (例: デバイスがスタンバイになっている場合)。

4

1 に答える 1

0

GCM は、サーバーがクライアント アプリケーションに新しいデータ (この場合は新しい写真) について警告する必要がある場合にのみ役立ちます。これにより、クライアント アプリが実行されていない (またはバックグラウンドで実行されている) 場合でも、サーバーはクライアントにデータを送信できます。その場合、緑の線は理にかなっています - サーバーは GCM 経由で画像情報をクライアントに送信できます。次に、赤い線で指定したように、クライアントはサーバーに画像そのものを要求します。

でマークした青い線はask for pictures、クライアントからサーバーに直接行く必要があります。クライアントは、GCM サーバーに要求を送信できません (GCM サービスへの登録/登録解除の要求を除く)。

サーバーからクライアントへの画像の送信が常にクライアントによって開始される場合、GCM は必要ありません。

さらに、この質問をチェックして、GCM 経由で画像を送信する方法の詳細を確認できます。

于 2013-05-09T14:15:32.070 に答える