因为安卓的开源的原因,很多厂商都自己定制了自己的系统,以至于安卓的碎片化特别严重。今天我们要讲的是推送这个功能, 消息推送在Android开发中应用的场景是越来越多了,比如说电商产品进行活动宣传、资讯类产品进行新闻推送等等,
1. 主流的第三方推送平台分类
- 手机厂商类:小米推送、华为推送。
- 第三方平台类:友盟推送、极光推送、云巴(基于MQTT)
- BAT大厂的平台推送:阿里云移动推送、腾讯信鸽推送、百度云推送
2. 三方推送对比其他推送方式的特点
其他推送方式还有:C2DM、轮询、SMS、MQTT协议、XMPP协议等等,相对于这些推送方式,第三方推送方式的特点分别是:
- 优点:
- 成本低 上述的推送大多数是免费的,假如自己实现则消耗过多资源(开发成本和后台管理、统计成本)
- 消息到达率高 如果一个手机里有多个App使用了同一家推送服务,那么这些App将共用一条消息通道,即使你家的App推送服务被杀死了,那么只要用户打开了其他集成该推送服务的App,你家的推送就能到达用户
- 缺点
- 安全性低 使用别人的服务器,所以你懂的。
- 服务会被杀死 由于Android系统的机制,后台推送 Service 会被各种主动的或是被动的行为给杀死,而服务一旦被杀死,意味着就接收不到推送消息。
3.1 手机厂商推送
请记住一个潜规则:操作系统是不会杀死属于自己品牌的推送服务。
- 手机厂商的推送服务在自家的手机上属于系统级别的服务,这意味着系统不会杀死自家的推送服务
- 比如说,Android原生系统是不会杀死C2DM消息推送服务,MIUI系统是不会杀死小米的推送服务。
3.2 第三方平台类
请记住一个规则:推送系统会共享一条推送渠道
- 这意味着假设你接入了友盟推送,而恰好今日头条也接入了友盟。
- 有一天你的App被杀死了,但这时用户启动了今日头条,那么推送系统也就会通过共享的推送通道顺便把你推送消息送达到手机上,然后还可能把你的进程也唤醒(被“保活”了)。