android使用推送的学习笔记

一、android和ios的推送的区别

        ios有自己统一的APNS(Apple Push Notification Service)和消息推送机制,无论什么应用的推送都要排队经过同一个服务器,最后推送到用户那里。

        android则不然,国内的推送服务基本各自为政,比如JPUSH、极光、友盟等等。虽然google也有自己的GCM(google cloud message),但由于种种原因在国内不容易使用。

二、android推送的困境

1、国内厂商自定义ROM的严格限制。这也是由于国内流氓应用太多,导致系统生态要求相比原生系统更为严格。比如APP一旦从最近列表中滑除就会被强制停止,APP之间的关联启动也越来越被被严格限制着。比如华为的EMUI4就默认禁止互相关联。

2、推送服务群雄割据、各自为政。推送服务各自有各自的一套,使用同一推送服务的APP可以通过互相关联以保证即使APP被杀死也能收到推送消息,但这也仅仅是在所有APP都使用同一个推送服务下才有的理想状态(也是苹果现在的状态)。实际上,现在APP间的互相关联也被严格限制着。

三、推送的原理(部分)

1、友盟推送是基于http的长连接。APP在启动后同时开启一个channel服务,而如果多个使用了友盟推送的APP的channel服务会互相关联,并会选取其中一个channel服务作为宿主进程。宿主进程会通过http长连接向友盟服务器拉取推送信息,并分发到各自的channel里,最终实现消息推送。

你可能感兴趣的:(android使用推送的学习笔记)