一文彻底搞清楚OpenHarmony和HarmonyOS-和-Harmony-NEXT
一文彻底搞清楚OpenHarmony和HarmonyOS 和 Harmony NEXT
Hello,我是程序员Feri,一名从事12年+的程序员,做过开发、带过团队、创过业、做过讲师,目前从事Harmony 相关产品开发和Open Harmony的南向开发。平凡的人生一样可以精彩,如果你想了解更多我的故事,那么来,关注我,跟着我一起成长,人生路上有你相伴,真美!
0. 引言
OpenHarmony、HarmonyOS 和 Harmony NEXT 是华为在操作系统领域布局的三颗重要棋子,它们之间有着紧密的联系与区别。Feri本次将深入剖析这三者之间的关系,帮助大家更好地理解它们的定位与作用。
1. OpenHarmony:开源基石
OpenHarmony 是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目。华为将智能终端操作系统基础能力相关代码捐赠给该基金会,OpenHarmony 便在此基础上发展而来。其目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台。OpenHarmony 的架构分为内核层(Linux 内核或 LiteOS 内核)、系统服务层、框架层和应用层,具有全场景覆盖、分布式架构、统一开发和安全可靠等特点。
2. HarmonyOS:商业应用
HarmonyOS 是华为基于 OpenHarmony、AOSP 等开源项目开发的面向多种全场景智能设备的商用版本。它为不同设备的智能化、互联与协同提供了统一的语言,带来简洁、流畅、连续、安全可靠的全场景交互体验。HarmonyOS 采用了 LiteOS 和 Linux 内核的混合架构,通过兼容层实现了对 Android 应用的支持,用户可以在 HarmonyOS 设备上运行现有的 Android 应用。HarmonyOS 的生态系统主要由华为设备和合作伙伴构成,通过华为应用商店和开发者社区,提供了丰富的应用和服务。
3. Harmony NEXT:全新突破
Harmony NEXT 是华为在其鸿蒙操作系统上的最新版本。它完全摆脱了对 Linux 内核和 AOSP 代码的依赖,采用了自主研发的微内核架构,使得系统更加轻量、高效和安全。Harmony NEXT 在性能上提升了 30%,电池消耗减少了 20%。它不再支持 Android 应用,仅支持 HAP 格式的原生应用,要求开发者为 Harmony NEXT 重新开发或适配应用。Harmony NEXT 强调“多设备协同”和“分布式软总线”,并引入了星盾安全架构,进一步提升了系统的安全性和性能。
4. 三者之间的联系
4.1 技术基础
1.OpenHarmony 为 HarmonyOS 和 Harmony NEXT 提供了基础的技术架构和核心能力。HarmonyOS 和 Harmony NEXT 都是基于 OpenHarmony 的内核和框架进行开发和优化。
2.HarmonyOS 可以看作是在 OpenHarmony 的基础上,华为增加了一些定制的商业服务和功能,以满足华为设备和生态系统的需求。而 Harmony NEXT 则是在 HarmonyOS 的基础上,进一步去除了对 Android 生态的依赖,实现了更深层次的自主研发和创新。
4.2 生态系统
1.OpenHarmony、HarmonyOS 和 Harmony NEXT 共享一些共同的生态系统基础。它们都致力于建立完善的生态系统,通过各自的开发工具和应用市场,支持开发者进行应用开发和分发。
2.HarmonyOS 的生态系统主要围绕华为设备和合作伙伴,而 OpenHarmony 则面向更广泛的硬件制造商和开发者社区。Harmony NEXT 也在积极构建自己的应用生态系统,推动开发者为其开发原生应用。
4.3 用户体验
1.三者都强调为用户提供流畅且一致的用户体验。通过优化系统性能和用户界面,在设备间实现了无缝连接和操作,提升了用户的整体使用感受。
2.HarmonyOS 和 Harmony NEXT 进一步优化了分布式能力,实现了更高效的设备间资源共享和任务分配,为用户带来了更加便捷的跨设备协同体验。
4.4 开发工具
HarmonyOS 和 Harmony NEXT 都提供了丰富的开发工具,帮助开发者进行应用开发和优化。HarmonyOS 使用 DevEco Studio 作为主要的开发环境,支持开发者为 HarmonyOS NEXT 开发原生应用。这些工具提供了全面的开发支持,包括代码编辑、调试、测试和发布等功能。
5.Harmony NEXT体验
目前就业市场最为活跃的就是Harmony NEXT开发工程师,因为华为真机已经搭载,所以如果目前想要从事Harmony 开发,那么务必掌握Harmony NEXT版本的原生App开发实践,下面也给大家展示一段Harmony Next的代码:
import { CommonData } from "../model/CommonData";
@Component
export struct BallComponents {
@State commonData: CommonData = new CommonData()
@State resultRed: Array<string> = []
@State resultBlue: Array<string> = []
redList: Array<[ResourceColor, number]> = [
['#ff0000', 0.0], // 起始颜色为红色,位置为0
['#00ff00', 0.5], // 中间颜色为绿色,位置为0.5
['#ffffff', 1.0]// 结束颜色为蓝色,位置为1
]
blueList: Array<[ResourceColor, number]> = [
['#5B7EEF', 0.0], // 结束颜色为蓝色,位置为1
['#ffffff', 0.5], // 起始颜色为红色,位置为0
['#00ff00', 1.0],// 中间颜色为绿色,位置为0.5
]
@Builder
ballItemBuild(ballText: string, isRed: boolean, marginLeft?: number) {
Button(ballText, { type: ButtonType.Circle })// .stateEffect(true)
.fontSize(18)
.size({ width: 50, height: 50 })
.padding(10)
.margin({ left: marginLeft })
.alignSelf(ItemAlign.Center)
.align(Alignment.Center)
.shadow(ShadowStyle.OUTER_DEFAULT_MD)
.hoverEffect(HoverEffect.Auto)
.sweepGradient({
center: [0, 0], // 渐变中心点坐标
start: 20, // 起始角度为0度(正右方向)
end: 360, // 结束角度为360度(形成一个完整的圆)
colors: isRed ? this.redList : this.blueList
});
}
build() {
Column() {
Column() {
Text('预测结果:')
.fontSize(18)
.fontFamily('HarmonyHeiTi-Bold7&')
.align(Alignment.Start)
.width('100%')
Row() {
ForEach(this.resultRed, (item: string, index: number) => {
this.ballItemBuild(item, true)
}, (item: string, index: number) => item + index)
}
.padding({ top: 20 })
.alignItems(VerticalAlign.Center)
.justifyContent(FlexAlign.SpaceBetween)
.width('100%')
Row() {
ForEach(this.resultBlue, (item: string, index: number) => {
if (index > 0) {
this.ballItemBuild(item, false, 15)
} else {
this.ballItemBuild(item, false)
}
}, (item: string, index: number) => item + index)
}
.padding({ top: 20 })
.alignItems(VerticalAlign.Center)
.justifyContent(FlexAlign.Start)
.width('100%')
}
.width('100%')
.height(550)
.padding(10)
.borderRadius(20)
.backgroundColor(Color.White)
Column({ space: 20 }) {
Button('开 始 预 测 ')
.stateEffect(true)
.width('80%')
.onClick(() => {
this.resultRed = []
this.resultBlue = []
for (let i = 0; i < 6; i++) {
let randomIndex = Math.floor(Math.random() * this.commonData.redBall.length)
this.resultRed.push(this.commonData.redBall[randomIndex])
this.commonData.redBall.splice(randomIndex, 1)
}
for (let i = 0; i < 2; i++) {
let randomIndex = Math.floor(Math.random() * this.commonData.blueBall.length)
this.resultBlue.push(this.commonData.blueBall[randomIndex])
this.commonData.blueBall.splice(randomIndex, 1)
}
// 重新初始化数据
this.commonData.initData()
})
Text("预测结果仅供娱乐使用,如出现一夜暴富,纯属巧合!")
}
.height(100)
.width('100%')
.margin({ bottom: 30, top: 10 })
}
.width('100%')
.height('100%')
.justifyContent(FlexAlign.Start)
}
}
能猜到这个代码是干嘛的吗?哈哈,这个就是用来随机生成双色球的Demo,如果想要玩转源码,欢迎关注评论哈
6.结语
OpenHarmony、HarmonyOS 和 Harmony NEXT 三者之间构成了一个层次分明、相互关联的技术体系。OpenHarmony 作为开源的基石,为 HarmonyOS 和 Harmony NEXT 提供了坚实的技术基础和广泛的社区支持。HarmonyOS 在 OpenHarmony 的基础上,结合华为的商业需求和生态系统,实现了广泛的商业应用和用户体验优化。而 Harmony NEXT 则代表了华为在操作系统领域的最新探索和突破,通过自主研发和创新,为用户带来了更加安全、高效和智能的操作系统体验。三者共同推动了华为在全场景智能生态的布局和发展。
好啦,本篇文章就到这了,每天进步一点点,跟着程序员Feri,蜕变从此开始!