Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android客户端-服务器体系结构:GCM与webservice_Android_Performance_Architecture_Client Server_Google Cloud Messaging - Fatal编程技术网

Android客户端-服务器体系结构:GCM与webservice

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,在服务器-客户机通信中,

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

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

我的问题是:在这种情况下,GCM通信有用吗?还是通过Web服务只进行客户机-服务器通信更有效?

我假设如果我使用GCM,在服务器-客户机通信中,我只使用下面的代码来接收图片

 BitmapFactory.decodeFile(pictureURL, options);
上面的方法需要更多的电池和带宽,因为我一次只需要一张图片,而不是一组50张图片?
如果我不使用GCM,我应该处理什么(例如,设备处于备用状态)

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

询问图片标记的蓝线应该直接从客户端转到服务器。客户端无法向GCM服务器发送请求(向GCM服务注册/注销的请求除外)

如果从服务器向客户端发送图片总是由客户端发起的,则不需要GCM

此外,您可以查看以了解有关通过GCM发送图像的更多信息