1
honeycomb 2016-10-21 13:12:22 +08:00 via Android 3
1 ,是 /这是几年以前的新闻。
2 ,是,本就是他们故意这么做的 3 ,肯定有进程保活,但无通过推送 SDK 关联启动,因为不需要 /不是。 因为有 gapps 自带的 gcm (最初叫 c2dm ,目前叫 fcm ),所以不需要额外的推送服务。 何况连 Google 都知道在 Android 上部署了 doze/app standby 来限制应用后台运行。 进一步地,它还加入了一个 RUN_IN_BACKGROUND 的 op ,这个 op 被限制住的时候,应用便只能调用 foreground service 与 bound service ,除此以外的后台运行都被阻止 |
2
iMono 2016-10-21 13:15:29 +08:00
怎么截得长图
|
3
Jaylee 2016-10-21 13:15:41 +08:00
应该是用了同一家的推送吧。。
|
4
firefffffffffly 2016-10-21 13:26:25 +08:00
我知道的有些 sdk 都附赠全家桶启动功能,比如*度地图,推送 sdk 估计更是重灾区,很多开发者在不知情情况下,就背了连锁启动的黑锅。
|
5
queuey 2016-10-21 13:34:22 +08:00
@firefffffffffly 你说的应该是链式唤醒吧,但是他们这个明显八竿子打不着的公司都能互相启动了?
|
6
st2udio 2016-10-21 13:35:41 +08:00
国内没有统一的推送,无奈
|
7
beimenjun 2016-10-21 13:41:40 +08:00 1
这个互相唤醒应该是用了同一家推送 SDK 导致的,安卓墙内一些推送服务就是依赖互相唤醒对方,来保证常驻后台接收相关推送。
|
8
ovear 2016-10-21 13:44:15 +08:00
很可能是推送 SDK 的锅。。
|
9
vivagonna 2016-10-21 13:48:36 +08:00 via Android
这个就算用后台管理程序限制了也只能是唤醒一次杀一次吧?所以唯一的解决方式是不安装?
|
10
loshine1992 2016-10-21 13:54:40 +08:00
杀进程之后接不到推送了,用户说:消息、推送都接不到,辣鸡 App 。
为了保证杀进程之后依然收到推送,国内第三方推送 sdk 基本都弄了一个联合唤醒的机制,只要使用了同一家的 sdk ,启动其中一个 app 的时候就会唤醒其它所有集成了该家 sdk 的 app 的推送进程,以保证所有 app 推送的送达率。 如果有 gcm 就可以所有 app 都使用 gcm 自然不会有这个事情,但墙内的世界,你懂的。 |
11
shizhouren 2016-10-21 14:00:42 +08:00
怎么截得长图 @sammo
|
12
hei1000 2016-10-21 14:00:52 +08:00 3
有些 app 比如新浪微博会使用小米推送(xmpush)的接口,所有使用这个推送的 app 回相互唤醒,但是开发者也可以主动禁止的,比如前一段时间酷安 app 就开始使用 xmpush ,发现问题后很快他们的开发者就禁掉了唤醒其他 app 的“ bug ”了,像这样的良心的很少
|
13
beimenjun 2016-10-21 14:18:56 +08:00
|
15
firefffffffffly 2016-10-21 14:36:11 +08:00
@queuey 都是一样的, 你的 app 如果使用了这些 sdk ,这些 sdk 就会偷偷在你的应用进程里执行唤醒其它应用的操作,结果看起来就像是你的 app 唤醒了其它应用。
|
16
imbahom 2016-10-21 14:38:31 +08:00
应该是三方 SDK 的锅,我感觉其实大部分 android 程序员都不研究这些流氓手段(只是被动使用)
|
17
EricCartman 2016-10-21 14:39:53 +08:00 via Android
国产全冻结,需要的时候打开,或者换 iOS
|
18
Khlieb 2016-10-21 15:22:10 +08:00 via Android
还有换替代品 app
|
19
queuey 2016-10-21 15:30:24 +08:00
@firefffffffffly 所以我换成了极为辣鸡,极为自闭的 iOS 了🌝
|
20
sylecn 2016-10-21 15:42:17 +08:00
通知,推送,广告类型的通知,进程常驻,耗电量
这些真是伤不起啊。目前为止,需要通知的,只能让它常驻,比如微信这种。用的华为手机,一旦设置了不让进程常驻,大部分通知都弹不出来。设置了允许常驻,耗电量就刷刷的上升。 也不知道是 app 优化的不好,还是故意作恶。 |
21
airycanon 2016-10-21 15:45:02 +08:00
Chrome 启动广东移动是什么情况……
|
22
fearme 2016-10-21 15:45:39 +08:00 via iPhone
已经转 ios 爽死了
|
23
benpichu 2016-10-21 16:11:18 +08:00
[我记得使用 umeng sdk 的应用确实会互相唤醒(]
|
25
xuejinwei 2016-10-21 16:21:25 +08:00
没什么打进小怪的,国内 android 环境就这样
|
26
SKull4 2016-10-21 16:32:40 +08:00
这是最蛋疼的么?
最蛋疼的是我用数据线连接了其他人的电脑,结果毫无通知的安装了 4 个 APP 百度的全家桶,腾讯的应用宝,还有其它什么的,真是感觉到被强奸了一样 |
27
firefox12 2016-10-21 16:34:17 +08:00
研究了又杂的? 你用了别人的 sdk 还想不给别人白干活?
|
28
ixufuyang 2016-10-21 16:37:49 +08:00 via iPhone
卧槽,好可怕,这是潜规则么。。。
|
29
Chrisplus 2016-10-21 16:49:23 +08:00
推送的锅,国内没有 gapps 情况下没有办法的办法
就不知道小米推送在小米的设备上会不会表现的好一点。 |
30
cairnechen 2016-10-21 16:52:39 +08:00
没有 GCM 你找不到更好的方式让通知信息及时触达用户
|
31
20015jjw 2016-10-21 16:57:06 +08:00 via Android
接着装啊 国产 app 继续用啊 早晚给你烂光
|
32
20015jjw 2016-10-21 16:59:00 +08:00 via Android
@SKull4 开着 usb debugging 插的吧 不开没事 而且原生安卓接新电脑会提醒问你要权限的
|
33
honeycomb 2016-10-21 17:13:39 +08:00 via Android
|
34
loshine1992 2016-10-21 17:18:47 +08:00
@honeycomb
问题不在是谁的责任,而是因为国内连不上所以只能靠第三方推送,第三方推送为了送达率就选择了联合唤醒 |
35
woyaojizhu8 2016-10-21 17:22:22 +08:00 2
@st2udio
@honeycomb @cairnechen @Chrisplus @sylecn 把什么锅都推到 gcm 无法连接上。。。有几个应用真能推送一些有用的信息啊,这分明就是为了让自己的广告霸占通知栏而无视用户体验和用户对手机所有权的行为。 |
37
depress 2016-10-21 17:45:15 +08:00
我就想知道 Chrome 启动广东移动和 Google Play 服务启动澎湃新闻、什么值得买是什么鬼...
|
38
Drops 2016-10-21 17:50:00 +08:00
总结一下:千错万错,其实最后都是墙的锅
|
39
honeycomb 2016-10-21 18:00:50 +08:00 via Android 1
@woyaojizhu8
是的,首先,试图推送不该推送的内容是原罪 试图在通知栏放广告的,可以自己下架了 然而推送应该推送的内容,还是得走 gcm ,这和 gcm 连不连得上没有很大关系 @Drops 所以好几年前有人说墙是贸易壁垒,是有道理的 |
42
vivagonna 2016-10-21 18:07:58 +08:00 via Android
@woyaojizhu8 gcm 能连上啊,不用翻
|
43
vivagonna 2016-10-21 18:08:54 +08:00 via Android
@loshine1992 可是 gcm 并没被墙
|
44
honeycomb 2016-10-21 18:54:48 +08:00 via Android
|
45
vivagonna 2016-10-21 19:11:25 +08:00 via Android
@honeycomb 这个我倒是没研究过,但是我手机上 WhatsApp 、 Beeper 等 app 不开 VPN 是可以及时收到信息推送的
|
47
yankebupt 2016-10-21 20:06:28 +08:00 via Android 1
@vivagonna 不翻可以接到通知,但必须开一次才能把 app 的通知挂在那上面,而且还指不定哪天挂掉还要重新注册一下,你说怎么办好
|
51
EricCartman 2016-10-21 20:52:14 +08:00 via Android 1
国产皆垃圾,根源就是 gfw
|
52
vvdvdsv 2016-10-21 21:13:11 +08:00
相互唤醒自启动---推送垃圾消息---好讨厌---系统或者第三方软件禁止自启动---咦,我的发货通知怎么没有了?--打开 app 弹了出来---安卓好垃圾---换 iphone
app 总是自启动霸占后台还相互唤醒---卸载---又要用到啊---重新装一遍---用完就卸载---再清理一下垃圾----循环 app 总是自启动霸占后台还相互唤醒---冰箱或者绿色守护---要 root 呢---花了半天终于搞定---要不再装一个 xposed 吧--还可以自定义呢---my android tools 调教一下还可以更加省电哦----赶紧研究一下---哇,换个 ROM 占用内存更小啊---换哪一个好一点呢----循环 |
53
librae 2016-10-21 21:19:36 +08:00 via iPhone
推荐 即刻 定制推送,卸载能卸载的所有垃圾应用。
ps: 并非该团队相关人员,单纯推荐 |
54
VYSE 2016-10-21 21:45:52 +08:00 via Android
绿色守护看看 GOOGLE PLAY SERVICE 的唤醒就知道各家都是各自为战搞自己的一整套生态,所以安卓比苹果重很多,习惯就好,解法 DIY 下还是很多的
|
56
Khlieb 2016-10-21 23:07:51 +08:00 via Android
@EricCartman 不光是 gfw ,还有个特殊的利益集团, gfw 现在看起来是给这个利益集团打伞的
|
57
loshine1992 2016-10-21 23:53:55 +08:00
@vivagonna
你使用中没被墙并不代表全国所有用户都没被墙,哪怕只有少数人群无法使用 gcm ,那对 App 的推送来说也是致命的影响。 |
58
SoloCompany 2016-10-22 01:25:08 +08:00
说的好像没有墙的 instagram 就不会唤醒 facebook 似的,谁又比谁更干净呢
|
59
honeycomb 2016-10-22 01:33:13 +08:00 via Android
@SoloCompany 是的, facebook 系是一个国外应用里不好的典型。
|
61
kx5d62Jn1J9MjoXP 2016-10-22 02:57:48 +08:00 via Android
这些只是推送而已,对某某 app 的唤醒 or 关键启动一般只是启动一个后台同步的 service ,占用资源较少,因为 service 没有用户界面。
iOS 上也是如此,苹果的推送服务一直在后台不停地工作,只是苹果的推送消极一些, app 没有同步 service ,必须要点进 app 才会进行同步操作,代价是 iPhone 的推送总是毛病多一点。 |
62
yankebupt 2016-10-22 13:28:20 +08:00
@Khlieb 嗯...最直接的就是各运营商......gfw 不知道省了多少国际出口带宽......就为了省那些钱估计就会有人宁可被骂政治走狗也想继续做下去...
|
63
xcodebuild 2016-10-22 16:22:54 +08:00
大多是 SDK 关联启动,不过现在国内的 ROM 基本也都有应对方案了,尤其是针对某些根本不需要推送的应用。
|
65
flynaj 2016-10-22 23:37:08 +08:00
这个就是 miui 说的葫芦链, miui 神隐模式可破!
|
68
woyaojizhu8 2017-03-12 14:41:27 +08:00
@honeycomb 真能推送用户需要的内容的话,长驻通知栏不就行了?用户需要你的推送通知,自然不会杀你的进程
|
69
honeycomb 2017-03-12 16:24:25 +08:00
@woyaojizhu8
没有必要常驻通知栏是不可以的,因为这个时候应用处于前台,不受到 doze 等一系列控制功耗设定的限制 |
70
woyaojizhu8 2017-03-12 22:24:58 +08:00
@honeycomb 嗯嗯,所以我认为它如果能推送用户需要的内容的话(极少应用才需要),就有必要常驻通知栏。 GCM 也是我不喜的,应用向我推送内容,凭什么要通过 google 的服务器呢?我的原则是“尽量减少中间人”。
|
71
honeycomb 2017-03-13 00:02:50 +08:00 via Android
@woyaojizhu8
因为它是在一个围墙花园里运行,就要守围墙花园的规矩,这些规矩在事后(指的就是 iOS 的那套推送机制)证明是有利于生态系统的。 就推送的规矩来说,如果每个应用都使用“自己的“服务器,在电量消耗上是不可接受的。因此所有的应用都应该使用相同的推送基础架构。 至于经由(从应用看来的)第三方的 GCM ,如果应用不使用 GCM 的话它几乎也不会选择自有的服务器(除非是微信这样的通信类 app ),而目前的第三方推送商都在做 1 ,前述的电量消耗上不可接受的方法。 2 ,第三方推送服务是导致关联启动的问题的重要原因。 |
72
honeycomb 2017-03-13 00:04:08 +08:00 via Android
@woyaojizhu8
所以这个原则尽管是非常有道理的但通常不可能满足,既然这样(无法自建推送服务),那么就应当使用标准的,大家都在用的推送机制。 |
73
woyaojizhu8 2017-03-13 00:09:58 +08:00
@honeycomb 可能我们看重的不同吧,我不怎么看重功耗
|
74
honeycomb 2017-03-13 09:30:17 +08:00
@woyaojizhu8
这里的功耗指的是和待机时间非常相关的,你不用手机时候的功耗。 就导致一个问题,你再是不看重功耗,这部分的耗电会明显地影响到你。 举个例子: 国内银行在 Android 上的客户端提供的云闪付功能的云闪付卡密钥的推送是通过 Giesecke & Devrient 搭建的平台完成的,这东西的 Android 推送非常耗电,跑一天可以消耗掉 300~500mhA 的电量。 这样还怎么和 Apple Pay 竞争? |
75
woyaojizhu8 2017-03-13 19:36:36 +08:00
@honeycomb 我的使用习惯是,不用时关闭数据连接。我不需要所有的后台推送消息(包括 qq 微信)。而我周边的小白用户,他们有些一直开着数据连接,但所需要的推送也只有 qq 和微信(他们装的应用远不止这些,但是需要推送的就这两个)。当然还有很多应用会推送一些他们不需要的无用信息。
还有一些比较会玩安卓的网友,他们也基本只需要 qq 和微信的推送(有些还会有支付宝),而且他们会用 my android tools 禁用其大部分服务,这样就很省电了。 所以说: 1.大部分人需要推送的应用真的很少; 2.即使是需要推送的应用,维持基本的推送功能所需要的电量也不是很多,耗电主要还是由于应用在后台做一些对用户无益的事。 因此没有必要为了省电而让所有推送通过 google 的服务器。 最好的方法当然还是规范化推送,建立一个本地的统一的推送框架,用户可以手动禁止应用除推送以外的后台服务。因为已经标准化了,所以不用再用 my android tools 这种靠猜测、尝试来禁用服务,也不会误杀。应用在后台只有最基本的推送消息功能,也不怎么耗电。 可以类比于 Imap Idle 协议( http://blog.sina.com.cn/s/blog_5d2184eb0100py1t.html ),本地推送框架就好像一个邮件客户端,应用需要推送功能就好像添加了一个支持 imap idle 的邮箱帐号一样,应用本身后台被禁止,无法再做多余的事。 但是目前不存在这样一个框架,所以还是让需要推送的应用长驻通知栏为好。应用也应约束自己 ,不要开那么多对用户无益的服务。至于你提到的国内银行的云闪付卡密钥的推送,要么是它做了多余的事情,要么是为了更高的安全性需要这么复杂的功能因此需要耗这么多电。如果是为了安全性,那 GCM 也无法替代它吧。 |
76
honeycomb 2017-03-14 09:24:29 +08:00
@woyaojizhu8
“耗电主要还是由于应用在后台做一些对用户无益的事” 所以问题出在应用方,从 Android 6 开始出现的 Doze/App Standby 就是用来解决这件事的 它们的作用大致上是关闭屏幕后应用在某种程度上不能运行后台任务 /联网。 以上措施可以绕过,最简单的办法是把应用想时刻运行 service 的进程变更至前台,并利用漏洞(修复于 7.1)隐藏本应出现的持续通知。 "最好的方法当然还是规范化推送,建立一个本地的统一的推送框架" 已经有 GCM 了。 play 的政策也为必要时绕过 doze 等通过间断休眠达到的自动电量管理提供了许可。因此不需要第三方推送服务。苹果乃至小米的做法也证明了系统唯一推送服务是对所有人都有好处的。 “应用在后台只有最基本的推送消息功能” 这个特性依赖于系统的实现,国产 rom 做的比原生系统好,但是国产的做法是不通用的 |
77
bclerdx 2018-04-05 22:23:02 +08:00
关注中。
|