问题简述:
简单模型如下图所示,要想完成推送需要满足两个条件:首先,需要保证服务端和客户端都处于活跃状态;其次,服务端需要和手机客户端保持连接畅通。 关于后者连接畅通问题不大,主要是长连接、客户端轮询请求、SMS短信推送等方案,所以难点是前者:使接受推送的客户端长期处于Running状态。由于在我国无法使用谷歌自建的推送通道,不同app各自为政,自建推送通道,会消耗大量资源,给用户体验带来严重负面影响
方案选择
1、app自建推送通道
首先要保活,比如:进程优先级调整、进程守护、多个app互相唤醒等技术手段,但这些措施的最大缺陷就是常驻后台,消耗手机系统资源、流量,拖慢手机性能,影响手机体验,手机厂商深恶痛绝,正在一步步封杀此行为,所以此方案行不通。
2、基于传统SMS通道完成推送
鉴于上述第一种方案的缺点,就有人提出通过短信这种低消耗通道来实现通知的推送,这种方案需要依据短信特点制定推送协议,改造手机系统的短信应用,收到短信后,解析内容,然后生成通知,目前推必达(http://www.csicloud.cn/)在推广阶段
3、app产品族共建推送通道
主要指的是腾讯的信鸽推送(http://xg.qq.com)、百度云推送(http://push.baidu.com/),利用自有产品族建立推送通道,提供给第三方使用,目前主要还是他们自有产品系列在使用
4、手机厂商自建系统级推送通道
比如华为、小米、oppo、魅族等都有自己系统级的推送方案,并且已经实现商用。调研发现今日头条、河南掌厅、支付宝、淘宝等较多app有采用此项技术,所以,推荐使用此方案