前言

  • 消息推送在Android开发中应用的场景是越来越多了,比如说电商产品进行活动宣传、资讯类产品进行新闻推送等等,如下图:

  • 本文将介绍Android中实现消息推送的第三方推送的详细解决方案

阅读本文前,建议先阅读我写的文章:史上最全解析Android消息推送解决方案
Carson带你学Android系列文章
Carson带你学Android:学习方法
Carson带你学Android:四大组件
Carson带你学Android:自定义View
Carson带你学Android:异步-多线程
Carson带你学Android:性能优化
Carson带你学Android:动画


目录


1. 主流的第三方推送平台分类

  • 手机厂商类:小米推送、华为推送。
  • 第三方平台类:友盟推送、极光推送、云巴(基于MQTT)
  • BAT大厂的平台推送:阿里云移动推送、腾讯信鸽推送、百度云推送

2. 对比其他推送方式的特点

其他推送方式还有:C2DM、轮询、SMS、MQTT协议、XMPP协议等等,相对于这些推送方式,第三方推送方式的特点分别是:

  • 优点:

    1. 成本低
      上述的推送大多数是免费的,假如自己实现则消耗过多资源(开发成本和后台管理、统计成本)
    2. 消息到达率高
      如果一个手机里有多个App使用了同一家推送服务,那么这些App将共用一条消息通道,即使你家的App推送服务被杀死了,那么只要用户打开了其他集成该推送服务的App,你家的推送就能到达用户
  • 缺点

    1. 安全性低
      使用别人的服务器,所以你懂的。
    2. 服务会被杀死
      由于Android系统的机制,后台推送 Service 会被各种主动的或是被动的行为给杀死,而服务一旦被杀死,意味着就接收不到推送消息。

3. 第三方推送服务方式的特点

  • 第三方服务基本都具备免费、和到达率高的特点
  • 那么应该如何选择呢?我们来分别看一下第三方推送各种方式的优点:

3.1 手机厂商推送

请记住一个潜规则:操作系统是不会杀死属于自己品牌的推送服务。

  1. 手机厂商的推送服务在自家的手机上属于系统级别的服务,这意味着系统不会杀死自家的推送服务
  2. 比如说,Android原生系统是不会杀死C2DM消息推送服务,MIUI系统是不会杀死小米的推送服务。

