从代码角度揭示:华为鸿蒙的“套壳”真相!

华为鸿蒙操作系统(HarmonyOS)出来后,互联网上已经吵翻天了,有人认为HarmonyOS是“自主的全场景分布式系统”,是国产之光,另一派则认为HarmonyOS是“Android套壳”,是挂羊头卖狗肉。作为十年老程序员,有必要从代码角度厘清一下真相(佩服知乎大神,已拆解完HarmonyOS源码):

1  目录结构和Android雷同,只是改了后缀,如果将后缀.hap改回.apk,甚至可以直接用Android Studio打开。

2 主代码就干了一件事:重新定义了一套新的UI,这就是为啥鸿蒙看起来和苹果似的原因,这是华为重写的。

3  华为最关键的三个点是加入了分布式任务调度、分布式数据服务、分布式文件服务,都在ohos.jar包里面,但是其源码全部隐藏了。

综述一下,HarmonyOS = 原有的Android系统 - GMS + HMS + 分布式软总线 + 以Ability为核心的应用开发框架。可能还是不太好懂,换个角度来说:

1  全世界所有的Android操作系统最底层的内核是Linux;

2  谷歌在Linux上为手机场景提供了一套开源封装就是Android Open Source Project,是所有的Android系统的地基,也被称之为Android裸机版;

3  日常说的Android操作系统实际上是Android Open Source Project+谷歌定制的GMS增强包;

4  华为鸿蒙则是去掉了GMS,换成了自己的HMS,当然还加入了分布式的东西,基于Android Open Source Project套壳而成,所以说是AOSP套壳是没问题的,但又确实跟Android不同,这也是争议所在。

面对现实吧,没人会说IOS是Android套壳,也没有会说Windows是Linux套壳,而华为鸿蒙现阶段就是基于Android Open Source Project套壳!但这重要吗?我国当年花重金购入瓦良格号,基于此开发出辽宁舰、山东舰,现在会有人在乎它们算不算套壳吗?一方面积极汲取他人长处,快速完成自我提升,另一方面也要意识到差距,持续进步完成蜕变!

师夷长技,脚踏实地

很多的.NET开发者,对互联网大厂流行的微服务云原生架构,也呈现两种极端态度。要么是固步自封,眼下的工作用不上,极为排斥,其结果是市场脱节,要么是大厂真香,没有点技术储备却非要全套照搬,其结果大部分都是不了了之。在我看来,这些都是不智的,新技术新框架,都应该去积极拥抱积极尝试,这样才能保证自身的竞争力。然后在学习的时候,也要脚踏实地,一步步前进,别妄想一步到位。

这里给大家推荐微软MVP-Eleven老师的《.NET6+微服务架构落地高并发电商平台》实战训练营,本号粉丝直接免费,限200名额,下图扫码进专用交流群即可!今晚八点开讲,直面微软MVP,赶紧扫码!

本训练营课程是基于.NET6 Preview4+微服务架构落地B2C电商平台,涵盖了微服务架构全组件:网关和服务治理、服务注册发现、独立鉴权授权中心、全链路追踪、分布式日志、指数收集与监控、分布式配置中心等,还用Docker+Jenkins构建了CI/CD持续集成持续部署的自动化流程,部署在Kubernetes搭建的私有云环境,采用多种分布式锁以及最终一致性的分布式事务方案,是完整的.NET Core微服务架构案例!

微软MVP亲授

要学习微服务架构门槛不低,第一个前提就是熟悉跨平台开发,包括ASP.NET Core、EntityFrameworkCore、Core WebAPI、gRPC等,下面这组是年初录制的一组.NET5实战教程,缺乏跨平台开发经验的得快速补充一下!

.NET5实战教程

高并发组件更是不可或缺的,微服务架构本身就是为了应对高并发而生,Redis、MongoDB、RabbitMQ、Kafka等一个都不能少。

多教程合集(视频+源码+笔记)

以上预习资料都已经整理好了,赶紧扫码领取吧,今晚八点微服务架构实战就开讲了!牛年跳槽季,.NET高薪岗位比比皆是,腾讯T9级.NET Core岗位就明确要求微服务,下一次的跳槽加薪就在此一搏,学习搞起来!

扫码添加-免费领资料

高薪内推通道

高薪薪nixoag高内推通道薪薪nixoag

学习提升的目标就是为了升职加薪,下面这个交流群请务必扫码进一下,除了技术直播分享和答疑交流,还经常有国内顶尖.NET企业内推信息,覆盖北上广深和一众二线城市,尤其是一些不那么大规模的公司的核心岗位招聘,都是依赖于内推的。欢迎大家进群一起学习交流,一起分享内部推荐,建立.NET5高薪学习社区,Let's Go!

扫码添加-加入技术交流群

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/301623.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux进化树分析的软件,一款好用的进化树可视化编辑软件

原标题:一款好用的进化树可视化编辑软件iTOL(Interactive Tree Of Life)是一个在线显示和操作的进化树工具。我们可以添加很多自定义的项目,丰富和完善自己的进化树,比如添加柱状图、蛋白结构域、heatmap、基因平行转移(horizontal gene tran…

django与easyui使用过程中遇到的问题

最近要使用django前台用easyui,发现当从后台获取数据过程中会出现跨域问题。 多次尝试后发现将ajax的方法设置为GET就没问题了 代码如下: $(#syslog_1).datagrid({url:/bookapp/book/test/,toolbar:#toolbar,fitColumns:true, iconCls:ic…

每日一笑 | 床上还是桌上,你总得选一样~

全世界只有3.14 % 的人关注了数据与算法之美(图片来源于网络,侵权删)

linux端口 fcs校验,我如何接收错误的以太网帧并禁用CRC / FCS计算?

你没有指定哪个操作系统,但我至少可以为Linux发言:它可能在你的内核,网卡和驱动程序以及ethtool版本。我们需要告诉驱动程序/硬件做两件事情,通常不这样做:1)将FCS字段传递给网络堆栈。 (通常在传递之前被截断)2)不丢弃…

