如果既用过iPhone,也用过国际版Android,还用过国内的安卓,(并且这三种都用了半年以上),就能体会到GMS多重要。可以说,iOS的体验大幅度领先于国内的安卓,一多半的原因是国内安卓没有GMS和Google Play。

更不用说,Google的全系列如Google Play, Google Maps, Youtube等,都要依赖GMS。

我上份工作:全国排名前十的互联网公司,Android架构师,负责本部门国内和海外的两条Android产品线。

作为国内和国际业务都做的开发者,我可以明确的说:在Android/安卓应用市场中,Google Play是审核最严格的,远超其余公司。多数人(尤其是国外)对其的信任也远超其余公司。

个人看法,在国际市场上HMS对GMS几乎没什么补偿作用;而在国内市场压根没有GMS,也不需要什么补偿。

从发布研发鸿蒙的新闻能看出,华为想走的是类似苹果的路,硬件软件生态都全部自己掌控。这条路难度非常大,不过万一成功了收益也非常大。

- - - -

前面说iOS领先,很大程度上是因为因为统一推送。所以iOS的任何App都不需要保持后台运行状态,退出就真退出了,不占用内存也不耗电;并且即使不后台运行,也能立刻收到推送消息。

而国外的Android也是如此(使用基于GMS的FCM),所以App没有任何保持后台运行的需要。不是因为国外公司多善良,而是因为Google规定必须内置GMS和Google全家桶才能说生产的手机是 “Android”,所以国外所有的Android手机都有GMS,开发者直接调用就行。

但是国内由于没有统一推送机制(后面有对国内“统一推送联盟”的评价),所以每个App都想方设法的后台运行,消耗了大量的内存和电量。因为如果不这样,就无法收到推送。

-- -- --

Android手机,在后台杀掉App后,仍然能收到推送的三个条件:

系统支持:正规的原生Android系统,含有全系列Google套件的。这类手机,只在中国以外的地区发售;或者说,中国以外的其他地区发售的Android手机都是此类,无论什么品牌。
可靠的网络连接:人在国外,或者人在国内搭梯子。
App支持:比如Gmail, Facebook, CNN, NYTimes, 这些接入了FCM的App。国内的App即使在Google Play发布,也不一定接入FCM,这样关闭后台仍然收不到通知。
测试过十台以上直接从国外购买的手机(三星,小米,华为,VIVO),都是如此。

-- -- --

本文原创 csdn 论坛 dracula9

如果用了 原生系统+可靠网络+FCM 也收不到消息的:

首先,你不能确定你使用的App是否集成了FCM,更不能确定此App的开发者正确集成了FCM。开发的时候,FCM工作量比国内的推送(极光等)要大很多,难度也要大一些。

其次,这是Google官方对FCM的介绍 https://firebase.google.com/docs/cloud-messaging/

如果没有梯子,这里有微软的说明,可以凑合看 Remote Notifications with Firebase Cloud Messaging - Xamarin

提到了"the app will automatically receive FCM messages and display them as notifications whenever the app is backgrounded"

如果这样都不能在不打开App的情况下收到消息,只能说是这个App的推送没打开,或者此App的开发者水平有问题。

-- -- --

对于国内各家Push的说明

小米有MiPush,华为有HMS,OPPO有OPush,Vivo也有自己的推送。此外还有友盟Push等。这些Push,如果App都接入,什么都不干呢,App已经快10M了;并且拼命自启动,耗电量感人。如果只接入一家,用户从腾讯的应用宝下载,是赌用户的手机是小米呢,还是赌用户的手机是华为?

-- -- --

统一推送联盟

目前主流的手机都支持了,但是,App进行适配的还不多。即使适配了,App也要保证旧手机的用户能收到,所以旧的耗电推送也不能砍掉。