当今市场上的Android手机系统份额最高是MIUI系统,即小米(具体排名请看http://www.umindex.com/)

因为:免费、到达率高且在Android系统市场份额第一的MIUI系统上不被杀死。所以,如果要选择手机厂商的推送服务,请选择小米推送作为第三方平台实现推送服务

下面一些应用可以从侧面来证明我的推断:

  • 腾讯新闻使用的小米推送,没有使用自己家的信鸽推送
  • 淘宝使用了自家的阿里云推送,同时还集成了小米推送
  • 百度视频爱奇艺使用的是小米推送,没有用自家的百度推送
  • 官网截图 - 集成应用:

  1. 如果希望进一步提高推送的效果,其实可以集成多个手机厂商的推送服务
  2. 比如小米渠道用小米推送,华为渠道用华为推送,但这样的实现成本会大一些

3.2 第三方平台类

请记住一个规则:推送系统会共享一条推送渠道

  1. 这意味着假设你接入了友盟推送,而恰好今日头条也接入了友盟。
  2. 有一天你的App被杀死了,但这时用户启动了今日头条,那么推送系统也就会通过共享的推送通道顺便把你推送消息送达到手机上,然后还可能把你的进程也唤醒(被“保活”了)。

所以说,关于如何选择第三方平台类的推送,推送平台的规模效应就很重要了。
那如何得知他们的规模和市场份额呢?按个人经验,主要看两点:

  • 问内部的朋友。
  • 看推送平台的合作客户里有哪些大的app - 参考对应官网的合作案例

3.3 BAT大厂的推送

BAT大厂其实并没有什么优势,同时谨记:

  • 不要以为用了腾讯信鸽推送,就能占上微信的光保证你的App永远内部被杀死。
  • 说个题外话,手机淘宝除了自家的阿里云的移动推送,同时也使用其它的第三方推送平台啊(比如友盟推送)。

4. 如何选择第三方平台推送服务?

  • 选择因素
    用户群体属性、实现成本、渠道

  • 具体选择方案

所以,大家可根据自己的使用场景来进行消息推送平台的选择。


5. 推送消息类别的选择

5.1 推送消息的类别

通常第三方推送平台都支持两种推送消息类型:通知栏消息和透传消息。

  • 通知栏消息:该类消息在被送达用户的设备后,直接以系统通知栏的形式展示给用户

不会继续被传递到App

  • 透传消息:该类消息在被送达用户的设备后,还会继续传递到App
  1. 通过回调App的某个BroadcastReceiver的形式将消息传递到App内部。然后由App决定如何处理和显示这个消息。
  2. 所以透传消息不一定会以系统通知栏的形式进行推送,由程序猿自定义

5.2 消息类别的区别与特点

  • 二者的区别在于:透传消息在整个消息传递过程中比通知栏消息多了一步-传递到App
  • 通知栏消息的优点:送达率高
    因为透传消息在整个消息传递过程中比通知栏消息多了一步-传递到App,因此透传消息就增加一些被系统限制的概率,给系统杀死的概率就高一些,所以说,通知栏消息比透传消息应该能提供更好的送达率。

我们来看下小米推送的官方文档描述:

  1. 在一些 Android 系统(如 MIUI)中,受到系统自启动管理设置的限制,应用不能在后台自启动
  2. 在这类系统中,如果在发送消息的时候对应的应用没有被启动,透传类消息将不能顺利送达。
  3. 因此,对于对送达率要求很高的消息,建议尽量采用通知栏提醒的方式推送消息
  • 透传消息的优点:对消息操作程度高 & 自定义程度高
  1. 提供了对消息数据的更灵活的操纵能力。

App如果仅仅通过通知栏消息,是无法接触到消息数据本身的。

  1. 可自定义通知提醒的样式(包括提示样式、提示形式如声音等等)

所以大家可以根据不同的使用场景来对推送消息类别进行选择了。


6. 总结

  • 相信大家已经非常了解关于第三方推送的相关信息。

  • 关于Android消息推送的其他知识,具体请看:
    史上最全解析Android消息推送解决方案
    Android消息推送:手把手教你集成小米推送

  • Carson带你学Android系列文章
    Carson带你学Android:学习方法
    Carson带你学Android:四大组件
    Carson带你学Android:自定义View
    Carson带你学Android:异步-多线程
    Carson带你学Android:性能优化
    Carson带你学Android:动画


欢迎关注Carson_Ho的CSDN博客 与 公众号!

博客链接:https://carsonho.blog.csdn.net/


请帮顶 / 评论点赞!因为你的鼓励是我写作的最大动力!

Android消息推送:第三方消息推送平台详细解析相关推荐

  1. Android 中的 NDK 到底是什么?(详细解析+案例实战)

    NDK 提供了一系列的工具,帮助开发者快速开发 C (或 C++ )的动态库,并能自动将 so 和 java 应用一起打包成 apk:这些工具对开发者的帮助是巨大的 什么是 NDK ? Android ...

  2. android中prop配置参数名,华为build.prop详细解析,配置参数由你做主!

    本帖最后由 我去葫芦娃 于 2015-7-4 14:17 编辑 说明:build.prop配置文件取自Mate 7官方包(P7,HONOR基本通用) 修改参数有风险,请谨慎操作!毕竟不是大神,所以MA ...

  3. android paint 圆角 绘制_android 绘制椭圆 圆角矩形 详细解析

    1.前几天看别人博客上的一个自定义视图时,看到了一个空心圆环,然后学习了下,把自己理解的  函数参数的 方法跟大家说下,下面是一个自己做的简单例子 1.绘制矩形 RectF rect1 = aaane ...

  4. 如何选择第三方消息推送SDK?你必须把握这几个关键点

    ​​消息推送(常通过第三方消息推送平台实现)是APP触达用户,和用户沟通的重要方式.通过消息推送,用户可以及时接收到新闻资讯.商品优惠.产品功能更新通知等重要消息.有效的消息推送,可以帮助APP唤醒沉 ...

  5. Android技能树 — 网络小结(6)之 OkHttp超超超超超超超详细解析

    前言: 本文也做了一次标题党,哈哈,其实写的还是很水,各位原谅我O(∩_∩)O. 介于自己的网络方面知识烂的一塌糊涂,所以准备写相关网络的文章,但是考虑全部写在一篇太长了,所以分开写,希望大家能仔细看 ...

  6. Android App收不到推送的消息

    推送功能可以算是每个App的都会开发的基本功能了,服务端可主动向其用户推送各类消息,结合精准的用户画像分析,给合适的用户在合适的场景下推送合适的内容,大幅度提升消息点击率.用户活跃度和留存率. 推送把 ...

  7. android融云消息提示,如何解决 嵌入融云SDK后, Android 手机收不到消息推送?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 很多人在嵌入融云SDK之后,遇到过Android手机收不到消息推送问题.下面来给大家一些干货.解决Android类手机收不到消息推送的解决方法.供大家参考 ...

  8. 关于Android安卓APP保活 - 安卓消息推送详解 - 安卓端外推送离线推送

    转自:http://zhangtielei.com/posts/blog-android-push.html 说Android端外推送比较烦,实际有两层意思:首先是说实现上比较麻烦,至今业界也没有找到 ...

  9. 友盟小米收不到推送消息_一个轻量级、可插拔的Android消息推送框架。一键集成推送(极光推送、友盟推送、华为、小米推送等)...

    XPush 一个轻量级.可插拔的Android消息推送框架.一键集成推送(极光推送.友盟推送.华为.小米推送等),提供有效的保活机制,支持推送的拓展,充分解耦推送和业务逻辑,解放你的双手! 在提iss ...

最新文章

  1. opencv python全屏显示、置窗口大小和位置
  2. 2015!我来了,你在哪里?今年第一篇
  3. php模拟论坛,模仿OSO的论坛(二)
  4. 需求分析的图形工具(层次方框 warnier IPO)
  5. 打乱数组排序的算法shuffle
  6. python时间模块哪个好arrow模块_Arrow-一个最好用的日期时间Python处理库
  7. [VB]使用ADOX创建Excel文件
  8. POJ 1470 Closest Common Ancestors(最近公共祖先 LCA)
  9. 阿里 mysql内核_阿里云数据库内核组讲解MySQL中的两种临时表
  10. SQL2005企业版详细部署(一)
  11. amd核芯显卡控制面板自定义分辨率_显卡是哪个
  12. matlab矩阵转置函数
  13. pvacseq数据分析示例之准备数据,用VEP注释vcffile
  14. HTML查看器PC,PE文件查看器(PeViewer)
  15. 校园智能安防监控解决方案
  16. 关于Windows 8 用户使用习惯调查结果
  17. 体育网站建设开发方案、开发流程
  18. 「π」里藏着所有人的银行卡密码和生日?
  19. Simulink文件命名问题
  20. python代码实现, SIR 模型进行信息传播模拟

热门文章

  1. python wxpy模块学习
  2. ASPICE 与 功能安全过程融合 | ASPICE要求需求开发实践
  3. 三分钟Python爬虫速成班
  4. 演出票务网站的SEO案例分析
  5. MapStruct - 一篇就能上手 MapStruct
  6. 云原生向量数据库Milvus(二)-数据与索引的处理流程、索引类型及Schema
  7. QQ项目之九 主窗体
  8. vue自定义校验规则-联系方式校验(手机或固话)
  9. IdeaVim快捷键
  10. 2020-2023年周末、法定节假日、工作日标签