漫谈国内外Android生态:华为发布的 HMS 服务,对 Mate30 系列无法搭载 Google GMS 的补偿有多大(原创)
如果既用过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 的补偿有多大(原创)的更多相关文章
- Android跳转到应用商店的APP详情页面,以及 Google GMS 各个apk的包
转自:http://www.jianshu.com/p/a4a806567368 需求: 从App内部点击按钮或链接,跳转到应用商店的某个APP的详情页面.让用户 下载 或 评论. 实现: /** * ...
- 华为在HDC2021发布全新HMS Core 6 宣布跨OS能力开放
[2021年10月22日·东莞]华为开发者大会 2021(Together)于今天正式开幕,华为在主题演讲中正式发布全新的HMS Core 6,向全球开发者开放7大领域的69个Kit和21,738个A ...
- Android开发华为手机无法看log日志解决方法
Android开发华为手机无法看log日志解决方法 上班的时候,由于开发工具由Eclipse改成Android Studio后,原本的华为手机突然无法查看崩溃日志了,大家都知道,若是无法查看日志要它毛 ...
- Android 生态消息推送平台介绍
一.手机厂商平台 华为消息推送服务 华为推送(Push)是为开发者提供的消息推送平台,建立了从云端到手机端的消息推送通道,使应用可以将最新信息及时通知用户,从而构筑良好的用户关系,提升用户的感知和活跃 ...
- 2019 年容器生态统计报告发布 | 云原生生态周报 Vol. 26
作者 | 酒祝.天元.元毅.心水.衷源 业界要闻 1.2019 年容器生态统计报告发布 据报告显示,Kubernetes 占据 77% 的容器编排产品份额,Docker 占据 79% 的容器引擎产品 ...
- xUtils 1.8.4 (Android工具库) 发布 - http模块优化
感谢关注xUitls的网友最近一段时间给予的热心反馈,xUtils近期做了很多细节优化,同时修复和优化了大家反馈的一些问题.重要的变化有http请求返回更全面的结果信息:下载设置断点续下时,如果服务器 ...
- 使用Netty3或Netty4发布Http协议服务
现在是2018年1月11日18:12分,已经是下班时间了,小Alan今天给大家简单的介绍一下Netty,让大家以后在使用到Netty的时候能够有一定的了解和基础,这样深入学习Netty以及以后灵活应用 ...
- 自定义及发布一个webservice服务
自定义及发布一个webservice服务 - 声明 某个业务服务为webservice服务 通过@webservice 注解来声明 - 发布webservice服务 ...
- 华为云测平台服务再升级!华为M5系列平板调测能力正式上线!
6月1日,华为M5系列平板设备兼容性测试和远程真机调试功能在华为终端开放实验室正式上线!助力您的产品在大屏适配上快人一步! 华为终端开放实验室DevEco平台现已提供基于华为M5系列平板设备的兼 ...
随机推荐
- 多对多的三种创建方式-forms相关组件-钩子函数-cookie与session
多对多的三种创建方式 1.全自动(推荐使用的**) 优势:第三张可以任意的扩展字段 缺点:ORM查询不方便,如果后续字段增加更改时不便添加修改 manyToManyField创建的第三张表属于虚拟的, ...
- 900A. Find Extra One#寻找与众不同的它(计数)
题目出处:http://codeforces.com/problemset/problem/900/A 题目大意:问删除一个点后,剩下的点能不能都在Y轴的同一边 #include<iostrea ...
- 限制客户端同账号同IP多终端登录
打开SoftEther VPN Server Manager工具,连接上节点 1.管理虚拟HUB--管理用户--双击用户--安全策略--最大多重登录数设置为1 2.管理虚拟HUB--虚拟HUB属性-- ...
- CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/main/win-64/repodata.json.bz2> Elapsed: -
将C:\Users\<本机用户名>\.condarc文件修改为 channels: - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/ ...
- GlobalExceptionHandler @ControllerAdvice
package org.linlinjava.litemall.core.config; import org.apache.commons.logging.Log; import org.apach ...
- Java面试题4-附答案
BIO.NIO和AIO的区别 Java BIO : 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程 ...
- Golang os/exec 实现
os/exec 实现了golang调用shell或者其他OS中已存在的命令的方法. 本文主要是阅读内部实现后的一些总结. 如果要运行ls -rlt,代码如下: package main import ...
- jenkins-自定义工作空间目录
- 系统学习javaweb重点难点1--如何区分<input/>框里的三种常用属性:type属性 name属性 和 value属性
感想:这是我系统学习javaweb的时候感觉这个是一个初学者十分容易搞混的点 学习笔记: 首先,是type属性. 表单输入项标签之一,用户可以在该标签上通过填写和选择进行数据输入. type属性设置该 ...
- Archives: 2018/11
There are 35 posts in total till now. 11月 11, 2018 HTTP 11月 11, 2018 TCP与UDP 11月 10, 2018 Python测试 1 ...