1.前言

鸿蒙系统(HarmonyOS)是华为于2019年8月9日在东莞举办华为开发者大会发布的1.0版别操作系统,不知不觉现在已经是2023年中了,HarmonyOS的版别也更新到了3.1了,这篇文章将作为起点,一步一步入门HarmonyOS开发。(ps:文章的部分内容来自于HarmonyOS的开发指南(3.1/4.0),运用Stage模型,有爱好能够自行参考,此外文章会尽量将HarmonyOS开发和Android的开发作比较,让读者们便于了解)

2.预备装置DevEco Studio

注册华为开发者账号并完善资料

Android开发离不开Google,HarmonyOS开发也离不开华为,来到华为开发者联盟主页

5分钟速通鸿蒙开发第一篇:开发环境
并挑选注册账号,运用手机号或许邮箱注册。
5分钟速通鸿蒙开发第一篇:开发环境
在注册完成后能够去个人中心完成开发者认证解锁更多功用。在拥有一个开发者账号之后咱们就能够去预备下载HarmonyOS的开发东西DevEco Studio

下载装置DevEco Studio并装备环境

在DevEco Studio下载界面挑选自己的操作系统下载对应的版别即可,当时Studio的最新版别为3.1.1(如下图所示)

5分钟速通鸿蒙开发第一篇:开发环境
下载完成今后装置过程和AndroidStudio装置过程是一样的
5分钟速通鸿蒙开发第一篇:开发环境
5分钟速通鸿蒙开发第一篇:开发环境
5分钟速通鸿蒙开发第一篇:开发环境

装置完成后咱们发动DevEco Studio并进行根底装备,包含Node.js与Ohpm的装置途径设置、SDK下载,挑选从华为镜像下载至适宜的途径,下载完成后狂点Next就完事了。

5分钟速通鸿蒙开发第一篇:开发环境
5分钟速通鸿蒙开发第一篇:开发环境
5分钟速通鸿蒙开发第一篇:开发环境

3.DevEco Studio界面介绍

在这一切都完成今后咱们就进入了DevEco Studio,由于DevEco Studio也是powered by the IntelliJ所以在很多地方越看越眼熟

创立项目

首要咱们先看看创立工程的界面

DevEco Studio:

5分钟速通鸿蒙开发第一篇:开发环境
Android Studio:
5分钟速通鸿蒙开发第一篇:开发环境

挑选项目模板:

DevEco Studio:

5分钟速通鸿蒙开发第一篇:开发环境

Android Studio:

5分钟速通鸿蒙开发第一篇:开发环境

项目内界面

现在咱们创立好界面,进入到了IDE,整个界面大致能够分红4个部分,上面3部分分别是工程目录区代码编辑区预览区,下面一个部分就是告诉栏(logcat、run、版别操控之类的),具体的就不打开说了和Android开发界面就是无缝切换的。

DevEco Studio:

5分钟速通鸿蒙开发第一篇:开发环境
Android Studio:
5分钟速通鸿蒙开发第一篇:开发环境

4.工程目录介绍

接下来咱们要点介绍一下IDE工程目录区中的具体内容,整个工程目录和Android中的一样能够拆分红工程级模块级

工程级目录

DevEco Studio:

5分钟速通鸿蒙开发第一篇:开发环境

Android Studio:

5分钟速通鸿蒙开发第一篇:开发环境
在DevEco Studio工程级目录中咱们能够看到以下几个元素:

  • AppScope中寄存运用大局所需要的资源文件,其间element文件夹首要存放公共的字符串、布局文件等资源, media寄存大局公共的多媒体资源文件
  • entry是运用的主模块,寄存HarmonyOS运用的代码、资源等。
  • oh_modules是工程的依靠包,寄存工程依靠的源文件。
  • build-profile.json5是工程级装备信息,包含签名、产品装备等。
  • hvigorfile.ts是工程级编译构建使命脚本,hvigor是根据使命办理机制完成的一款全新的自动化构建东西,首要提供使命注册编列,工程模型办理、装备办理等核心能力。
  • oh-package.json5是工程级依靠装备文件,用于记录引入包的装备信息。

模块级目录

DevEco Studio:

5分钟速通鸿蒙开发第一篇:开发环境

Android Studio:

5分钟速通鸿蒙开发第一篇:开发环境
在DevEco Studio模块级目录中咱们能够看到以下几个元素:

  • main文件夹中,ets文件夹用于寄存ets代码,resources文件寄存模块内的多媒体及布局文件等,module.json5文件为模块的装备文件,其间entryability寄存ability文件,用于当时ability运用逻辑和生命周期办理pages寄存UI界面相关代码文件,初始会生成一个Index页面。
  • ohosTest是单元测试目录。
  • build-profile.json5是模块级装备信息,包含编译构建装备项。
  • hvigorfile.ts文件是模块级构建脚本。
  • oh-package.json5是模块级依靠装备信息文件。