漫谈国内外Android生态:华为发布的 HMS 服务,对 Mate30 系列无法搭载 Google GMS 的补偿有多大(原创)的更多相关文章

  1. Android跳转到应用商店的APP详情页面,以及 Google GMS 各个apk的包

    转自:http://www.jianshu.com/p/a4a806567368 需求: 从App内部点击按钮或链接,跳转到应用商店的某个APP的详情页面.让用户 下载 或 评论. 实现: /** * ...

  2. 华为在HDC2021发布全新HMS Core 6 宣布跨OS能力开放

    [2021年10月22日·东莞]华为开发者大会 2021(Together)于今天正式开幕,华为在主题演讲中正式发布全新的HMS Core 6,向全球开发者开放7大领域的69个Kit和21,738个A ...

  3. Android开发华为手机无法看log日志解决方法

    Android开发华为手机无法看log日志解决方法 上班的时候,由于开发工具由Eclipse改成Android Studio后,原本的华为手机突然无法查看崩溃日志了,大家都知道,若是无法查看日志要它毛 ...

  4. Android 生态消息推送平台介绍

    一.手机厂商平台 华为消息推送服务 华为推送(Push)是为开发者提供的消息推送平台,建立了从云端到手机端的消息推送通道,使应用可以将最新信息及时通知用户,从而构筑良好的用户关系,提升用户的感知和活跃 ...

  5. 2019 年容器生态统计报告发布 | 云原生生态周报 Vol. 26

    作者 | 酒祝.天元.元毅.心水.衷源 业界要闻 1.2019 年容器生态统计报告发布  据报告显示,Kubernetes 占据 77% 的容器编排产品份额,Docker 占据 79% 的容器引擎产品 ...

  6. xUtils 1.8.4 (Android工具库) 发布 - http模块优化

    感谢关注xUitls的网友最近一段时间给予的热心反馈,xUtils近期做了很多细节优化,同时修复和优化了大家反馈的一些问题.重要的变化有http请求返回更全面的结果信息:下载设置断点续下时,如果服务器 ...

  7. 使用Netty3或Netty4发布Http协议服务

    现在是2018年1月11日18:12分,已经是下班时间了,小Alan今天给大家简单的介绍一下Netty,让大家以后在使用到Netty的时候能够有一定的了解和基础,这样深入学习Netty以及以后灵活应用 ...

  8. 自定义及发布一个webservice服务

    自定义及发布一个webservice服务    - 声明 某个业务服务为webservice服务       通过@webservice 注解来声明    - 发布webservice服务       ...

  9. 华为云测平台服务再升级!华为M5系列平板调测能力正式上线!

    ​​​6月1日,华为M5系列平板设备兼容性测试和远程真机调试功能在华为终端开放实验室正式上线!助力您的产品在大屏适配上快人一步! 华为终端开放实验室DevEco平台现已提供基于华为M5系列平板设备的兼 ...

随机推荐

  1. ansible批量部署(一)

    自动化运维工具shell脚本/Ansible(无客户端)/Saltstack(master-minion) 回顾服务器部署的流程:买云主机->环境部署->软件部署->配置部署-> ...

  2. Android之布局Application类

    转载:https://blog.csdn.net/pi9nc/article/details/11200969 一 Application源码描述 * Base class for maintaini ...

  3. 与http协作的web服务器

    1.虚拟主机 一台web服务器可以搭建多个独立域名的web网站,也可以作为通信线路上的中转服务器提升传输效率.比如web托管服务供应商可以用一台服务器为多个不同域名的客户提供服务,这是利用了虚拟主机( ...

  4. python学习笔记(26)-request模块

    python学习笔记 #requests import requests #from class_005.http_resuest import HttpRequest login_url = &qu ...

  5. HTMLTestRunner 报告框架使用

    HTMLTestRunner 报告框架使用 file_path = base_path + '/Report/report.html' with open(file_path, 'wb') as f: ...

  6. 基于Wiki的知识共享平台模型架构

    一.引言 当今的全球化知识经济社会中呈现出信息泛滥和知识更新周期短的现象,知识管理逐渐成为现代企业管理中不容忽视的一环.虚拟企业是基于共识目标而组成的动态协作组织,成员参与的流动性与各成员之间地域分布 ...

  7. 十九、linux--RAID详解

    一.什么是RADI Raid是廉价冗余磁盘阵列,简称磁盘阵列. 运维人员就叫RAID.Raid是一种把多块独立的磁盘(物理磁盘)按不同方式组合起来形成一个磁盘组,在逻辑上看起来就是一个大的磁盘,从而提 ...

  8. day17-反射

    #反射最常用的两个方法:hasattr getattr # 1. 反射对象属性,反射对象方法: class Goods: def __init__(self,name): self.name = na ...

  9. sqlserver命令创建数据库和表 demo

    由于sqlserver用起来很不爽 可以尝试用vscode+sqlserver插件玩玩 友情提示 在vscode中新建一个.sql 并配置好与sqlserver的连接 利用sql会有提示创建表 数据库 ...

  10. 前端-bootstrap-长期维护

     ###############    bootstrap简介     ################ Bootstrap是Twitter开源的基于HTML.CSS.JavaScript的前端框架. ...