HarmonyOS与Android的全面对比

目录

一、前言

二、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

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

相关推荐


文章浏览阅读1.4k次。被@Observed装饰的类,可以被观察到属性的变化;子组件中@ObjectLink装饰器装饰的状态变量用于接收@Observed装饰的类的实例,和父组件中对应的状态变量建立双向数据绑定。这个实例可以是数组中的被@Observed装饰的项,或者是class object中是属性,这个属性同样也需要被@Observed装饰。单独使用@Observed是没有任何作用的,需要搭配@ObjectLink或者@Prop使用。_鸿蒙ark对象数组
文章浏览阅读1k次。Harmony OS_harmonyos创建数据库
文章浏览阅读1.1k次,点赞25次,收藏23次。自定义组件Header.ets页面(子组件)//自定义组件@Component//组件声明private title:ResourceStr//接收的参数build(){Row() {index.ets(父组件)//导入自定义组件@Entry@Componentbuild() {Column() {/*** 1. 自定义组件调用-----自定义组件------* 2. 在调用的组件上设置样式*/ShopTitle({ title: '商品列表' })
文章浏览阅读952次,点赞11次,收藏25次。ArkUI是一套构建分布式应用界面的声明式UI开发框架。它使用极简的UI信息语法、丰富的UI组件、以及实时界面预览工具,帮助您提升移动应用界面开发效率30%。您只需使用一套ArkTS API,就能在Android、iOS、鸿蒙多个平台上提供生动而流畅的用户界面体验。_支持ios 安卓 鸿蒙next的跨平台方案
文章浏览阅读735次。​错误: 找不到符号符号: 变量 Layout_list_item位置: 类 ResourceTable_错误: 找不到符号 符号: 变量 resourcetable 位置: 类 mainabilityslice
文章浏览阅读941次,点赞23次,收藏21次。harmony ARKTS base64 加解密_鸿蒙 鸿蒙加解密算法库
文章浏览阅读860次,点赞21次,收藏24次。使用自定义布局,实现子组件自动换行功能。图1自定义布局的使用效果创建自定义布局的类,并继承ComponentContainer,添加构造方法。//如需支持xml创建自定义布局,必须添加该构造方法实现ComponentContainer.EstimateSizeListener接口,在onEstimateSize方法中进行测量。......@Override//通知子组件进行测量//关联子组件的索引与其布局数据idx++) {//测量自身。_鸿蒙javaui
文章浏览阅读917次,点赞25次,收藏25次。这里需要注意的是,真机需要使用华为侧提供的测试机,测试机中会安装纯鸿蒙的系统镜像,能够体验到完整的鸿蒙系统功能,纯鸿蒙应用目前还不能完美地在 HarmonyOS 4.0 的商用机侧跑起来。当前,真机调试需要使用华为侧提供的测试机,测试机中会安装纯鸿蒙的系统镜像,能够体验到完整的鸿蒙系统功能,纯鸿蒙应用目前还不能完美地在 HarmonyOS 4.0 的商用机侧跑起来。另外,由于样式的解析是基于组件文件的纬度的,因此样式文件只能应用于被其引用的组件文件中,而不能跨文件应用,并且样式文件也只支持类选择器。_鸿蒙 小程序
文章浏览阅读876次,点赞17次,收藏4次。2. HarmonyOS应用开发DevEcoStudio准备-1HUAWEI DevEco Studio为运行在HarmonyOS和OpenHarmony系统上的应用和服务(以下简称应用/服务)提供一站式的开发平台。
文章浏览阅读811次。此对象主要映射JSON数组数据,比如服务器传的数据是这样的。_arkts json
文章浏览阅读429次。鸿蒙小游戏-数字华容道_华为鸿蒙手机自带小游戏
文章浏览阅读1.1k次,点赞24次,收藏19次。Ability是应用/服务所具备的能力的抽象,一个Module可以包含一个或多个Ability。
文章浏览阅读846次。本文带大家使用MQTT协议连接华为IoT平台,使用的是E53_IA1 智慧农业扩展板与 BearPi-HM_Nano 开发主板_mqtt 如何对接第三方iot平台
文章浏览阅读567次。HarmonyOS_arkts卡片
文章浏览阅读1k次,点赞19次,收藏20次。ArkTS开发鸿蒙OS连接mongoDB(后端node.js)2024最新教程
文章浏览阅读1.2k次,点赞23次,收藏15次。HarmonyOS与OpenHarmony(1)本质上的不同是:HarmonyOS是鸿蒙操作系统,而OpenHarmony则是从开源项目。这里可以联想一下Android,比如小米手机在Android开源系统的基础上开发了MIUI的手机操作系统,HarmonyOS就类似于MIUI,OpenHarmony类似Android基础底座。(2)HarmonyOS:是双框架,内聚了AOSP(Android Open Source Project )和OpenHarmony等。_鸿蒙模拟器开了怎么跑代码
文章浏览阅读1.1k次,点赞21次,收藏21次。鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Navigation组件。
文章浏览阅读2k次。由于之前的哥们匆忙离职了,所以鸿蒙手表项目的新版本我临时接过来打包发布,基本上之前没有啥鸿蒙经验,但是一直是做Android开发的,在工作人员的指导下发现打包配置基本上和Android一样,所以这些都不是问题,这里记录一下使用过程中遇到的问题。!过程和遇到的问题基本上都讲解了,关机睡觉,打卡收工。_鸿蒙系统adb命令
文章浏览阅读7.3k次,点赞9次,收藏29次。39. 【多选题】_column和row容器中,设置子组件在主轴方向上的对齐格式
文章浏览阅读1.1k次,点赞13次,收藏24次。18.鸿蒙HarmonyOS App(JAVA)日期选择器-时间选择器点击button按钮显示月份与获取的时间。_harmonyos农历获取