Android
开发中应用的场景是愈来愈多了,好比说电商产品进行活动宣传、资讯类产品进行新闻推送等等,以下图:Android
中实现消息推送的第三方推送的详细解决方案阅读本文前,建议先阅读我写的文章:史上最全解析Android消息推送解决方案安全
其余推送方式还有:C2DM、轮询、SMS、MQTT协议、XMPP协议等等,相对于这些推送方式,第三方推送方式的特色分别是:服务器
优势:微信
缺点app
请记住一个潜规则:操做系统是不会杀死属于本身品牌的推送服务。post
- 手机厂商的推送服务在自家的手机上属于系统级别的服务,这意味着系统不会杀死自家的推送服务
- 好比说,Android原生系统是不会杀死C2DM消息推送服务,MIUI系统是不会杀死小米的推送服务。
当今市场上的Android手机系统份额最高是MIUI系统,即小米(具体排名请看http://www.umindex.com/)阿里云
由于:免费、到达率高且在Android系统市场份额第一的MIUI系统上不被杀死。因此,若是要选择手机厂商的推送服务,请选择小米推送做为第三方平台实现推送服务操作系统
下面一些应用能够从侧面来证实个人推断:3d
- 若是但愿进一步提升推送的效果,其实能够集成多个手机厂商的推送服务
- 好比小米渠道用小米推送,华为渠道用华为推送,但这样的实现成本会大一些
请记住一个规则:推送系统会共享一条推送渠道code
- 这意味着假设你接入了友盟推送,而刚好今日头条也接入了友盟。
- 有一天你的App被杀死了,但这时用户启动了今日头条,那么推送系统也就会经过共享的推送通道顺便把你推送消息送达到手机上,而后还可能把你的进程也唤醒(被“保活”了)。
因此说,关于如何选择第三方平台类的推送,推送平台的规模效应就很重要了。 那如何得知他们的规模和市场份额呢?按我的经验,主要看两点:cdn
BAT大厂其实并无什么优点,同时谨记:
主要从用户类别+实现成本+渠道来选择不一样的使用场景
注意:单一的手机厂商也能工做,好比小米推送在非小米手机上固然也能工做,只不过不是系统级别的服务了,容易被杀死。
若是用户群体普遍、但愿实现成本低,能够考虑只使用单一第三方平台类的推送(极光、友盟blabla,选一个规模效应最大的)
若是用户群体普遍、不在乎实现成本,我的建议:
让不一样的推送运行在各自擅长的环境里,最大化实现推送的到达率和产品的存活率
一般第三方推送平台都支持两种推送消息类型:通知栏消息和透传消息。
不会继续被传递到App
- 经过回调App的某个BroadcastReceiver的形式将消息传递到App内部。而后由App决定如何处理和显示这个消息。
- 因此透传消息不必定会以系统通知栏的形式进行推送,由程序猿自定义
咱们来看下小米推送的官方文档描述:
- 在一些 Android 系统(如 MIUI)中,受到系统自启动管理设置的限制,应用不能在后台自启动
- 在这类系统中,若是在发送消息的时候对应的应用没有被启动,透传类消息将不能顺利送达。
- 所以,对于对送达率要求很高的消息,建议尽可能采用通知栏提醒的方式推送消息
App若是仅仅经过通知栏消息,是没法接触到消息数据自己的。
相信你们已经很是了解关于第三方推送的相关信息。
关于Android消息推送的其余知识,具体请看: 史上最全解析Android消息推送解决方案 Android消息推送:手把手教你集成小米推送
接下来,我会继续介绍具体如何在Android应用中集成相应的第三方推送功能(小米推送、极光推送、个推等等),有兴趣能够继续关注Carson_Ho的安卓开发笔记