Android客户端 - 服务器架构:GCM与Web服务

时间:2013-05-09 13:54:43

标签: android performance architecture client-server google-cloud-messaging

我有一个带有本地数据库的Android应用程序,其中包含有关存储在设备上的图片的信息。我想创建一个带有图片的服务器,这些图片可以按需提供给安装了我的应用程序的所有设备。因此,我的应用程序可以从我的服务器提供本地图片或图片,还需要一些与这些图片相关的信息。

我分析了GCM,它非常适合消息通信,但由于消息的大小限制为4kb,我无法发送图片。我的想法是这样的:enter image description here

我的问题是:在此上下文中GCM通信是否有用,或者通过Web服务进行客户端 - 服务器通信会更有效?

我假设如果我使用GCM,在服务器 - 客户端通信中我只使用"Bitmap Fun" example中的代码来接收图片

 BitmapFactory.decodeFile(pictureURL, options);

上面的方法需要更多的电池和带宽,因为我一次要求1张图片而不是50张图片? 如果我不使用GCM,我应该处理什么(例如设备处于待机状态)?

1 个答案:

答案 0 :(得分:0)

GCM仅在服务器需要向客户端应用程序提醒某些新数据(在您的情况下为新图片)时才有用。即使客户端应用程序未运行(或在后台运行),它也允许服务器将数据发送到客户端。在这种情况下,绿线是有意义的 - 服务器可以通过GCM向客户端发送图片信息。然后,正如您使用红线指定的那样,客户端会向服务器询问图片本身。

您使用ask for pictures标记的蓝线应直接从客户端转到服务器。客户端无法向GCM服务器发送请求(注册/注销GCM服务的请求除外)。

如果客户端始终发起从服务器向客户端发送图片,则不需要GCM。

此外,您可以查看this question以了解有关通过GCM发送图像的详情。