首先,谢绝广告推广,最好有试用过或实践过的同学说说使用的感受。
我们公司在运营着几个 app ,提供关于社交,直播,资讯这类功能,对推送的需求量很大,计划自己搭建 Push 服务平台。结果是从入门到放弃的过程,查过无数资料,付出数周加班时间还是绕不开服务端架构设计的大坑,工作量和成本巨大根本没办法继续,不得已转向第三方。
现在推送最大的问题还是进程保活,安卓 5.0 之后厂商自动清理后台,进程守护拉起, fork ,留像素点, NDK 文件锁之类的全部不顶用,之前试用过几家,到达率根本没法看。自己也没有什么好的办法,集成厂家通道也比较麻烦,华为的文档看得人云里雾里,快被推送逼疯了。
求大家推荐个好用、省心的第三方推送,最好集成简单,能解决目前的问题的。知乎上充斥着各种水军广告已经没法看了,不得已转移到 v 站这片净土,希望大家多给推荐和建议。
我的问题已经解决了,用的是 云巴 yunba.io。还是如大家所说要集成小米华为的厂家通道,但它那里不用我自己注册小米华为的帐号,一键集成。测试体验还不错,今晚他们CEO直播讲推送的保活问题也可以听听。既然我在帖子里答应过客服,那就帮它打个广告吧。
希望大家继续对推送SDK如何保活,推送平台选泽进行讨论,多给我们这些苦逼安卓程序员意见,谢谢啦。
1
oreatial 2016-11-07 14:48:06 +08:00
jpush
|
2
maoyudev 2016-11-07 14:49:03 +08:00
推荐小米推送,毕竟小米手机的用户量在那儿。再就是极光、个推、友盟等等。
|
3
ipconfiger 2016-11-07 14:53:44 +08:00
目前在用融云, 还将就吧, 推送这玩意儿其实技术上并不难, 主要是吃资源, 特别是 openfile 和内存, 而且安卓的 SDK 也是很麻烦的事情, 被杀掉的机率太高了
|
4
linffang OP @maoyudev 集成过小米推送,用的是 Notification 不是透传,并且仅对用小米的用户效果较好,对其他厂牌还是没能解决问题
|
5
linffang OP @ipconfiger 有到达率统计吗?这家的广告太多,网上的数据不敢信。
|
6
MountainRain 2016-11-07 14:59:29 +08:00
个推啥, Android 是透传, iOS 是推送加透传
|
7
raysonx 2016-11-07 15:01:23 +08:00
没有 Google 服务框架的悲哀。
|
9
ipconfiger 2016-11-07 15:04:56 +08:00
@linffang push 的到达率 90 多, 实测
|
10
finian 2016-11-07 15:05:07 +08:00
基本无解。用第三方的话,有厂商自己的推送平台的话就用厂商自己的,比如小米的用小米,华为的用华为,剩下的就用极光、个推、友盟等等等等
|
11
wanttofly 2016-11-07 15:05:51 +08:00
阿里推送啊!不过我没试过哈。我以前还发过帖子问过有关阿里推送,但是好像没人在用。阿里集成了小米推送和华为推送,然后自己也搞了一套。自动保活没啥好手段的,在小米( android4.4 )手机上用双 service 守护是可以的,其他的没测试,最新米 UI 没测试。其实最靠谱就是自己把极光,友盟,小米,华为四个推送都集成上,基本上可以保证 80%以上的推送到达了。。。
|
13
linffang OP @MountainRain 额,虽然不想乱黑,但是试用过体验最差的是它
|
14
inmyfree 2016-11-07 15:08:48 +08:00
百度的,哎,基本是不能看了.... |
15
linffang OP @ipconfiger 调研过融云需要自己集成华为小米厂家推送通道,而集成华为,注册开发帐号这些比较麻烦,问题需要一拖再拖,拖了几天了都。
|
16
MountainRain 2016-11-07 15:12:54 +08:00
@linffang 个推有推送不到的情况吗?
|
17
banksiae 2016-11-07 15:13:04 +08:00
据说个推的还可以,公司有个项目打算接个推。但是现在的 IM 服务是自己写的, apple 走 apns , android 就直接离线了,没有推送
|
18
linffang OP @wanttofly 谢谢分享,但现在说进程相互守护这类的保活方式已经没有意义了,还是要自己集成多家厂家通道,有些还没有,要死。
|
19
patton 2016-11-07 15:14:11 +08:00
使用个推试下 http://www.getui.com/
|
20
Chrisplus 2016-11-07 15:19:01 +08:00
第三方推送就看一个指标……装机量,你去看看装机量排名前几的应用都用的是什么, BAT 都有自己的第三方推送,跟他们的 app 绑一起就好了么……
之前用的小米推送,效果比友盟好(仅就我们有限的测试结果来看,不具有广泛的参考性,毕竟机器数量摆在那里。 |
21
pubby 2016-11-07 15:20:12 +08:00 via Android
接入多个,靠一个通吃没戏。初始化的时候根据手机系统品牌等选用对应的推送服务注册设备,小米之类系统内置推送服务不要用透传
|
22
domty 2016-11-07 15:21:55 +08:00
安卓的推送是个大坑,实在不行考虑多个平台推送,哪个推到算哪个?
毕竟讨论国内的平台覆盖的话,小米,华为, oppo/vivo 三家的占有量加起来也就差不多了。 |
24
Chrisplus 2016-11-07 15:25:47 +08:00
@linffang 恩,确实。但是即便这样,我的看法是,保活跟唤醒依然不是我们需要考虑的问题(第三方推送服务需要考虑),跟大厂应用绑在一起依然是投入最少,收效最高的做法
|
25
linffang OP @domty 哈哈,推到那个算哪个。我想要的是一个第三方推送帮我集成,覆盖小米华为之类的厂家通道,最好集成还不麻烦。
|
26
yunbaIO 2016-11-07 15:33:48 +08:00
虽说不能打广告,但我感觉我们云巴的服务可以完美解决您的问题哈,现在我们云巴一键集成小米,华为的推送,不用自己集成和注册帐号,并且会自动识别这两类机型,通过在这两类机型上的小米、华为推送进程来拉起云巴进程从而实现杀掉 app 也能收到推送的效果。
|
27
laven 2016-11-07 15:33:59 +08:00
同时集成 mipush 、华为 push
|
29
ipconfiger 2016-11-07 15:42:30 +08:00
@linffang 小米华为的推送在 rom 里不开放, 你用哪家都得自己集成, 这里只需要集成帐号算是轻松很多了
|
32
murmur 2016-11-07 15:46:37 +08:00
现在国产 rom 如果杀不掉你的推送才有问题呢 加油吧 小米现在很满意了 该杀掉的都杀掉了 目前还没看漏网的 除了小米自己的
|
33
yunbaIO 2016-11-07 15:49:47 +08:00
@cxe2v 华为和小米这两家市场占有率方面占优,能大致满足。最最重要的是,仅这两家厂商提供推送了服务,厂商没有 提供的话,任何第三方推送商也没办法集成其他厂商的推送。日后如果有其他厂商提供的话我们会继续为开发者们一键集成
|
34
vsyf 2016-11-07 16:18:08 +08:00
android 这行这特么的乱啊我勒个去
|
35
linffang OP @ipconfiger 我有几个 app ,都需要集成,一来二去的实在辛苦。
|
36
nashxk 2016-11-07 16:22:08 +08:00
目前在用 jPush ,感觉还挺好的。。。
|
37
scys 2016-11-07 16:24:59 +08:00
不推荐信鸽: D ,正在用,你们遇到什么问题,那么苦恼?
我这边自己实现的推送和市面上的差不多,反正并发不算高的情况下,还是可以的。 要不,你试试野狗的? |
38
GOOD21 2016-11-07 16:30:29 +08:00
我觉得苹果的没的说,自己做就好了,不难( gfw 的事可以通过阿里香港节点解决),重点说下安卓的。
安卓分两种: 一种是 rom 通道: 小米 push 推送小米的手机效果还不错,可以用; 华为 push 分为免费版和付费版,我们想用付费的,但是华为的商务不跟我们谈...始终想不明白为什么给钱都不要,所以免费的也不敢用(原因不细说了); 据说 vivo/oppo ,也要做 rom 推送,内部消息不知真假。 但总体上说 rom 是到达率最高的方式。 另一种是第三方: 个推、阿里、友盟、极光、腾讯信鸽等等... 其实实现方法都差不多,额外关注的一点是 联盟唤醒,比如,你装了手淘系 app (淘宝、天猫),如果你的 app 被杀死之后,淘宝没死,就能把你的 push service 唤起,从我们的测试数据上看,针对某些机型效果还是可以的,另外一些机型就没什么卵用... 基本上这几家都有唤醒的机制。 另外再说下集成小米、华为的第三方 push ,比如阿里: 我觉得小米的通道都是免费的,你如果有开发资源,自己请求 api 就好了,不需要把钱给另一个第三方。 不是广告,也没利益相关。 |
39
9hills 2016-11-07 16:31:13 +08:00
记得 v2 上不是一直都是怒斥 app 链式唤醒、后台杀不掉等行为么。。。
|
40
v2tony 2016-11-07 16:32:17 +08:00
极光
|
41
linffang OP @pubby 道理明白是明白,集成厂家+用一个第三方。现在想解决的是集成厂商麻烦的问题,国内的第三方都叫你自己来做,那要他们何用?
|
42
linffang OP @9hills 这真的是个很矛盾的问题,我个人也很谴责这种做法,保活 SDK 要牺牲待机时间。特别是留像素点这类我认为简直是无耻。但是安卓又不像苹果, GCM 不能用。那要做推送只能各种手段了
|
44
linffang OP @honeycomb 所以我现在寄希望于第三方服务,自己不搞了(想搞也搞不了)。刚刚开始试用一键集成厂商通道的服务商
|
45
rogwan 2016-11-07 17:19:22 +08:00
安卓需要“公约”禁止非用户主动请求的唤醒,否则全家桶一日不除,推送和反推送之间永无宁日。大公司拼互捅能力(话说手淘真的杀不死啊),拼 ROM 装机;小公司拼无底线;用户拼智商,没其他招了。
|
46
omi4399 2016-11-07 17:36:49 +08:00
推荐 leancloud ,混合推送很方便,到达率也不错
|
47
yunbaIO 2016-11-07 17:54:47 +08:00
@linffang 真的不是打广告哈,如果你对「当下安卓厂商清理后台进程的环境下,推送应该怎样做」这个话题感兴趣,可以看看明晚八点半我们 CEO 张虎 的直播,这期的主题刚好就是讲推送。
|
48
wxl1380610 2016-11-07 17:56:57 +08:00
android 推送这无解, 我们也只是高了 GOOGLE + 自己的
|
49
Light3 2016-11-07 18:58:54 +08:00
我不太懂阿 我是个做网站的 不过我司用的阿里云旺 你可以看下..
|
51
linffang OP @wxl1380610 是自己搭建推送平台吗?网上有没有发些经验或博客可以参考?
|
52
linffang OP @yunbaIO 你成功吸引了我的注意,我刚刚就在集成试用你们的推送,不用自己注册开发账号感觉还不错。继续用的过程中好的话帮你在帖子做个广告又何妨
|
54
xiaoyao9933 2016-11-07 21:20:34 +08:00
太可怕了。。。还事 iphone 好。。
|
55
sherlocktheplant 2016-11-07 21:35:09 +08:00 1
@linffang 其实推送这个需求是个哲学问题不是技术问题 希望通过技术手段侵犯用户对手机的控制权本来就是不对的 并且即便是做到了强制保活 获得的那一部分额外用户本来就是因为反感推送才会禁止你推送或者杀掉你的进程 这部分用户即便是你经过千辛万苦最后送达了推送 招来的只有怨恨或者直接卸载 也没有达到你们推送消息的初衷 不讲道德单从商业利益上来说 这样的推送也是有害的
想要吸引用户 完善用户体验、提高内容质量 给用户更多干货内容 用户活跃度自然也会提高 推送这样的手段只能在不违反用户意愿的前提下作为辅助运营的手段 过于依赖推送只会导致揠苗助长、饮鸠止渴一样的自食其果 我记得张小龙说过这么一个观点 具体措辞记不清楚了 但是大概意思是 一个好的软件 不应该是想方设法的占用用户时间 而是想方设法的为用户达到目的 并且与此同时节约时间 我是非常认同的 不知道你们产品能不能理解 如果确实水平有限 理解不了 那就算了 |
56
lfk0000 2016-11-07 22:05:28 +08:00 1
我们公司在运营着几个 app ,提供关于社交,直播,资讯这类功能,对推送的需求量很大。。。。。。推送不是你们公司的需求,是用户的需求。。。
核心问题应该是增大客户对你们的推送需求量,而不是想着怎么强奸用户。。。。 如果客户有需求,把你们的 app 手动加白名单就不会被杀进程了 一个普通用户的想法,供参考 |
57
zhgg0 2016-11-07 22:25:28 +08:00
无解,只有小米手机用小米推送,华为手机用华为推送,其它手机随便选个或者其它手机也用小米推送。
这种东西很好解释,我是这么跟领导说的: “安卓推送需要后台保持长连接,假设有方法做到不挂,那所有 app 都会用上这个方法,然后 Android 手机就卡得没法用了,站在厂商角度必须杀死垃圾后台。如果哪家手机敢不把微信加白名单,用户就觉得手机有问题,可能就不买了,微信已经绑架了手机厂商。 iOS 不存在真后台,是系统长连接,安卓本来也有系统长连接但中国有墙,并且中国的手机厂商因为利益关系把它干掉了。” |
58
eimsteim 2016-11-07 22:34:25 +08:00
上面有几位,主要从产品角度来谈这个技术问题,甚至上升到哲学的高度,但是对于我们程序员来说,这就是个单纯的技术问题。
如果从产品的角度来讲,我觉得有两点值得关注: 1 、有几个普通用户知道怎样手动加白名单? 2 、是否所有的厂商,对设置白名单的入口和路径都一致? 我就不明白了,在 iPhone 上非常简单的一个事情,到了 Android 这边怎么就成了一个哲学问题。这让我想起了古人说过的一句话: 北海有鱼,其名为鲲,鲲之大……一锅炖不下。 |
59
wubotao 2016-11-07 23:01:09 +08:00
公司的几个 APP 用的是个推。
|
60
monnand 2016-11-08 02:18:11 +08:00 via Android 1
好好的 GCM 不让用,到头来折腾出来一堆魑魅魍魉。国内安卓生态圈伴随着谷歌被封,基本属于没人愿意搭理的地方了
|
61
nullizer 2016-11-08 02:36:17 +08:00
为什么都觉得 GCM 不能用,其实在中国也可以用啊,感觉没被墙。
|
62
monnand 2016-11-08 03:53:46 +08:00 via Android
@nullizer 真的吗?我没有在国内试过。我了解到的是: Google 服务在国内被墙得很不稳定,导致推送也不好使。我没亲自尝试过。主要是不想蹚国内这滩浑水
|
63
PEP4JASON 2016-11-08 08:39:02 +08:00
做不出来 外包就行了
|
64
Felldeadbird 2016-11-08 09:05:37 +08:00
想着办法让客户去接受这种消息轰炸,太可怕了!!
|
65
luili 2016-11-08 09:22:49 +08:00
我们用的极光,也有朋友说他们公司 iOS 用的极光,反正最终都走 APNs ,然后 Android 根据厂商不同用不同的推送服务,比如小米的就小米推送。。。
|
66
murmur 2016-11-08 09:25:31 +08:00
@zhgg0 微信的推送也被我 ban 了 蛤蛤 这东西我就拿来抢红包用 最多查个公交车(日 tm 的高德的广州数据不全,经常只有单行位置)
|
67
wxl1380610 2016-11-08 09:25:41 +08:00
@nullizer gcm 能用 ,但是要 google 框架和 google 市场 , 这些被干掉了。
|
68
robertzhouxh 2016-11-08 09:33:12 +08:00
我们就是自己搞得推送平台, 如果公司人力资源充沛, 抽两个人研究下 erlang 语言, 基于 mqtt , 目前 github 上排名靠前的 mqtt broker , 选择一个, 二次开发就可以了,两个月应该差不多了
|
69
linffang OP @sherlocktheplant 你说用户体验那部分说得很对,但我觉得推送其实既是产品的需求也是用户需求。推送的初衷就是唤起用户,增加活跃度不是吗?就如每天设定的闹钟,不是没需求而是需要辅助一些方式提醒自己,用户亦然。何况,我只不过是搞技术的,不需要弄到哲学层面吧。。
|
70
ipconfiger 2016-11-08 10:34:15 +08:00
楼举发帖发牢骚这会儿, 随便选那个 push 服务都早集成完毕了
|
71
linffang OP @ipconfiger 昨晚已经集成完毕了,正在测试中。因为这个帖子挺有意义的,算是一次安卓推送方式和第三方服务选择大讨论吧,所以还想多听听大家的意见和想法。
|
73
magicdawn 2016-11-08 11:10:53 +08:00
> 如果哪家手机敢不把微信加白名单,用户就觉得手机有问题,可能就不买了,微信已经绑架了手机厂商。
漂亮... |
74
TangMonk 2016-11-08 11:11:22 +08:00
leancloud
|
75
tianshiyeben 2016-11-08 11:35:49 +08:00
杀不死的应用,我就直接卸载了,忽忽
|
77
honeycomb 2016-11-08 12:02:41 +08:00 via Android
还是用 gcm 吧
|
78
yunbaIO 2016-11-08 12:44:07 +08:00
@TangMonk
Android 5.0 及以上平台应用进入后台会被杀死,导致出现用户收不到 App 消息推送的问题。 为此,云巴 Android SDK 开始支持小米、华为推送,通过在这两类机型上的小米、华为推送进程来拉起云巴进程,从而实现杀掉 app 也收到推送的效果。 并非传统的进程守护或者相互拉起的技术手段,而是利用官方通道实行推送。在以后,云巴会继续集成更多的官方通道,比如 VIVO 、 OPPO 等。 同时,云巴集成的第三方推送为一键集成推送,并非混合第三方推送的做法,即,只需要使用云巴一家的服务,就无需再注册其它开发账号,就能集成华为、小米推送。 |
79
linffang OP @omi4399 之前有朋友也推荐 leancloud 混合推送,因为它要自己注册和创建两个厂家通道,注册审核等了半天所以还没试用。你们试用过吗,到达率如何,有数据可以分享下吗
|
80
sevenfxx 2016-11-08 12:53:21 +08:00
最反感搞强行推送绑架用户的 APP ,除了即时通讯类,其余基本没有实时推送的必要。凡是要这么搞的 APP 我全部卸载,大不了不用,只装在 Googleplay 有下载并带有 GCM 的。 GCM 在国内其实是可用的。
|
81
omi4399 2016-11-08 12:56:15 +08:00
@linffang 混合推送除了一开始要审核(如果一开始 APP 就上架这两个市场的话,不需要审核),效果还是很好的,小米和华为的到达率远远高于其他平台,基本只要不关闭推送,都能保证到达,而且小米和华为渠道推送时会有角标提醒。
|
82
xuhaoyangx 2016-11-08 12:59:19 +08:00
曾经看过一个 app 里面带有 4 种推送-.-,根据机型启用不同推送,巨大恶心
|
84
linffang OP @xuhaoyangx 恶心吗,我觉得这样也方便啊,比起不同厂家推到哪个算哪个好多了吧
|
85
timestamp 2016-11-08 13:21:28 +08:00
这广告给云吧打的我给 99 分,少 1 分怕你太骄傲。说句公道话,如果各大推送系统都没解决的问题,云吧就给解决了? 我不信他比小米都做得好。我做的推送系统是自己搭建服务器,完全不用第三方的推送系统。 mqtt 开源的也有 emqtt 、 vernemq 啊,其他语言的有 hivemq ,不过是收费的。
|
86
linffang OP @timestamp 我们也试过自己搭建推送系统,苦于没有经验,协议选择和服务端架构这些问题一直犹豫不决。能分享下搭建推送平台经验吗,还有一点就是进程保活问题现在如何解决合适呢,推送效果,到达率如何?网上对这部分的经验分享太少了
|
87
sobigfish 2016-11-08 14:00:21 +08:00
|
88
yunbaIO 2016-11-08 19:07:15 +08:00
@sobigfish 在 appkey 不暴露情况下是基本安全的。如果对安全有更高需求,可以考虑使用 https ,我们对付费用户支持 https
|
89
mingyun 2016-11-08 22:17:12 +08:00
同一楼 jpush
|
90
woyaojizhu8 2016-11-09 10:26:17 +08:00
@eimsteim 手动加白名单远比 root , xposed 等简单,还是有很多小白都会的。你看看有多少人会“一键清理”,既然他会一键清理,自然也知道需要保持后台的应用要加到白名单里。如果确实这个应用有很多用户不会,那应该考虑教会他们,而非使用各种技术手段强行推送,侵犯用户选择权。
|
91
dcy 2016-11-09 11:09:29 +08:00 1
我最近也在做 IM 和推送类似的事情,经过一圈调研,最后确定下如下方案 https://github.com/dcy/epush :
1.app 还在的情况下,走自己的长链接,用的 MQTT 2.接入各个厂商系统级的推送,只有系统级的才能保证送达,不被干掉 3.app 被操作系统干掉的时候,走各自厂商的官方推送,苹果走 APNS ,小米走小米推送,华为走华为推送,魅族走 Flyme 这样下来,至少送达率什么的好很多。 接下来再说说厂商推送的坑: 小米:透传的方式只能 app 打开才能用,所以说明你只能用通知栏 华为:手机重启要么开启一次 app ,要么设置开机子启动,不然收不到推送(据说后续会解决) 如果有什么其他的观点,欢迎交流 |
92
lovelyelfpop 2017-02-23 14:01:05 +08:00
@woyaojizhu8 一键清理是装了各种优化类应用比如 360 、腾讯之类的,自动放在桌面上的。用户点一下发现清理了多少 MB ,感觉很好。白名单那么复杂,除了程序猿谁会弄。
我甚至遇到过菜鸟用户遇见权限请求的对话框都是点拒绝的(想用功能却不给权限,不要说安全意识高,就是不懂而已) |
93
claudia599 2019-04-22 10:14:40 +08:00
推荐使用 mobpush 我个人用过是蛮好用的,不仅提供完善的 SDK API 供开发者 APP 调用,而且提供完全遵循 Rest 规范的 HTTP 接口,http://wiki.mob.com/mobpush-rest-api-%E6%8E%A5%E5%8F%A3%E6%96%87%E6%A1%A3/这个是接口文档可以看下
|