Heim > Fragen und Antworten > Hauptteil
羡慕嫉妒恨死iOS开发者了,苹果提供了很好的pn服务,超级方便。
google本来也有C2DM服务,但是被GFW了,各种不稳定
如果自己搞一个Service轮询,非常容易就被用户干掉
求一个方案,在墙里怎么做这种push服务啊,还得兼容各种版本
伊谢尔伦2017-04-17 11:07:25
google 新出来一个 google cloud messageing for android 但是也不是所有的版本都兼容。 应该可以的。http://developer.android.com/guide/go...
ringa_lee2017-04-17 11:07:25
android推送确实很麻烦,最近也在弄
网上搜也是很多方案
1. C2MD就不用说了,除了不稳定之外,似乎还需要能绑定google帐号的手机才行,国内的android厂商的ROM各种阉割,很多google服务也不能用了
2. 轮循去取数据似乎太耗电,也容易被kill掉,不过对于非实时的消息获取感觉可以一试
3.用androidpn,有开源代码,不过缺点就是需要自己搭建服务器端(java),我试过感觉还行,网上也有各种改进版本,但是后来感觉不太稳定就没用了
4.用http长连接实现,也是需要自己搭建服务器端,目前我使用这种方案,但是没有大规模测试,所以也不知道能承受多少客户端
具体可以参考这个帖子:http://www.cnblogs.com/java-koma/arti...
5.使用MQTT协议,需要自己搭建服务器端,不过还需要跑一个代理服务器什么的,有点麻烦所以也只是测试过可用而已,可以参考这个帖子:http://blog.csdn.net/joshua_yu/articl...
巴扎黑2017-04-17 11:07:25
楼主的问题,实际是二个问题:
1)技术上使用什么推送服务? Android上官方的用不了,那只好:要不自己折腾;要不使用第三方。
2)Push 在 Android被杀死怎么办?
第一个问题好回答:
如果不太愿意投入大多精力,那就使用第三方的吧。之前大多提供这个服务的都要收费,或者要允许接受广告;最近国内有个提供免费服务的出来:极光推送 (http://jpush.cn) ,建议去看看。
第二个问题:感觉挺麻烦的。
因为 Android手机,像之前 Windows PC 一样了,一个字:乱。
也只能是使用多种办法,让 Service 被唤醒。比如 RTC。
但是有一点:可以让用户控制。好的推送,一定是用户同意的情况下的推送。
否则就是垃圾广告了。
PHPz2017-04-17 11:07:25
MQTT 基于Socket长连接,自带心跳保持连接,断线重连,协议简单非常省流量
已经在我们公司的项目中成功运用
代理端(既Broker) 使用Apache Apollo ,稳定,高速http://activemq.apache.org/apollo/
客户端使用 Eclipse Paho 项目
推送服务端支持各种语言
http://mqtt.org/software
调试可以使用这个工具
mqtt-debugger
至于被用户干掉,可以用startservice启动服务,被普通结束后会自动重启并重连
再监听网络改变的广播,当接入网络再启动服务,绝对常驻
黄舟2017-04-17 11:07:25
androidpn 我有开始试用,效果还不错,也开源,xmpp协议的,如果你的客户端量不大的话,可以考虑用这个。
如果你的激活量已经好几十万了,我觉得你可以考虑用一些商用的推送方案,国内“个推”做得比较好,微博的推送也是用这个的。
PHP中文网2017-04-17 11:07:25
在一键优化面前,push service的留存率太低了!~
1,需要联网会被流量监控和谐,好吧,我就讨厌后台默默跑流量的服务,特别还不是系统的,卸载又没啥影响的
2,自启动也会被启动优化搞掉
之前有试过,最后的最后还是合并到应用里去了
PHPz2017-04-17 11:07:25
国外的,urbanairship挺好用的,没有被墙,实际使用中也没有遇到网上传说的速度问题,基本上几秒内就能收到推送。
国内的,
个推,没用过,不太了解。http://igetui.com/
极光推送:http://www.jpush.cn/。 试用过一下,还可以。