• 鸿蒙OS应用开发初体验


    什么是HarmonyOS?

    HarmonyOS(鸿蒙操作系统)是华为公司开发的一款基于微内核的分布式操作系统。它是一个面向物联网(IoT)时代的全场景操作系统,旨在为各种类型的设备提供统一的操作系统平台和开发框架。HarmonyOS 的目标是实现跨设备的无缝协同和高性能。

    DevEco Studio

    对标Android Studio,开发鸿蒙OS应用的IDE。

    启动页面

    image.png

    Setup

    image.png

    image.png

    HarmonyOS-SDK:鸿蒙操作系统软件开发工具包

    • Previewer:预览器
    • Toolchains:工具链

    OpenHarmony-SDK:开源鸿蒙操作系统软件开发工具包

    • ArkTS:鸿蒙生态的应用开发语言。
    • JS:JavaScript
    • Previewer:预览器
    • Toolchains:工具链

    image.png

    Create Project

    image.png
    image.png

    配置工程

    image.png
    项目名称、包名、存储路径、编译SDK版本、模型,语言、设备类型等。

    工程目录结构

    image.png

    • AppScope:存放应用全局所需要的资源文件。
    • entry:应用主模块,存放HarmonyOS应用的代码、资源等。
    • on_modules:工程依赖包,存放工程依赖的源文件。
    • build-profile.json5是工程级配置信息,包括签名、产品配置等。
    • hvigorfile.ts是工程级编译构建任务脚本,hvigor是基于任务管理机制实现的一款全新的自动化构建工具,主要提供任务注册编排,工程模型管理、配置管理等核心能力。
    • oh-package.json5是工程级依赖配置文件,用于记录引入包的配置信息。

    Device Manager

    image.png

    创建好的模拟器会出现在这里。
    image.png

    启动模拟器之后,会在设备列表中出现。

    image.png

    编译运行

    image.png
    编译运行,可以从通知栏看到输出的文件并不是apk,而是hap(Harmony Application Package的缩写)。是鸿蒙操作系统设计的应用程序包格式。

    image.png
    .hap 文件包含了应用程序的代码、资源和元数据等信息,用于在 HarmonyOS 设备上安装和运行应用程序。

    image.png

    整体开发流程跟Android基本无差,所以熟悉Android开发的同学上手基本没啥难度。

    ArkTS

    ArkTS是鸿蒙生态的应用开发语言。它在保持TypeScript(简称TS)基本语法风格的基础上,对TS的动态类型特性施加更严格的约束,引入静态类型。同时,提供了声明式UI、状态管理等相应的能力,让开发者可以以更简洁、更自然的方式开发高性能应用。
    https://developer.harmonyos.com/cn/develop/arkts/

    最简单例子:

    @Entry
      @Component
      struct Index {
        @State message: string = 'Hello World'
    
        build() {
          Row() {
            Column() {
              Text(this.message)
                .fontSize(50)
                .fontWeight(FontWeight.Bold)
            }
            .width('100%')
          }
          .height('100%')
        }
      }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    看起来非常简洁,采用的是声明式UI,写过Flutter的同学对声明式UI应该不会陌生。从最简单的例子初步了解下基本语法:

    • 装饰器,用于装饰类、结构、方法以及变量,并赋予其特殊的含义。如@Entry、@Component、@State都是装饰器。
    • 自定义组件:可复用的UI单元,可组合其他组件,如上述被@Component装饰的stuct Index。
    • UI 描述:以声明式的方式来描述UI的结构,如上述的build()方法中的代码块。
    • 系统组件:ArkUI框架中默认内置的基础和容器组件,可直接被开发者调用,比如示例中的Row、Column、Text。
    • 属性方法:组件可以通过链式调用配置多项属性,如fontSize()、width()、height()、backgroundColor()等。
    • 事件方法:组件可以通过链式调用设置多个事件的响应逻辑,本例代码不涉及,可以进一步学习文档。

    这里就不是Android熟悉的java或kotlin语言了,编程语言变成了类JavaScript的前端语言,这意味着我们需要适应用前端的思想去开发鸿蒙应用,比如状态管理。

    总结

    本文纯初体验遥遥领先背后的鸿蒙操作系统,基于开发者平台提供的IDE、鸿蒙生态的开发语言ArkTS,通过模拟器运行起来了鸿蒙OS版HelloWorld。对于已经有移动开发经验的同学来说上手可以说非常快,官方文档也非常详尽,ArkTS语法也非常简洁易学,如果大家对华为生态的应用开发感兴趣或者想深入学习借鉴华为做OS和物联网的思路,鸿蒙系统就是一个标杆。

  • 相关阅读:
    LeetCode----149. 直线上最多的点数
    基于Matlab卡尔曼滤波的IMU和GPS组合导航数据融合(附上源码+数据)
    前端性能优化之防抖&节流
    【JavaSE语法】数据类型与变量
    学习【Cesium】第三篇,从Cesium.Viewer查看器开始学习(学不会揍我)
    MySQL-(6)
    jvm内存分配与回收策略
    百科不全书之 docker记录
    洛谷P5451 密码学第三次小作业
    泛微入选《金融信创解决方案(第一批)》
  • 原文地址:https://blog.csdn.net/wwj_748/article/details/134460370