要点文件介绍

build-profile.json5

工程级build-profile.json5
{
  "app": {
    "signingConfigs": [], //工程的签名信息,可包含多个签名信息
    "compileSdkVersion": 9,//指定HarmonyOS运用/服务编译时的SDK版别
    "compatibleSdkVersion": 9,//指定HarmonyOS运用/服务兼容的最低SDK版别
    //界说构建的产品品类,如通用默许版、付费版、免费版等
    "products": [
      {
        "name": "default",//界说产品的称号,支持定制多product目标产品
        "signingConfig": "default",//指定当时产品品类对应的签名信息,签名信息需要在signingConfigs中进行界说
      }
    ]
  },
  "modules": [
    {
      "name": "entry",//模块称号
      "srcPath": "./entry",//标明模块根目录相对工程根目录的相对途径
      "targets": [ //界说构建的APP产品,由product和各模块界说的targets一起界说
        {
          "name": "default", //target称号,由各个模块的build-profile.json5中的targets字段界说
          "applyToProducts": [
          "default" //表示将该模块下的“default” Target打包到“default” Product中
         ]
        }
      ]
    }
  ]
}
模块级build-profile.json5
{
  "apiType": 'stageMode',//API类型,运用FA或许Stage模型
  "buildOption": { //装备挑选har依靠.so资源文件的过滤规则
  },
  "targets": [ //界说的Target,开发者能够定制不同的Target
    {
      "name": "default",
      "runtimeOS": "HarmonyOS"
    },
    {
      "name": "ohosTest",
    }
  ]
}

app.json5

{
  "app": {
    "bundleName": "com.example.myapplication", //标识运用的Bundle称号,用于标识运用的唯一性。该标签不可缺省。
    "vendor": "example", //标识对运用开发厂商的描绘。
    "versionCode": 1000000, //标识运用的版别号,该标签值为32位非负整数。
    "versionName": "1.0.0", //标识运用版别号的文字描绘,用于向用户展示。
    "icon": "$media:app_icon", //运用的图标,标签值为图标资源文件的索引
    "label": "$string:app_name", //运用的称号,标签值为字符串资源的索引
    /*
    标识运用运转需要的API目标版别的类型,采用字符串类型表示
    Canary:受限发布的版别。
    Beta:公开发布的Beta版别。
    Release:公开发布的正式版别。
    */
    "apiReleaseType": "Release", 
    "debug": false //标识运用是否可调试,该标签由IDE编译构建时生成。
  }
}

module.json5

{
  "module": {
    "name": "entry", //当时Module的称号
    "type": "entry", //当时Module的类型
    "description": "$string:module_desc", //描绘
    "mainElement": "EntryAbility", //当时Module的入口UIAbility称号或许ExtensionAbility称号
    //当时Module可运转设备类型
    "deviceTypes": [
      "phone",
      "tablet"
    ],
    "deliveryWithInstall": true, //当时Module是否在用户自动装置的时分装置
    "installationFree": false, //当时Module是否支持免装置特性
    "pages": "$profile:main_pages", //当时Module的profile资源
    //当时Module中UIAbility的装备信息
    "abilities": [
      {
        "name": "EntryAbility", //当时UIAbility组件的称号
        "srcEntry": "./ets/entryability/EntryAbility.ts", //入口UIAbility的代码途径
        "description": "$string:EntryAbility_desc", //描绘
        "icon": "$media:icon", //当时UIAbility组件的图标
        "label": "$string:EntryAbility_label", //当时UIAbility组件对用户显示的称号
        "startWindowIcon": "$media:icon", //UIAbility组件发动页面图标资源文件的索引
        "startWindowBackground": "$color:start_window_background", //当时UIAbility组件发动页面布景色彩资源文件的索引
        "exported": true, //当时ExtensionAbility组件是否能够被其他运用调用
        //当时UIAbility组件或ExtensionAbility组件能够接收的的特征集,为数组格式。
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "action.system.home"
            ]
          }
        ]
      }
    ]
  }
}

5.总结

Ok,本篇文章带你大致浏览了HarmonyOS开发入门所要预备的环境以及熟悉了DevEco Studio的开发界面,了解了项目工程目录下的装备文件内容,期望对你有帮助,假如你们有疑问或许想说的也欢迎在论区或私信留言捏❤️❤️。

6.参考链接

本文的参考链接:

  • 装备编译构建信息
  • module.json5装备文件
  • app.json5装备文件

想要了解更多关于HarmonyOS开发可访问:

  • HarmonyOS开发文档
  • 示例代码