harmonyos系统与安卓区别(uAndroid)

目录一、前言二、HarmonyOS与Android的对比2.1HarmonyOS并不是Android的替代品2.2系统定位2.3内核对比2.4运行速度三、方舟编译器一、前言这段时间我在寻思这学习一下鸿蒙,第一是因为在着手做一个自己的开源项目,技术选型的时候想到了鸿蒙;第二是我个人非常看好鸿蒙系统的未来,清除明白华为和一些民族企业担负的责任和国人的期待,虽然带着一些民族感情;鸿蒙刚发布的时候自己是非常激动的,但是后来项目太忙一直没有认真的去了解过,这次打算花一部

大家好,又见面了,我是你们的朋友全栈君。

目录

一、前言

二、HarmonyOS与Android的对比

2.1 HarmonyOS并不是Android的替代品

2.2 系统定位

2.3 内核对比

2.4 运行速度

三、方舟编译器


一、前言

这段时间我在寻思着学习一下鸿蒙,
第一是因为在着手做一个自己的开源项目,技术选型的时候想到了鸿蒙;
第二是我个人非常看好鸿蒙系统的未来,清楚明白华为和一些民族企业担负的责任和国人的期待,虽然带着一些民族感情;鸿蒙刚发布的时候自己是非常激动的,但是后来项目太忙一直没有认真的去了解过,这次打算花一部分时间认认真真的去研究学习一下。
于是我开始试探性的去请教身边的大佬们,公司的CTO、中台部门的总监、老东家数十年行业经验的老架构、以及在中科院读研究生的大学老室友、技术圈的网友等等,他们都给出了自己独特的看法,让我从多方面更好的去了解到了大家对鸿蒙的认识,当然期间也发现很多国内开发者对鸿蒙系统嗤之以鼻或者抱着一些不太看好的心态,甚至有人在我的关于鸿蒙开发的博客下评论一些比较难听的话!(当然一千个读者有一千个哈姆雷特,这都是个人自由);
这肯定是一篇遭到唾弃的文章!但这一切都无法磨灭我坚定的信仰:支持国产、支持民族企业、支持每一个为国家富强而努力的同胞!

二、HarmonyOS与Android的对比

2.1 HarmonyOS并不是Android的替代品

HarmonyOS与Android的对比相信是很多关注鸿蒙的人,非常关注的一个焦点话题,我并不特别了解安卓(Android)开发,只在大学期间有过一些课程的涉猎,但是我想我既然想学鸿蒙(HarmonyOS)那就离不开去硬着头皮探索这个问题!这里事先声明,写这篇文章之前我认真阅读了很多知乎、C站、B站、HarmonyOS官网、腾讯网关于HarmonyOS相关新闻等文章,也稍微跟了一些源码最后做了这些总结。

文章观点:

  1. HarmonyOS并不是Android的替代品,HarmonyOS与Android并非同一个赛道
  2. HarmonyOS目前缺乏生态支持这一点远远比不上Android,但是HarmonyOS的战略眼光更加高,未来可期
  3. HarmonyOS相比Android有一定的性能提升

2.2 系统定位

安卓(Android):是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。

鸿蒙(HarmonyOS):是一款面向万物互联时代的、全新的分布式操作系统。在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备,提供全场景(移动办公、运动健康、社交通信、媒体娱乐等)业务能力。
建议可以看下华为官方对于HarmonyOS系统定位的介绍视频:
视频地址:

https://mos-vod-drcn.dbankcdn.cn/P_VT/video_injection/7C1346286/v3/7C5879811130980925606204416/MP4Mix_H.264_1920x1080_6000_HEAAC1_PVC_NoCut.mp4

从上面的简单介绍就能很明显的看出,Android和HarmonyOS两款产品的研发初衷完全不一样,根本就不在同一个赛道上,安卓系统面向的是手机端,而鸿蒙系统面向的是这些年比较的新的概念物联网,致力于利用其5G世界领先的技术,优先布局和打造一个超级终端,万物互联的生态。

2.3 内核对比

安卓(Android):基于linux的宏内核设计 ,宏内核包含了操作系统绝大多数的功能和模块,而且这些功能和模块都
具有最高的权限,只要一个模块出错,整个系统就会崩溃,这也是安卓系统容易崩溃的原因。系统
开发难度低。

鸿蒙(HarmonyOS):基于微内核设计,微内核仅包括了操作系统必要的功能模块(任务管理、内存分配等)处在核心地位具有最高权限,其他模块不具有最高权限,也就是说其他模块出现问题,对于整个系统的运行是没有阻碍的。微内核稳定性很高。鸿蒙系统包含了两个内核:

  • Linux内核
  • LiteOS内核

建议可以看下华为官方对于HarmonyOS的技术架构介绍视频,它这个有对内核层总体架构有说明。
内核层

  • 内核子系统:HarmonyOS采用多内核设计,支持针对不同资源受限设备选用适合的OS内核。内核抽象层(KAL,Kernel Abstract Layer)通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等。
  • 驱动子系统:硬件驱动框架(HDF)是HarmonyOS硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架。

视频地址:

