产品的推送需求--------Android开发

之前听说过推送,但对其并不了解,今天刚好看到一边关于推送的文章,特此转来分享一下

推送的用途即是保持用户粘性。

一般来说,用户安装了应用程序后,开发者对其是只有很小的控制力的,也没有办法主动与用户交互,只有被动地等待用户打开应用程序。

当您的应用内嵌了 JPush SDK 后,情况将会改变。您可以通过极光推送平台,主动地向您的用户发起交互,向其发送日程提醒、活动预告、进度提示、动态更新等。

在 iOS 平台上,推送功能几乎是所有 App 的标准配置。用户会经常收到来自于开发者发送的定制通知、提醒信息。 只要这些信息不是过于垃圾,一般也不会取消收取通知 。 事实证明,这些推送通知,能够有效地提高应用程序的粘性,提高用户留存率。

 

Android开发该怎么满足产品的推送需求

转型做Android开发也有些日子了,客户端也写了几个版本了,相信很多同行都和我一样,很羡慕ios开发。这倒不是赚得钱多钱少的事,实则Android很多基本需求实现起来都很蛋疼,比如手机定位,因为很多ROM阉割Google服务无法使用官方推荐的定位方式;再比如客户端内展现地图,和前面的原因一样基本上也很头痛,要自己去集成一个第三方地图sdk;还有就是我这篇文章要说得关于实现Android客户端推送的事。当然蛋疼的事还有很多,在此不一一列举了。

要说推送,这玩意的确是个好东西,用户关闭了软件你还想送达信息,就必须得实现推送,对于提升APP的回访那是立竿见影的效果啊。在这里说一下,推送是push而不是pull,如果你的需求实时性不是很高,那完全可以搞个service每小时请求下服务器pull一下,push的话那必然要使用长连接,因为你要保证链接的完整性,你要定期发送心跳包。所以作为有良心的开发者,push既要为用户考虑省电还要考虑省流量。Apple有apns,所以ios的开发者并不需要关注这玩意,只要绑定用户的token然后照着推就行了。可是Android就很蛋疼了,官方的GCM(以前叫C2DM)服务虽然也不错,但是由于Android过于开放,GCM在国内很多ROM都被阉割了,而且就算不阉割的,也要依赖google account,那么算来算去能覆盖的用户已经不多了。

相信各家的应用大部分都有推送需求,那么实现的时候,是很让人捉急。技术不错,富有探索精神的团队,很可能会自己去实现一个,因为推送这个问题毕竟已经困扰了Android开发者几年了,所以很多先贤也搞了一些开源的方案,基于此基础再开发,确也是是办法,好处便是完全可控,每个环节自己都能了解,坏处就是你的服务器可能要承受一定压力。因为多一个用户,你的服务器就要多持有一个长连接,这个还是有点损耗的,而且这些长连接大部分可能是低活跃的,但是它却一直在耗费你的服务器资源,一旦你用户扩大了,那么服务器很可能被这玩意拖垮了。如果有要自己实现的大神们,我推荐下面两种方式,当然这也是先贤们开发和总结的:

1、采用MQTT协议实现Android推送

2、 采用XMPP协议实现Android推送

前者的协议比较适合推送,后者XMPP比较适合做聊天的协议,但是后者有成熟的整体解决方案(棒子写的),具体每个方案怎么实现,我就不多说了(写了也是抄别人的),麻烦您抬贵手google下吧。

那么另外一种就是借助第三方平台,能够提供类似Apple的apns服务,我知道的是,国外有一家Urban AirShip,国内有个推和极光推送。Urban AirShip在国外,沟通上很多诸多不便,我也没怎么了解就放弃了这个方案。个推是做得还不错,weibo客户端就是用它做推送的,但他是收费的,之前了解的价格是1w个连接每月¥1k,我简单算了算自家的应用用户数,每月开销还不小啊。

极光推送(http://jpush.cn/),这个是完全免费的,也不会被360等安全软件拦截,客户端集成jar后,即可通过portal发送消息,也可调用remote API发送到制定设备上,极光的API还是很灵活的,支持alias和tag分组推送。

这是极光推送的portal后台


每一次推送都有相关的推送记录


自定义通知栏,可以帮助你实现诸多需求,比如在我的应用里,我实现了推送评论,推送运营专题,推送新版本升级。如图:

实时推送用户评论,活跃社区氛围


定时推送美食杂志


新版本发布推送

 

作者:牛小腩

链接:http://www.douban.com/note/256162305/

时间:2013-01-03 17:39:33
posted @ 2013-01-07 21:00  狼牙—飞  阅读(361)  评论(0编辑  收藏  举报