热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JPush,友盟,百度云,个推Push服务在保活上的对比

由于目前Android系统杀进程越来越厉害了,这对于应用在Push及时到达上有高要求的感到压力很大,所以前段时间在项目中考虑第三方Push服务时更多的想要有更强的保活功能。—目前我

由于目前Android系统杀进程越来越厉害了,这对于应用在Push及时到达上有高要求的感到压力很大,所以前段时间在项目中考虑第三方Push服务时更多的想要有更强的保活功能。

—

目前我们常用的几大Push,小米Push,华为Push,JPush,友盟,个推,百度云推送在进行对比中我使用了小米Push,华为Push,和百度云Push。

市场上其他应用是怎么做的

—

如果Android系统级别推送GCM能在中国使用,那么这些也就没有必要讨论,我们也就能像IOS推送一样方便,实际上我们却用不了,那么同样大家都遇到一样的问题。其他人是怎么解决的呢?
以下几点是个人的大概的几点统计
  • 微信
  • 百度全家桶
  • 小米Push/华为Push

这里只是简单的说下这三个很有代表意义的Push

  1. 微信的占有率极其高,并且用户对其粘性非常强,这让我想起我在中学时代手机营业厅里每部手机都会告诉你能登QQ,时代换汤不换药那么现在是如果一部手机居然收不到微信消息,肯定不是微信的原因一定是手机有问题,所有大家很快也就明白为什么每台手机即使有后台强杀也会自动把微信加入白名单,如果我的应用能被加入白名单那真是太幸福了。
  2. 说百度全家桶可不是说装了一个百度应用就装所有百度其他应用,但实际效果差不多只要你打开一个百度应用,那么基本上手机上的其他百度应用都会在后台被唤醒,Push自然而然的都能收到,这里也不止百度这么做,阿里也同样会,不过这种方式在以后中会被系统禁用。
  3. 小米Push是系统级别的Push,就像IOS和Android的GCM原理一样,在一个手机中的所有应用有同样一条Push服务,应用完全不用打开就能及时收到所有Push,加上小米手机的占有率这一点也是不可忽略的,同样华为Push也是一样,并且在我了解中大部分应用都集成了小米Push,华为Push,和其他。

说说第三方Push

JPush

—
JPush是我最早使用过的Push,但是由于他在进程保活上的做法不能满足我的要求所以被放弃了
JPush的保活在官方文档说明:



android:name="cn.jpush.android.service.DaemonService"
android:enabled="true"
android:exported="true">





也就是只要配置文件配置这一项那么其他同样集成JPush应用启动时就会把你唤醒,这种就是我们常用的`Intent` `setAction(X)`方式,通过`intent-filter` 搜索所有注册了对应`action`的应用信息
####友盟推送
--
官方原话:实现了同一设备多 APP共享一个长连接、智能心跳等优化方案。消息发送速度快,长连接稳定,设备能耗低。
测试也发现多个APP只要都是集成的友盟推送,那么在一台设备中只要有且有一个应用Push连接正常,那么其他所有的集成友盟Push的APP不用启动也能收到Push。
#### 百度云,个推推送
--
百度云推送和个推推送在推送原理上基本和友盟类似,这种方式也是一种虚拟系统级别推送。百度云推送在启动的百度地图后你的应用可以做到不打开也能接受到Push,并且初步的测试发现百度唤醒对应的需要唤醒的包名对应文档保存在Sd卡中,同样集成的百度云推送的启动后会在SD文档中加入自己的包名,由于是加密的我也就没看得很明白,百度云推送接受到Push后会首先通过广播形式发送给目标应用,广播不行才会通过启动对应的`Service`。
个推说的新浪微博也集成了自己,反编译后倒是没发现。
#### 小米Push,华为Push
--
对于这两者来说也没有太多探讨,这是在他们自己系统上最好的实现方式,但是到其他系统就基本和别人没什么区别。
#### 总结
#### 1.JPush的
对JPush来说我也不知道他到底好坏,比较中庸,用了不能很好的提高保活,同时唤醒是相互(可以去揣摩是不是真的一定相互)的。
#### 2.友盟,个推,百度云
#### 好处
* 推送到达率和及时率提高
* 手机耗电会减少
#### 坏处
* 耗电会集中在打开率最高的应用上
#### 3. 小米,华为推送
#### 好处
* 最方便的实现,最高到达率
#### 坏处
* 基本只能在他们自己系统才能达到这种效果

以上只是个人的一些看法,忘指教。


推荐阅读
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文由编程笔记#小编整理,主要介绍了关于数论相关的知识,包括数论的算法和百度百科的链接。文章还介绍了欧几里得算法、辗转相除法、gcd、lcm和扩展欧几里得算法的使用方法。此外,文章还提到了数论在求解不定方程、模线性方程和乘法逆元方面的应用。摘要长度:184字。 ... [详细]
  • HTML5网页模板怎么加百度统计?
    本文介绍了如何在HTML5网页模板中加入百度统计,并对模板文件、css样式表、js插件库等内容进行了说明。同时还解答了关于HTML5网页模板的使用方法、表单提交、域名和空间的问题,并介绍了如何使用Visual Studio 2010创建HTML5模板。此外,还提到了使用Jquery编写美好的HTML5前端框架模板的方法,以及制作企业HTML5网站模板和支持HTML5的CMS。 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • Netty源代码分析服务器端启动ServerBootstrap初始化
    本文主要分析了Netty源代码中服务器端启动的过程,包括ServerBootstrap的初始化和相关参数的设置。通过分析NioEventLoopGroup、NioServerSocketChannel、ChannelOption.SO_BACKLOG等关键组件和选项的作用,深入理解Netty服务器端的启动过程。同时,还介绍了LoggingHandler的作用和使用方法,帮助读者更好地理解Netty源代码。 ... [详细]
  • iOS开启Google位置服务器和显示定位权限的方法
    本文介绍了在iOS开发中如何开启Google位置服务器和显示定位权限的方法,包括导入CoreLocation和MapKit库、在界面导入头文件和在info.plist文件中添加授权等步骤。同时还介绍了iOS11中NSLocationAlwaysAndWhenInUseUsageDescription的功能变化。阅读本文可以帮助开发者了解如何在iOS应用中使用Google位置服务器和处理定位权限相关的问题。 ... [详细]
  • PHP反射API的功能和用途详解
    本文详细介绍了PHP反射API的功能和用途,包括动态获取信息和调用对象方法的功能,以及自动加载插件、生成文档、扩充PHP语言等用途。通过反射API,可以获取类的元数据,创建类的实例,调用方法,传递参数,动态调用类的静态方法等。PHP反射API是一种内建的OOP技术扩展,通过使用Reflection、ReflectionClass和ReflectionMethod等类,可以帮助我们分析其他类、接口、方法、属性和扩展。 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
  • 本文介绍了在Go语言中可见性与scope的规则,包括在函数内外声明的可见性、命名规范和命名风格,以及变量声明和短变量声明的语法。同时,还介绍了变量的生命周期,包括包级别变量和局部变量的生命周期,以及变量在堆和栈上分配的规则和逃逸分析的概念。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
author-avatar
ryan__bug
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有