看到很多人说苹果推送比安卓好太多,安卓关掉app就没法收到推送消息,作为从业者,来给大家科普下安卓和苹果的推送区别。

首先上苹果推送的整体流程图

简单描述一下,开发者先接入苹果推送服务,有消息需要推送时,在服务器上配置需要推送的内容,然后数据会通过ios提供的一条系统级推送通道(TCP长连接)将消息推送到手机,手机解析通知并展示。

对于安卓来说,其实谷歌提供的GMS也是一样的逻辑,这里就不重复了。但因为谷歌在国内被墙了,所以国内安卓推送就比较复杂了。简单说下安卓推送的发展过程。

1.在安卓早期,系统限制较少,app开发者基本都是自己来维护一条推送通道。这样就导致了手机资源的极大浪费,对比ios,10个应用在ios只需要建立1条TCP长连接,而在安卓上就需要10条,而维持TCP长连接需要定时发送心跳包,而发送心跳包又需要唤醒手机,所以出现的结果就是:在安卓上,app为了及时收到消息而拼命保活,

TCP长链接维持需要经常唤醒,导致手机内存和电量的迅速消耗。

2. 为了优化前面所说的两个问题,随着安卓版本的演进,对于app的后台保活越来越严格,因此为了解决app被杀后无法收到消息的问题,大多数开发者开始接入第三方的推送sdk,比如友盟、个推、极光等。第三方的推送sdk可以实现推送通道共享。比如,应用a和b都集成了个推,a和b只需要使用1条TCP长链接就都可以收到推送消息。即使其中一个被杀了,也可以使用共享的通道展示通知消息。

3.随着安卓对后台管理的日益严格,且国内厂家为了提高手机性能和功耗,对后台应用采用白名单策略,不在白名单里的几乎不能在后台存留太久。即使共享通路,也不能完全满足推送消息的到达率要求。(因为可能共享的所有app都被杀了,这样通道就断了)。加之各大厂家都为了解决推送问题,提供了自家的推送服务,即系统提供一条系统级的推送通道,app可以通过此通道推送消息,客户端收到推送消息后展示通知,并不需要应用存活。其实此时逻辑和苹果推送服务已经完全一样了

,而个推友盟极光的sdk等也提供了使用

系统自带推送通道的开关,也就是说只要使用系统的推送服务,通知消息几乎是百分百到达。

总结一下,回答几个常见的问题。

1. 安卓的推送是不是不如苹果?

这个问题无悬念,因为苹果的强管控,所有推送必须走APNS,而安卓虽然有同样的功能,但不是每个应用都接入了推送服务。

2.安卓app挂了是不是就收不到消息了?

如前所述,此说法不正确,只有走自己推送通道的才会app挂了就没法收到消息,而使用系统通道的不会。大多数的应用都是用了系统的推送,不用的要么是用户太少,app不是国内的,因为使用系统推送对app本事也是有好处的,可以提高通知到达率;要么就是常年在厂家白名单里的,比如微信QQ这种,没哪个厂家会主动杀微信,微信也不愿意用厂家的推送通道,一直用的自己的。

3.安卓推送和苹果推送差距大么?

这个我只能说差距肯定有,但不是很大,主流应用推送都可以即使到达。如果对比较小众的app推送消息及时性有要求的,那就有差距了。

最后,补一个安卓发展趋势,工信部统筹的统一推送联盟估计这两年就要上线了,为的就是统一国内安卓推送的问题,而且统一推送联盟还利用了运营商的信令,即使没有数据连接也可以推送。安卓推送的到达率超过ios我觉得问题不大。

手机码字,还多包涵。

