为何谷歌不学中国厂商所统一推送服务?

316 天前
 NokiaForever
谷歌的 FCM 推送和华为推送、小米推送等不一样,是设备和谷歌 fcm 服务器 mtalk.google.com 维持一个长链接,服务端发消息给设备,设备广播拉起对应应用,然后由应用接收消息,故应用需要有自启动权限,后台不能使用“限制”模式,而是要使用“优化”,使应用进缓存。安卓的 fcm 是需要 app 在后台的没想到吧.完全关闭的情况下是收不到消息的.国产推送是有一个统一的推送服务在后台保活。
谷歌这做法不是让应用能自启动驻留后台,耗费电量吗?苹果、小米这些推送服务是完全不让应用能够自启动(如果需要就手动开启),就防止了应用耗费额外电量。
所以在国际上 Android 不费电不废内存可能是一种误解?
15846 次点击
所在节点    Android
82 条回复
wy315700
316 天前
@ShadowPower
原来如此,,我当时搞了很久,后来加了内存锁就好了,唯独没想到是 AM 自己崩了。。。
ShadowPower
316 天前
@wy315700 当时大概是 19 年还是 20 年那时候的事情了。现在 2024 年了,过去了好久,也不一定是这个原因……
Mystery0
316 天前
应用 force stop 收不到推送是 feature 不是 bug ,然后国内 app 起来之后就占着后台不停了,所以说“耗电”
然后国产 ui 为了省电,划卡=force stop ,所以就不推送了
e3c78a97e0f8
316 天前
看标题我以为是反串,仔细研读楼主的发帖和回复后终于明白楼主的意思了
我觉得楼主说得很对,然而这个问题在国外不严重,所以谷歌多半是不会改的
V28a19cc
316 天前
https://github.com/kooritea/fcmfix

谷歌的实现确实不够优雅,上面这个 fcmfix 模块 ( Xposed 模块)能让无后台应用也能正常接收消息并被拉起,说明要改还是能改的,只是谷歌迟迟没做罢了。
vcn8yjOogEL
316 天前
FCM 拉起后的存活时间是有限制的, 国外 App 优化也普遍更好, 所以没那么严重

这么设计是为了保证功能, Android 很早就支持互动和实时通知, 这些都需要 App 自身处理

不过也确实有改进空间, 例如可以让系统提供几种预设模板, 等到用户实际互动时再拉起 App
Rainson
316 天前
@SenLief ad 推的也挺好。
SenLief
316 天前
@Rainson 现在推送基本上你都可以选择推什么内容的。
whathappen
316 天前
像 IOS 那种什么通知都经过 APPLE 的,是不是 APPLE 也可以知道、收集我什么时候收到了什么 APP 的通知?
SenLief
316 天前
@V28a19cc 应该说是想法不同,谷歌的想法是 app 就应该在后台缓存,以防冷启动加载影响体验,正常 14 上的墓碑会让 app 使用 cpu 为 0 ,也就是占用一些内存,保留一个推送进程,等待 fcm 通知广播后拉起 app 推送通知,实际上这时候主进程还没有启动,要点进去才会启动。

fcmfix 模块主要是让 app 直接死掉,由 fcmfix 接收通知然后拉起 app ,不过这样冷启动更费电。
jaycezhang7890
316 天前
看标题还以为来反串的 2333
codehz
316 天前
@whathappen 确实,但是你可以让通知内容对 apple 保密,只能由应用指定的 extension 来处理,让 apple 服务器只可以知道有这么一个通知的存在,大概有多大,仅此而已
Musong
316 天前
@lns103 fcm 通知都是发给应用,fcmfix 的作用就是允许 fcm 的 app 自启动
Musong
316 天前
楼主说的流程没错啊,楼上都是开发啥的?
Constantping
316 天前
如果該程式沒有被「強制停止」,那麼即使該程式的電池設定爲限制,開發人員選項設定爲不要保留活動、不執行背景處理程式,基本的通知該程式仍然可以收到。
mxalbert1996
316 天前
@ShadowPower 我说过了,你只要试一试就知道了,你开发过 FCM 应用的话这不难吧。
Musong
316 天前
你猜 fcm 经不经过 google
Musong
316 天前
@mxalbert1996 #56 真犟啊哥,https://firebase.google.com/docs/cloud-messaging/concept-options 。前不久刚接完,不管哪种最终都是 app 里的 sdk 处理,前提都是在运行或可被拉起。并且试了下,应用不可被拉起的时候,通知消息在 FCM Diagnostics 里显示拉起失败,啥也不显示
ShadowPower
316 天前
ShadowPower
316 天前

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1005622

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX