推送服务基本上是每个 App 的刚需,自己也用过许多家推送服务,最近腾讯云上线了一个类似于 firebase 的移动开发平台,上面集成了很多的移动服务,包括推送(底层支持即为信鸽)、Crash 上报、第三方登录等。这里单独抽出其中的推送服务和市面上几家常见的推送服务进行一个简单的比较,整体使用上来感觉还是不错的,很顺利的就集成到了我现有的 Android 项目中去。
腾讯移动开发平台
目前的推送服务很多,主要包括极光、友盟、个推、百度、小米等,基本上这些产品都不止包含了推送服务,基本上都是一个具有多种服务的移动开发平台,比如:
- 极光不止推送,还包含了统计、IM、短信和分享功能。
- 友盟也是一个整合了多个服务的移动开发平台,除了推送,还包括统计、分享等。
- 个推同样整合了多种服务,包括推送、统计、用户画像、短信等,但奇怪的是个推不同服务之间应用是割裂的,比如说在推送服务中创建的应用在其他服务中不可见。
腾讯云上的移动开发平台目前的服务有:分析、推送、Crash 上报、存储、托管、计费和第三方登录,基本上已经形成了闭环开发,后续可能还会上线实时数据库和分享等功能,这点我非常看好,腾讯产品的体验一直都还是很有保障的。
这里我们不以整个开发平台进行讨论,只单独拿出腾讯移动开发平台和极光、友盟以及个推的推送功能来进行比较,比较的范围主要包括推送功能、集成难度、开发文档、控制台体验、服务收费几个方面进行比较。
推送功能
这几家的推送服务的基本功能是相似的,下面主要说下腾讯移动开发平台推送的主要功能:
- 支持通过控制台和后台 API 来给终端推送通知消息和透传消息;
- 支持通过账户和标签来进行推送;
- 支持华为、小米和魅族厂商通道,在这些厂商下的手机推送更加可靠;
- 支持添加通知样式,添加样式后,只需要通过样式 ID 即可使用对应的样式来进行推送。
- 支持本地推送消息:本地通知消息同样会触发回调。
- 各种回调相对清晰全面:用户通过注册 Receiver 来获取推送服务以及通知的状态,通知包括了:注册以及反注册回调、透传消息和通知消息到达、通知消息点击和删除以及标签绑定和解绑。
其他的推送平台功能上也基本和腾讯开发平台一致,可能会有一些额外的特殊功能,如 A/B Test 等,这里就不详细介绍了。
集成难度
极光、友盟、个推三家的集成步骤基本相同,主要是如下四步:
- 在控制台上创建应用;
- 在 Android 项目中引入 SDK 依赖;
- 并将应用信息配置在项目中(通过设置 manifestPlaceholder);
- 初始化或者启动推送;
腾讯的移动开发平台这方面的体验会更好(其实也是和 firebase 的交互更加一致):
- 在控制台上创建应用。
- 添加配置文件:通过 json 文件来配置参数,用户不需要自己手动添加 mainfestPlaceHolder。
- 添加 SDK 依赖:推送服务是自启动的,不再需要用户手动初始化或者启动推送。
其实不止推送服务,腾讯的移动开发平台上其他的服务也基本上实现了零代码集成。
开发文档
推送服务在具体可以参见这里
在功能介绍上,极光、友盟、个推基本上都是糅杂在一个文档中,看起来稍微有点费力,这里腾讯移动开发平台上的推送文档按照功能点对文档进行了拆解,将如快速入门、推送消息等功能拆分到不同的文档中,这样看起来会更加清晰,并且文档中对每个功能点是否成功都做了验证,用起来也会比较放心。
控制台体验
移动开发平台的控制台一眼看过去很清爽,进入应用后左边是一系列服务的列表,红框内是推送服务的控制台功能:
- 创建推送:用于发送通知栏消息和透传消息;
- 效果统计:可以看到推送的历史数据以及统计数据;
- 精准推送:这里可以管理标签,然后通过标签来推送消息;
- 配置管理:这里可以配置厂商推送通道、测试设备以及推送的应用信息,这里还提供了调试工具帮助开发;
- 信鸽实验室:将你的应用和行业进行横向对比,实时了解自己应用在行业中所处的位置。
当然,极光、友盟和个推各自的控制台也有自己的特点,风格也各不相同:
极光:
友盟:
个推:
奇怪的是个推不同服务之间应用是割裂的,比如说在推送服务中创建的应用在其他服务中不可见,这有体验有点不太好,其他的基本上看个人的爱好了。
服务收费
- 极光包含了三种不同的推送服务模式:免费、VIP、私有云;
- 友盟推送目前没有收费版本;
- 个推目前也有免费版和收费版;
- 腾讯移动开发平台对用户不做区分,所有的服务均免费;
总结
这里主要是分析了腾讯移动开发平台上的推送服务,整体来说
- 目前市面上的推送服务以免费为主,但也有一些收费版本,腾讯移动开发平台是完全免费的;
- 目前其他推送服务的接入方式基本一致,腾讯移动开发平台上会更加简单,实现了无代码集成;
- 腾讯推送的开发文档通过功能划分,看起来很清晰,可以很容易找到自己想要的功能点;
- 控制台上创建一个应用后,不但包含了推送功能,还自己集成了分析、Crash 上报等基本功能;
- 推送的核心功能各个厂家基本大同小异,有些厂家会有自己独特的功能点,当然推送服务最重要的还是稳定性,腾讯推送底层支持其实就是信鸽,也是一个很成熟的产品了,经过大量产品的验证,稳定性还是有保障的。