Android与ios消息推送哪个好,科普下安卓和苹果的推送区别相关推荐

  1. android与苹果 推送,科普下安卓和苹果的推送区别

    看到很多人说苹果推送比安卓好太多,安卓关掉app就没法收到推送消息,作为从业者,来给大家科普下安卓和苹果的推送区别. 首先上苹果推送的整体流程图 简单描述一下,开发者先接入苹果推送服务,有消息需要推送 ...

  2. google android win10 ios,谷歌自研 Fuchsia OS 将兼容安卓,欲和 iOS、Win10 一较高下?...

    早前,有消息称谷歌准备自研一套连 Linux 内核都不需要的新 OS,其或被命名为 Fuchsia.据 XDA 报道,开发者在 AOPS 的开源库中发现了 Fuchsia OS 现身,不过,仅仅是在 ...

  3. android刷机知识大全,刷机知识科普:安卓刷机基础知识汇总

    对安卓手机玩家来说,刷机可谓是一门必修课,而对小编来讲,刷机更是一种"娱乐方式".相信仍有读者对刷机的中一些概念不是特别熟悉,不过不用担心,今天,笔者就给大家讲讲安卓刷机的那些事儿 ...

  4. Android 和 iOS APP 测试的区别

    目前市面上主流的移动操作系统就是 Android 和 iOS 两种,移动端测试本身就跟 Web 应用测试有自己的专项测试,比如安装.卸载.升级.消息推送.网络类型测试.弱网测试.中断测试.兼容性测试等 ...

  5. Android和IOS的区别和联系

    关于开发语言的历史可以参看:计算机和编程语言的发展历史 关于Android和IOS的发展历史可以参看:Android和IOS的发展历史 开发语言不同 1.IOS使用的是ObjectC和Swift 2. ...

  6. Android 和iOS技术原理差异总结

    背景:测试过程当中,我们经常测试两个端:安卓和iOS端,鉴于安卓和ios实现的原理差异可以辅助我们更精准的去定位为题,解决问题,现在总结出Android和ios的差异不同点如下: 一.两者运行机制不同 ...

  7. Android与iOS对比

    最近有并行开发Android与iOS端App,想在这总结一些两种开发的相似与区别. 转载于:https://www.cnblogs.com/stuwan/p/6475725.html

  8. Android超越iOS用户体验改进之安卓优化趋势

    根据权威智能手机操作系统的排名,Android.iOS是当今最受欢迎的智能手机操作系统.苹果公司的iOS是Android的最大竞争对手,从有用.易用.友好.视觉设计和品牌这五个用户体验设计目标来看,i ...

  9. 两个平台的故事:针对Android和iOS进行设计

    无论您是在内部工作,与承包商签订合同,还是为代理商工作,公司都有许多不同的原因需要应用程序. 既有的公司尤其需要迎合现有客户及其使用的设备. 通常,这意味着同时为Android和iPhone开发了一个 ...

最新文章

  1. yolov3算法优点缺点_优点缺点
  2. Android之AIDL使用详解
  3. Flowable 生成工作流图片时, 不显示文字显示方框
  4. 设置网页文字禁止复制
  5. jade软件_TEM衍射斑点标定之DM软件
  6. C#数据结构-双链表
  7. 6-3cifar10数据集介绍-读取-处理
  8. Jfinal中Cron4jPlugin使用
  9. 超越Hadoop的大数据分析之图形处理尺寸
  10. 玩转DataGridView之实现两个GRID间行的拖拽
  11. 2019年全国程序员统一考试,现在开始!
  12. SketchUp-2022版本
  13. 最新研究发现:另一半学历越高,你的身体可能就越健康
  14. Verizon的野望
  15. javascript 3d 逐侦产品展示
  16. 谷粒商城-08-p139-p172
  17. 移动医疗APP的渠道策略
  18. ubuntu 运行c语言文件路径,ubuntu上解压目录里的文件到指定文件夹
  19. Hadoop 安全模式永久退出的方法
  20. vs2017开发ActiveX(主讲OCX)(十)、手动添加自定义方法

热门文章

  1. python爬虫豆瓣电影我不是药神的评价_用 Python 带你看《我不是药神》
  2. agv机器人无人仓系统设计概述
  3. docker ii 群晖ds216_群晖DS216+II简易开箱
  4. G1 收集器 面向服务端(多CPU)应用的垃圾回收器
  5. 2021年中国乘用车行业发展现状分析,行业开始回暖,SUV产销量再度第一「图」
  6. 阿里云app推送安卓提示:InvalidParameter The specified AndroidPopupTitle.length mush be less than 16...
  7. citespace使用教程系列文章:一、citespace安装和关键词共现图
  8. 多目标排序在快手短视频推荐中的实践
  9. Invalid number format for port number
  10. Gym 100851F Froggy Ford(dijkstra)