Redis分布式锁抽丝剥茧

之前码甲哥写了两篇有关线程安全的文章:•你管这叫线程安全?•.NET八股文:线程同步技术解读分布式锁是"线程同步"的延续最近首度应用"分布式锁",现在想想,分布式锁不是孤立的技能点,这…

MFC,QT与WinForm,WPF简介

编程语言的组成 编程语言做为一种语言自然和英语这些自然语言有类似的地方.学英语时我们知道要先记26个字母,然后单词及其发音,接下来就是词组,句子.反正简单的说就是记单词,熟悉词法,句法.接下来就是应用了,听说读写.而使用相同语言的人大脑里都有个翻译器,可以把自己的想法翻…

让苹果CEO库克折服的程序员仅10岁!?

▲数据汪特别推荐点击上图进入玩酷屋在国外,编程教育课早已普及,美国、英国、新加坡等国家少儿编程已进入小学标准必修课程体系。韩国、日本也相继在2017年和2020年开展一年级至初三的编程教育普及。美国总统孙女,五岁开始学习在电脑上编程最…

WPF Datagrid合并表头的思路

在使用datagrid的时候,有很多情况下,都需要合并表头,多行表头之类的操作。这就需要我们自定义列了。本文给出一个思路,可以实现此需要,只是本人对这个研究不很明白,只是只是实现,仅此而已。下面…

linux firefox 插件开发教程,Firefox插件(plugins)开发实用指南

了解Firefox插件的开发知识的时候,找到了这篇文章。的确让我少走了弯路,比如,我的NP插件的DLL,之前不是NP开头的,在此非常感谢原作者,您文章让我节约了不少时间。转载传播此文章,希望对准备研究…

黑马程序员--IO【1】

------------------- android培训、java培训、期待与您交流!------------------ /*System:类中的方法和属性都是静态的。out:标准输出,默认是控制台。in:标准输入,默认是键盘。描述系统一些信息。获取系统属性信息:Pro…

C# 爬虫:疫情实时信息图

运行结果:using System; using System.Drawing; using System.Text; using NSoup; using NSoup.Nodes; using System.IO; using System.Net; using System.Text.RegularExpressions; using System.Windows.Forms;namespace Pneumonia {public partial class MainFor…

史上最黑科技 | 人造肌肉、DNA折叠、柔性外骨骼…

全世界只有3.14 % 的人关注了数据与算法之美说起被机器人支配,一部分人恐惧得不行,另一部人只当个笑话,但无论哪一边,都忍不住想看看这个神秘的领域正在发生什么,这是本能:“我得盯着你,如果哪天…

linux l显示详细信息,fdisk -l显示信息详解

fdisk -l显示信息详解[rootwww.linuxidc.com ~]# fdisk -lDisk /dev/sda: 10.7 GB, 10737418240 bytes255 heads, 63 sectors/track, 1305 cylindersUnits cylinders of 16065 * 512 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/o…

今天正式开通51CTO技术博客

今天正式开通51CTO技术博客,今后会把自己工作和学习过程中的点点滴滴记录在此博客中!转载于:https://blog.51cto.com/dashuai/1160235

ML.NET Cookbook:(17)如何在分类数据上训练模型?

一般来说,所有的ML.NET学习器都希望这些特征是一个浮点向量。因此,如果您的一些数据不是一个float,您需要将其转换为float。如果我们的数据包含“分类”特征(比如“enum”),我们需要以某种方式对它们进行“…

有钱真的能为所欲为,微软用75亿美元解决了比尔盖茨的“心头大患”

全世界只有3.14 % 的人关注了数据与算法之美2018年6月4日,微软在官方博客上宣布:以75 亿美元的价格收购了全球最大的开源代码托管平台GitHub。谁也没想到,微软和开源这场长达几十年的战争,到最后双方竟然喜结连理了。不过&#xf…

linux 逻辑卷 pe size 4.00 mib大小怎么改,linux逻辑卷的建立

开始的时候系统各目录的挂载情况如下:增加了一个8G大小的scsi磁盘启动系统之后。[rootpoint1 ~]#fdisk �Cl增加了一个sdb设别。一、分区并格式化磁盘[rootpoint1 ~]#fdisk /dev/sdb输入m是显示帮助菜单输入n创建一个分区,选择p创建主分区&…

svn 自动同步到web站点目录post-commit.bat

为什么80%的码农都做不了架构师?>>> 需求分析: 在服务器上搭建了visualSVN server ,然后为了统一测试环境,又在服务器上搭建了web server。现在的需求是,当开发人员通过svn提交更新的时候,让svn自动将文件…

.NET之模型绑定和验证

介绍模型绑定就是接收将来自HTTP请求的数据映射到模型的过程。如果找不到模型属性的值&#xff0c;并不会报错&#xff0c;而是给该属性设置默认值。示例&#xff1a;比如我们有一个接口为[HttpGet("{id}")] public ActionResult<Pet> GetById(int id, bool do…

每日一笑 | 大学教室的真实写照...

全世界只有3.14 % 的人关注了数据与算法之美&#xff08;图片来源于网络&#xff0c;侵权删&#xff09;