前言
我可以得到什么?
一部更加流畅,推送接收更加高效准确,并且续航大增的手机(也许)
如果你不想看冗长且繁杂的技术细节,并且想单刀直入地改造你的推送,请戳这里
技术原理
推送技术 ,或者说是是一种基于Internet 通信方式的服务器推送,其中要求通信的请求是由发布者或中央服务器发起。与pull/get形成对比,额外消息传输的相应一般由接收者或客户端发起。
推送服务通常是基于提前的消息预设置上。也就是所谓的Publish/Subscribe 模型。客户通过订阅由服务器提供各种消息的频道,不论何时都可以在其中一个频道得到新的内容,同样服务器通过推送把消息传递给相应的客户端。
* 本文大部分材料摘自Wikipedia.org 、CSDN博客 和GitHub 并优化和删节,本文提及但不讨论除手机以外的终端,如有侵权请联系im#moedev.net
目前广泛应用的消息推送
不同的操作系统常采用不同的推送机制:
Apple/iOS
Apple于2008年6月9日首次公布这项服务,并在2009年6月17日随iOS 3.0推出了Apple推送通知服务( A pple P ush N otification S ervice ,简称APNs) 。此项服务于iOS的通知中心整合后大幅加强了推送和本地通知的用户体验,并于API的形式添加到Max OS X Lion中。
服务器使用APNs向联网用户推送服务器邮件、日历和联系信息。像是iPhone一类的设备和邮件、日历一类的应用都能收到来自Mac OS X服务器的推送通知。推送通知相较后台进程 (使用拉取技术 )能更好地维持电池寿命。
Google/Android
GCM
Google云端推送 (英语:G oogle C loud M essaging,简称GCM )是一项免费服务,帮助开发者从服务器发送数据到安装了他们的应用程序的Android设备上,或从服务器到其Chrome浏览器应用程序或扩展。GCM第一次亮相是在2012年6月27日在旧金山Moscone中心举行的Google I/O 2012 。Chrome上的推送服务在Google I/O 2013之前发布,官方博客文章题为“用推送消息构建高效的应用程序和扩展”。
Firebase
2018年4月10日Google Cloud Messaging已被弃用,并已从Google API中删除。与此同时,火力基地/Firebase(F irebase C loud M essaging,简称FCM )取代了其位置。
两者区别& 为甚麽GCM没了?
开发者可以从GCM平滑切换到Firebase Firebase的跨平台机能,特殊技能和运行速度远佳于GCM *Google花了很多钱买下Firebase(たぶん)
但是
这两者都无法在中国大陆直接使用,因为G〇W(直球)。于是,中国大陆Android生态中出现MiPush和统一推送联盟。我们这次所介绍的是开源的MiPushFramework
WindowsPhone
RestInPlace
Remember this dude.
MiPushFramework
*此处直接引用官方介绍文档
什么是小米系统级推送,为什么会有这个项目
小米推送是小米公司提供的推送服务,许多 App 都在使用(如酷安)。
它非常轻量,会在 MIUI 设备上自动启用系统推送,而非 MIUI 设备则在后台保持长连接。
系统级推送
类似 GCM,小米推送的系统级推送是在 MIUI 完成的。应用在启动时,会判断如果是 MIUI ROM 则向系统注册推送,推送工作都由系统完成,应用无需后台,更省电。
然而在非 MIUI,每个使用小米推送的应用都会在后台启动一个 XMPushService
, 10个应用就有10个,20个就有20个服务.. 非常耗电耗内存费流量。
本项目的意义
本项目就是想让任何不用MIUI的用户都能用上小米的系统推送,这样既能保证推送,又保证了无需后台。
缺陷
不支持 MIUI。 不建议使用 黑域、绿色守护、Xposed一些模块 对 Push
做操作,可能导致推送不稳定 只有推送功能。其他完整功能(如查找手机)请使用 MIUI
优点
简单,安装非常简单,无需 Root、Xposed、ROM 支持 使用后,其他应用的 XMPushService
会自动禁用,就像在 MIUI XMPushService
禁用后,还能保证推送更多设置项,可以针对每一款应用设置不同的推送权限 完整事件记录,可以监控每个应用的 注册和推送 可以在应用程序注册推送时选择是否允许 拦截小米推送产生的不必要唤醒,也能阻止它读取您的隐私
使用MiPushFramework
在Release页面 下载最新版本,并安装。初始化程序后,打开支持MiPush的App,将会进行自动注册。
[pic]
对于有些App,需要伪装机型为小米,这需要Xposed或者Magisk的支持。
[pic]
注册成功后就可以把这些App丢进Island/Icebox/Brevent
[pic]
使用MiPushFramework的推送将会有Push标注
[pic]
各项推送服务对比
Comments | NOTHING