漫谈国内外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系列平板设备的兼 ...
随机推荐
- cmake target_link_libraries() 中<PUBLIC|PRIVATE|INTERFACE> 的区别
如果目标的头文件中包含了依赖的头文件(源文件间接包含),那么这里就是PUBLIC 如果目标仅源文件中包含了依赖的头文件,那么这里就是PRIVATE 如果目标的头文件包含依赖,但源文件未包含,那么这里就 ...
- 蓝桥杯练习Day 2
问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少. 输入格式 输入包含一个整数n ...
- UI自动化(selenium+python)之浏览器驱动chromedriver安装和配置
一.安装selenium 前提是已安装Python,python安装 自行百度,这里不概述 安装好python后,cmd打开终端窗口-->pip命令安装 :pip install seleniu ...
- Matlab高级教程_第三篇:Matlab转码C/C++方式(混编)_第一部分
0. 其实Matlab的转码混编大多数就是为了现成的算法函数不用再写了,2就是为了方便提高代码运行速度用C语言去运行. 1. MEX文件: Mex文件是一种可在matlab环境中嗲用C语言(或fort ...
- 吴裕雄--天生自然C语言开发:数组
] = {1000.0, 2.0, 3.4, 7.0, 50.0}; ]; #include <stdio.h> int main () { ]; /* n 是一个包含 10 个整数的数组 ...
- linux上部署jenkins
http://www.pianshen.com/article/1133171043/相关jenkins链接 下载jenkins的war包:https://blog.csdn.net/Aaron_Zh ...
- 火车进出栈 java
题目描述 一列火车n节车厢,依次编号为1,2,3,…,n.每节车厢有两种运动方式,进栈与出栈,问n节车厢出栈的可能排列方式有多少种. 输入 一个数,n(n<=60000) 输出 一个数s表示n节 ...
- Ribbon XML Editor 2019.01.23-Setup.zip(支持64位)
RibbonXMLEditor是一款用于书写和测试customUI XML代码的国产工具,具有XML验证.Office文档压入.回调函数查询等多种功能. 可作为定制Office自定义界面有关程序开发的 ...
- golang kafka clinet 内存泄露问题处理
go 内存泄露 新版本服务跑上一天内存占用20g,显然是内存泄露 内存泄露的问题难在定位 技术上的定位 主要靠 pprof 生成统计文件 之前写web项目 基于net/http/pprof 可以看到运 ...
- Android USB应用开发指南
调试 USB接口被占用后使用wifi调试模式 详见:https://blog.csdn.net/u013758456/article/details/78911812 开发