https://mos-vod-drcn.dbankcdn.cn/P_VT/video_injection/D71346286/v3/2999FE4A1130980852826641152/MP4Mix_H.264_1920x1080_6000_HEAAC1_PVC_NoCut.mp4

2.4 运行速度

安卓(Android):基于Java语言编码,Java语言有个很大的缺点是其不能直接与底层操作系统通信,需要通过虚拟机充当中间转换的角色,这是每一个Java开发人员都知道的知识点,JVM也是我们Java程序员必修的一门高级课程。虽然Java语言由于虚拟机的优化,编译器的优化,热点代码等技术使得其越来越快,但是无法直接与操作系统互相通信一直影响着其性能的突破(AOT(Ahead Of Time)技术我并未研究过,只了解Java的JIT(Just-in-time))。
安卓(Android)技术架构图如下

安卓技术架构图.jpg

鸿蒙(HarmonyOS):鸿蒙的开发也可以采用Java语言,官方也推荐使用Java语言开发,但是华为针对安卓或者说Java语言的这种特性,研发了方舟编译器,通过方舟编译器编译的软件可以直接与底层操作系统通信,方舟编译器在这一层面做到了取代虚拟机。虽然没有研究过,但是推断应该是在打包的时候,通过方舟编译器转换为操作系统能够读懂的机器语言,这样就可以跳过虚拟机解释这一步骤,当然这是肯定对机器的内存要求比较高,应该也存在启动后无法继续优化等问题。
鸿蒙(HarmonyOS)系统架构图如下:

鸿蒙系统架构图.png

三、方舟编译器

以下部分来源开源中国对方舟编译器的介绍:
https://www.oschina.net/p/arkcompiler?hmsr=aladdin1e1

方舟编译器
华为方舟编译器作为一款全新的编译器可以显著提高手机的运行速度,它不采用现有编译器边解释边执行的模式,而是将这种动态编译改为静态编译,可以做到全程执行机器码,进而高效运行程序,大大缩短程序响应时间。

095705_VgFL_2720166.jpg

方舟编译器的优势

  • 多语言联合:将同一应用中的不同语言代码联合编译、联合优化,消除语言间的性能“鸿沟”,降低开发者的优化成本
  • 轻量运行时:通过编译器的语言实现能力和优化能力增强,应用运行时的开销更小
  • 软硬件协同:编译器与芯片实现软硬件协同优化,充分发挥硬件能效,应用体验更佳
  • 多平台支持:支持面向多样化的终端设备平台进行编译和运行,根据设备特征提供便捷的开发与部署策略,提高开发效率

082446_XqTE_12.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/129190.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • RailsCasts批量下载地址之Ruby代码

    RailsCasts批量下载地址之Ruby代码

  • Java开发经验谈:北大青鸟培训java学费

    Java开发经验谈:北大青鸟培训java学费Java成长笔记大致内容如下:0-1年入门:Java基础复盘(面向对象+Java的超类+Java的反射机制+异常处理+集合+泛型+基础IO操作+多线程+网络编程+JDK新特性)Web编程初探(Servlet+MySQL数据库+商品管理系统实战)SSM从入门到精通(Spring+SpringMVC+Mybatis+商品管理系统实战-SSM版)SpringBoot快速上手(SpringBoot+基于SpringBoot的商品管理系统实战)零距离互联网项目实战(Linux+Redis+双十一秒杀实战

  • java栈帧里面的储存的内容_java创建一个栈

    java栈帧里面的储存的内容_java创建一个栈文章转载自:http://www.tuicool.com/articles/URZrMnbjvm为每个新创建的线程都分配一个堆栈。堆栈以帧为单位保存线程的状态。jvm对堆栈只进行两种操作:以帧为单位的压栈和出栈操作。栈帧(StackFrame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区的虚拟机栈(VirtualMachineStack)的栈元素。栈帧存储了方法的…

  • Java 最常见的 200+ 面试题:面试必备「建议收藏」

    这份面试清单是从我2015年做了TeamLeader之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘在Java技术栈中,还有那些知识点是我不知道的,我想找到这些技术盲点,然后修复它,以此来提高自己的技术水平。虽然我是从2009年就开始参加编程工作了,但我依旧觉得自己现在要学的东西很多,并且学习这些知识,让我很有成就感和满足感,那所以何乐而不为呢?说回面试的事,这份面试…

  • mysql decimal长度_mysql decimal类型与decimal长度用法详解[通俗易懂]

    mysql decimal长度_mysql decimal类型与decimal长度用法详解[通俗易懂]以下内容转自:http://blog.csdn.net/zhanghao143lina/article/details/53816884三者的区别介绍float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位)double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有效位)decimal:数字型,128bit,不存在精…

  • Mysql中的关联查询(内连接,外连接,自连接)

    Mysql中的关联查询(内连接,外连接,自连接)在使用数据库查询语句时,单表的查询有时候不能满足项目的业务需求,在项目开发过程中,有很多需求都是要涉及到多表的连接查询,总结一下mysql中的多表关联查询一,内连接查询是指所有查询出的结果都是能够在连接的表中有对应记录的。以t_employee(员工表)和t_dept(部门表)为例:t_employee表中的记录如下:dept代表该员工所在的部门t_dept表中记录

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号