1、百度云 ,极光 ,个推的 区别 2013-07-16 15:05 51cto 编辑 张叶青 51cto 整理 字号: T | T 作为 Android开发人员,在做应用开发时我们常常会碰到消息推送,因为 Android不像苹果,本身没有消息推送机制,通常采用的是基于 XMPP 协议的推送,但这种开发很麻烦,因此在市场上应运而生了一种封装好的推送方式:极光推送,它的出现大大节省了开发时间,极光推送一度占领移动开发的市场,但是最近,百度推出了新的推送方式:百度云推送,在市场的反应也相当不错,作为开发者,有时候不知道选择哪一种方式的推送合适,下面就将详细介绍下这两者的区别和优势,希望你能从中找到答案
2、。 AD: 2014WOT 全球软件技术峰会北京站 课程视频发布 百度云推送的机制和特点: 1.单播消息推送 描述 开发者向应用的特定终端或特定用户推送消息。 特定终端对于应用来说,就是安装了应用的一台具体的设备。 而一个用户可能有多个端,在某些应用场景下,我们希望消息是针对用户的 应用的同一个用户在他的所有终端上都能收到消息,这时候我们就需要向特定用户推送消息。 解决思路 (1)向应用的特定终端推送消息 一个 channel id 指定一个终端,因此在这种需求下,开发者需要通过服务端 API,向一个特定 channel id 推送消息。在推送之前,客户端应用通过绑定接口的返回值获取到chan
3、nel id,并通过网络等手段发送给开发者,开发者需自行维护 channel id。 例如, Android 客户端,在调用了 startWork 之后,自定义消息 receiver 将会收到返回值,其中包含了 channel id、 user id 等信息。 (2)向应用的特定用户推送消息 云推送用 user id 来表示用户,因此在这种需求下,开发者需要通过服务端 API,向一个特定 user id 推送消息。和 channel id 获取方式类似,客户端应用通过绑定接口的返回值获取到 user id。开发者需要自行维护 user id。 应用场景举例 在线问答应用。用户 A 用手机发表一
4、个问题,问题的解答并不是实时的。假设在第二天用户 B 发表了第一个解答,这时需要将答案单独推送给 A。 解决方案 用户 A 发表问题时,记录问题 id 及其对应的 A 的 user id(或 channel id)。用户 B发表解答时,通过服务端 API 向问题 id 对应的 user id(或 channel id)推送解答。 2.用户分组的消息推送 描述 开发者向应用的符合特定分类条件的若干用户的集合推送消息。广播是分组推送的特例,它向应用的所有用户(同时也是所有端)推送消息。 解决思路 云推送通过 Tag(标签)这种技术方式来实现用户分组的功能。例如,对于分类信息的应用,一个用户观看了体
5、育栏目,就给该用户打一个 Tag sport。 6 月的某一天 NBA 总决赛热火夺冠了,则向 sport 这个 Tag 推送一条及时的夺冠新闻。 应用 场景举例 阅读应用。对不同阅读喜好的人群推送不同类别的新图书广告。 解决方案 应用提供喜好设置页面,用户勾选不同的类别,触发对应 Tag 的设置。或者用户阅读了某个类别的图书,触发对应 Tag 的设置。在服务端,给特定类别图书的 Tag 推送新书广告。 3.使用自己的账户系统或百度账户 描述 开发者可以使用自己的账户体系开发应用,或者应用就是无账户的。开发者也可选择使用百度账户作为应用账户系统的接入。 解决思路 (1)使用自己的账户系统或者无
6、账户系统 这两种情况,云推送都是无法理解账户信息的,所以对于云推送来说都属于无 账户体系。 云推送通过终端标识( channel id)和应用标识( APIKey)来唯一确定一个应用的一个特定端。应用的每个端都是不同的用户,拥有不同的 user id。 客户端的绑定方式,用 Android API 举例: PushManager.startWork(Context, LOGIN_TYPE_API_KEY, apiKey) (2)使用百度账户系统 云推送和百度账户系统是连通的,应用的所有用户将使用百度的 user id作为唯一标识。不同的端使用同一个用户百度账户登录,获得的 user id 是一
7、样的。这种方式可以实现对用户的多个端做消息推送。 百度账户的客户端绑定使用用户 AccessToken 作为验证凭证,用户 AccessToken 的获得需要百度账户登录界面的辅助,具体使用可以参看客户端 SDK demo或者百度账号连接官方文档。 同样的,客户端的绑定方式,用 Android API 举例: PushManager.startWork(Context, LOGIN_TYPE_ACCESS_TOKEN, UserAccessToken) (2) 百度账号连接官方文档 4.单服务单通道的端上实现 云推送的 Android SDK,是通过后台 service 和 socket 长连
8、接机制来实现的。从消息时效性、耗电量、网络流量等因素考 虑,这是目前最好的实现方式。 在同一台设备安装了多个使用推送的应用的情况下,如果每个应用都执行独立的后台service,且各自建立独立的长连接,这无疑是系统资源的巨大浪费。内存使用、耗电量、网络流量等关键因素都将以接近与应用数正比的倍数增长。 在这个背景下,云推送实现了单服务单通道的机制。同一台设备上,云推送服务的资源消耗不受集成该服务的应用数量影响。任何时刻,只会运行一个后台 service 和维持一个socket 长连接。 应用的初始化、 tag 等接口调用,将通过 intent 方式发送到后台运行的 service 处理。servi
9、ce 接收到推送消息时,将根据消息中指定 的发送对象,通过 intent,以指定目标应用包名的方式,发送私有消息给应用。应用无法接收到不属于自己的消息,也无法通过冒充截获。 示意图: 极光推送的机制和特点: 极光推送正是一个整合了 Android 推送、 iOS 推送的统一推送服务平台。作为国内最专业的第三方移动消息推送服务提供商,极光推送目前正为数千 企业和开发者提供稳定的毫秒级送达移动消息推送方案,已经覆盖了上亿 Android 和 iPhone 终端。目前积累应用开发者超过 10000 个,累计接入应用超过 12000 个。覆盖独立终端突破 1 亿 8000 万台。日活跃推送用户超过 4
10、000 万。根据统计数据,有效使用极光推送能够在 3 个月内提升 App 留存率 100%, 提升 App 活跃度更是高达 500%。而实现这些提升,开发者只需要花费 3 分钟进行 SDK集成,大大降低了开发者的独立开发和维护推送功能的难度。 http:/ 官方wiki 文档有 SDK 集成指南 API 描述及代码示例。极光推送会通过 blog 分享推送相 关技术。专门的问答系统,开发者可以提问一切有关使用极光推送产品的问题。 极光推送提供了哪些功能 推送通知 使你的应用程序保持高注意力 即使用户没有打开应用程序,也能够推送通知到达用户手机。您可以即时向用户推送活动提示、动态更新、积分信息等通
11、知。 推送自定义消息 强大的自定义消息推送通道 开发者可以推送自定义的消息内容。 JPush SDK 把内容完全转给开发者应用程序,由开发者应用程序去处理自定义消息。 管理和推送 WebPortal 灵活地根据需要定制推送服务 管理 Portal 上的推送助手,方便快速推送,普通 用户都可操作。 服务器端 API 极光推送提供了基于 HTTP 协议的推送 API, API 包含全部的推送功能,开发者完全可以基于此 API 开发独立的推送页面或者将推送功能集成到现有的管理系统内。 统计图表 推送效果直观呈现 推送到达了多少?到达后,用户有没有点击打开应用?打开应用后,用户逗留的时间有没有延长?直
12、观的对比图表,让你轻松地评估推送效果。 极光推送的应用场景 极光推送按照接受者范围的不同提供了广播,标签,别名, IMEI( Android Only)四种推送方式,不同的使用场景和开发者可以根据业务需求, 广播 按标签( tag)推送 按别名( alias)推送 按 IMEI 推送( Android Only) 定时推送 个推公共平台云推送服务的机制和特点 个信互动(北京)网络科技有限公司成立于 2010 年 7 月,位于北京、杭州两地。现有100 余位员工。 公司产品包括:国内最早的手机及时聊天类应用 -个信,以及最早的 PC TO PHONE 软件 八爪推送。 2012 年,公司全面开放
13、其核心竞争力 -推送技术,面向公众提供专业的手机推送解决方案,即个推平台,成为国内该领域的先驱和最专业服务商。 作为一个专注于移动推送技术的服务商,个推已 经为新浪微博、百度等公司提供推送服务。通过个推的推送解决方案,开发者可以在应用推送功能上节省开发成本,并达到节省公司资源、保证用户推送质量,省用户流量和电能的效果。开发者还可获得推送的 BI 数据。 个推平台专注提供移动设备长连接 SDK 和服务端接入的整体解决方案。目前个推平台主要提供两种服务模式,消息群发模式,提供群发管理后台,满足消息群发需求;业务整合模式,提供服务端 API 接口,可以与客户已有业务系统深度整合。 技术原理 首先我们
14、来看一下组成一个推送系统的几个要素 1. 个推 SDK: 以 jar 的方式出现,集成 于第三方客户端,解析第三方下行的数据,并把结果透传给第三方客户端;也可以上行第三方定制的客户端信息。 2. 个推服务器: 一侧负责维护与成千上万的个推 SDK 的长时连接,另一侧与第三方服务器对接,将第三方定制数据下行推送至个推 SDK。 3. 第三方服务器: 数据推送的发起者,通过对接个推服务器,将数据发送至第三方客户端。 4. 第三方客户端: 第三方集成个推 SDK 的客户端,推送数据正真的接收者和展现者。 以上是个推推送系统中的四个不同角色,看起来比较抽象,可以通过以下图片来加强理解: 说明: App
15、ID:应用 ID,第三方在个推系统注册帐号并创建生成的唯一的应用标识。 ClientID:用于标识客户端身份,由第三方客户端获取并保存到第三方服务端。 UID:一般为第三方系统帐号体系中的用户标识。第三方服务端一般需要保存 UID 和ClientID 的映射关系,进行消息推送时,通过 UID 查找到相应的 ClientID,便可进行定向推送了。 百度云推送,极光推送和个推各自的优势是什么? 极光推送功能优势: 1、高效稳定的推送通知 为合作伙伴提供长连接 SDK,开发者的服务消息可以推送到其客户端。使你的应用程序保持高注意力,即使用户没有打开应用程序,也能够推送通知到达用户手机。您可以即时向用
16、户推送活动提示、动态更新、积分信息等通知。 100 万并发量不超过 40 秒,水平服务器架构,任何单点失效都并不会影响推送。 2、自由度高,推送自定义消息。 强大的自定义消息推送通道。开发者可以推送自定义的消息内容。 JPush SDK 把内容完全转给开发者应用程序,由开发者应用程序去处理自定义消息。 3、灵活推送工具 灵活地根据需要进行推送。管理 Portal 上的推送助手,方便快速推送,普通用户都可操作。另外也提示 API 调用方式,灵活强大。 4.推送平台技术架构先进,经过考验的大规模用户 Push 平台 由于之前开发过 IM 应用,极光在消息推送业务上有丰富的技术沉淀期,并且不断地优化
17、系统,满足快速的业务增长。 免费推送服务 推送的用户数量没有限制,推送的消息条数也没有限制。 方便集成的 SDK 及良好的文档和技术支持体系 android 3 分钟 demo ios 简单配置 客户端 SDK 以非常低的代价保持连接,电量、流量消耗少。 推送内容的多少是由开发者决定的,网络状况不 稳定也会对电量造成影响。在不考虑推送的内容和网络影响前提下。理论数据平均值为:流量消耗 20K/天,电量消耗 30mAh/天 5、专业图表、推送精准化 推送效果直观呈现。推送到达了多少 ?到达后,用户有没有点击打开应用 ?打开应用后,用户逗留的时间有没有延长 ? 直观的对比图表,让你轻松地评估推送效
18、果。 这是极光推送应用后的数据趋势图: 云推送平台具备的优势 高安全性 平台在服务端与 SDK 进行通讯时进行了数据加密,保证客户数据的隐私安全。同时,个推平台还支持客户对传输数据自主加密,满足高安全性客户的需求。 高可靠性 平台服务器部署在 IDC 核心机房,三线接入,保证不同运营商移动设备接入的稳定性。个推平台采用分布式架构部署,不仅系统容量可灵活扩容,还可以提供 99.9% SLA。个信专业的运维团队维护,消息到达率超过 96%。 低成本 平台专注推送服务领域的研究,单台设备支持 100-300 万用户在线(根据单台设备配置会有波动),平均成本控制业界领先。 出乎意料的快速,瞬间送达 平
19、台的消息投递延时小于 0.2s,无论何时何地,用户移动设备有网络即可送达。 专为手机优化,省电省流量 平台采用自主研发的独有协议,比 XMPP 更 适合移动设备使用,符合 4S 标准(小巧、省电、省流量、稳定)。实测移动设备空载耗电每日 15-50mAh,空载流量 0.8-1.2M/月。 个推平台具备的优势 高安全性 个推平台在服务端与 SDK 进行通讯时进行了数据加密,保证客户数据的隐私安全。同时,个推平台还支持客户对传输数据自主加密,满足高安全性客户的需求。 高可靠性 个推平台服务器部署在 IDC 核心机房,三线接入,保证不同运营商移动设备接入的稳定性。个推平台采用分布式架构部署,不仅系统
20、容量可灵活扩容,还可以提供 99.9% SLA。个信专业的运维团队维护,消息到 达率超过 96%。 低成本 个推平台专注推送服务领域的研究,单台设备支持 100-300 万用户在线(根据单台设备配置会有波动),平均成本控制业界领先。 出乎意料的快速,瞬间送达 个推平台的消息投递延时小于 0.2s,无论何时何地,用户移动设备有网络即可送达。 专为手机优化,省电省流量 个推平台采用自主研发的独有协议,比 XMPP 更适合移动设备使用,符合 4S 标准(小巧、省电、省流量、稳定)。实测移动设备空载耗电每日 15-50mAh,空载流量 0.8-1.2M/月。 易于实施 个 推平台移动设备 SDK 集成半天即可完成,使用推送管理后台,当天即可零开发群发消息。同时,个推平台也提供完善成熟的服务 API 可以与客户已有业务系统紧密结合。 强大的分析报表 个推平台可以提供应用的留存用户,在线用户等核心数据,并会不定期提供行业数据分析报告及客户的行业排名指数。对于消息投递到用户后的访问行为,个推平台也会提供精准的效果评估报告。 小编总结: 其实无论选哪种方式最适合我们的才是最好的,以上就是这两种推送的区别和各自的优势,哪种是你需要的呢,根据自己的需求来决定,是最好的选择!