Android客户端-服务器体系结构:GCM与webservice
我有一个Android应用程序,带有一个本地数据库,其中包含存储在设备上的图片信息。我想创建一个带有图片的服务器,这些图片可以根据需要提供给安装了我的应用程序的所有设备。因此,我的应用程序可以提供本地图片或来自服务器的图片,还需要一些与这些图片相关的信息 我分析了GCM,它非常适合消息通信,但由于消息大小限制在4kb,我无法发送图片。我的想法是这样的: 我的问题是:在这种情况下,GCM通信有用吗?还是通过Web服务只进行客户机-服务器通信更有效? 我假设如果我使用GCM,在服务器-客户机通信中,我只使用下面的代码来接收图片Android客户端-服务器体系结构:GCM与webservice,android,performance,architecture,client-server,google-cloud-messaging,Android,Performance,Architecture,Client Server,Google Cloud Messaging,我有一个Android应用程序,带有一个本地数据库,其中包含存储在设备上的图片信息。我想创建一个带有图片的服务器,这些图片可以根据需要提供给安装了我的应用程序的所有设备。因此,我的应用程序可以提供本地图片或来自服务器的图片,还需要一些与这些图片相关的信息 我分析了GCM,它非常适合消息通信,但由于消息大小限制在4kb,我无法发送图片。我的想法是这样的: 我的问题是:在这种情况下,GCM通信有用吗?还是通过Web服务只进行客户机-服务器通信更有效? 我假设如果我使用GCM,在服务器-客户机通信中,
BitmapFactory.decodeFile(pictureURL, options);
上面的方法需要更多的电池和带宽,因为我一次只需要一张图片,而不是一组50张图片?
如果我不使用GCM,我应该处理什么(例如,设备处于备用状态) GCM仅在服务器需要提醒客户端应用程序某些新数据(在您的情况下是新图片)时才有用。它允许服务器向客户端发送数据,即使客户端应用程序未运行(或在后台运行)。在这种情况下,绿线是有意义的——服务器可以通过GCM向客户端发送图片信息。然后,正如您用红线指定的那样,客户机将要求服务器提供图片本身 用
询问图片标记的蓝线应该直接从客户端转到服务器。客户端无法向GCM服务器发送请求(向GCM服务注册/注销的请求除外)
如果从服务器向客户端发送图片总是由客户端发起的,则不需要GCM
此外,您可以查看以了解有关通过GCM发送图像的更多信息