目录

一文彻底搞清楚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,蜕变从此开始!