虽然安卓类原生系统纯净简洁快速,但是 PUSH 推送服务是个问题,也就是消息推送,你必须把应用一直挂在后台,但是这样会占用大量运存和缩短续航。
众所周知的原因谷歌 FCM 推送服务无法使用,而其它手机厂商也基本都有自家的推送服务,并且大多数主流的应用也都有接入推送支持。那么问题来了,安卓类原生系统如何解决推送服务问题?
第三方MiPush
小米 MiPush 消息推送服务国内主流应用基本都支持了,但是小米官方是没有单独提供 MiPush 服务应用。
不过有开发者制作了第三方应用 「MiPushFramework」可以实现在非小米手机上实现系统级消息推送。
使用「MiPushFramework」需要先刷入 Magisk 或者 Lsposed 框架,然后下载MiPushFramework、MiPushEnhancement、以及更改机型模块。以下的教程来源酷安大佬 @Fengkao。
下载地址
- MiPushFramework:
https://github.com/MiPushFramework/MiPushFramework/releases/tag/0.3.6.20181227.9284e39 - MiPushEnhancement:
https://github.com/MiPushFramework/MiPushEnhancement/releases/tag/1.2 - 修改机型:
https://www.123pan.com/s/c8zA-PpLN3 - 源文地址:
https://www.coolapk.com/feed/37860113
1.安装 manager.apk 和 xmsf_service.apk 后打开桌面新出现的"小米推送服务",根据提示取消电池优化和打开状态权限,然后打开设置里面的全局伪装为小米设备选项。
2.安装 MiPushEnhancement 后打开 Lsposed,勾选你想用 MiPush 推送的应用,例如:QQ。需要注意的是,应用必须接入 MiPush 支持了。
3.然后安装修改机型模块,将机型修改为任意小米机型,重启手机。以上操作完成后,打开 QQ,不出意外的话会出现 "已允许QQ注册小米推送" 通知,打开 "小米推送服务" 后 QQ 的注册状态会变为 "已注册"。
4.如果 "小米推送框架"内还是显示为"未生效"?解决方法:切换一次工作模式并随便选取一个应用后重新启动该软件即可生效。
如果 QQ 显示 或者其它应用 “注册异常” ?解决方法:尝试清除应用数据后重新登录即可。
华为PUSH
除了小米 MiPush 消息推送还可以选择华为的 PUSH 推送服务,同样常用的应用基本都接入支持了。
至于小米和华为两个服务哪个好用,根据网友的测试「HMSPush」效果更好些,毕竟华为有提供 HMS Core 下载,而第三方的「MiPushFramework」是三年前的应用,至今作者也没更新了。
使用「HMSPush」同样需要先刷入 Magisk 或者 Lsposed 框架,然后安装 HMS Core 应用。以下的教程来源酷安大佬 @CrossCompile。
下载地址
- HMS Core:
https://appgallery.huawei.com/app/C10132067 - HMSPush:
https://github.com/fei-ke/HMSPush/releases/latest - 源文地址:
https://www.coolapk.com/feed/40970918
1.安装 HMS Core 并保证 HMS Core 在后台运行,最好将其转化成系统应用。
2.在 LSPosed 中启用「HMSPush」模块,并勾选系统框、HMS Core 作用域,然后重启设备
3、LSPosed 里 「HMSPush」模块里勾选你需要支持推送的目标应用(这一步目的是将应用环境伪装成华为设备),然后重启一到两次目标应用使其注册上推送通道。
4.杀掉应用测试推送是否生效(可以使用QQ测试)。
5.使用 Thanox 精简 HMS Core 实现最小的后台占用,仅70M!!!一定要精简,不然要设置以及部分银行app要闪退。
打开 Thanox 找到 HMS Core 进程,然后根据如下图:
下滑到最下面的管理位置(活动管理、广播接收器管理、服务管理、内容提供者管理)。
这里以活动管理为例:
先点“全不”把所有的服务都禁用,然后点搜索,搜索下面给出的服务,将我们需要的服务打开。
活动管理仅开启
- JumpActivity (注册)
- PushEarthquakeActivity (点击拉起应用)
- TileLongClickJumperActivity (消息弹出)
广播接收器仅开启两项
- OobeOnBootBroadcastReceiver
- HMSOnBootBroadcastReceiver
服务管理仅开启
- HMSCoreService (核心服务)
- HMSInnerService (保证推送稳定)
- OpenDeviceIdentifierBindService (推送自启)
- OobeService (推送自启)
- HMSStubKitUpdateJobService
内容提供者仅开启
- HMSFrameworkProvider
- KitProcessAgentCoreProvider
- ModuleQueryProvider
- HmsSettingSearchProvider
- UpdateSettingProvider
总结
安卓手机费电的原因之一就是没有 PUSH 推送,必须把应用常驻后台,现在通过小米/华为 PUSH 推送服务,可以实现大多数国产应用的消息推送,如果你正在用类原生系统,或者不满意现在手机自带的推送服务,也可以折腾试试看效果。