【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。 原创

StackFarmGQ
发布于 2023-6-8 18:05
浏览
0收藏

前言:

很多伙伴对于Openharmony北向开发和南向开发感到困惑。南向开发就是硬件开发,详情了解可以看博主的另一篇帖子hi3861主板开发【内核编译】:编写一个hello world程序。这里博主就和大家谈谈北向开发。北向开发就是软件应用开发,基于ArkTS语言开发。编译器是DevEco Studio。下面就让小编给你们讲解一下编译器安装和具体情况。

DevEco Studio的安装:

首先我们登录官网:​​https://developer.harmonyos.com/cn/develop/deveco-studio#download。​

【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。-鸿蒙开发者社区

这里需要注意的是你需要根据你的电脑进行安装相应的版本。如果你是win系统你可以下载Windows(64-bit),如果你是Macos请下载Mac(ARM)。(具体根据自己的系统架构来区分下载版本)。

注:如果你的mac是M1或者M2芯片,请不要下载X86版本!请不要下载X86版本!请不要下载X86版本!

下载好之后点击安装,就会出现以下画面(小编用的是mac系统可能会有点不一样但大部分是一样的):

将其拖进Application就行了。

然后我们打开软件。

就会出现以下内容:

【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。-鸿蒙开发者社区

在这里把存储地址选好然后点next。

【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。-鸿蒙开发者社区

继续点next就好了。

【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。-鸿蒙开发者社区

完成后点finish就行了。

【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。-鸿蒙开发者社区

这里点击agree就行了。

【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。-鸿蒙开发者社区

进入DevEco Studio配置页面,首先需要进行基础配置,包括Node.js与Ohpm的安装路径设置,选择从华为镜像下载至合适的路径。

【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。-鸿蒙开发者社区

点击next进行下一步。

【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。-鸿蒙开发者社区

一直点next就行了。

【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。-鸿蒙开发者社区

完成后点击finish就可以了。

【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。-鸿蒙开发者社区

这样我们的编译器就安装好了。

【Harmony OS】开发

1.开发工具:DevEco Studio。

2.开发语言:ArkTS,UI框架ArkUI

3.工程级目录:

【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。-鸿蒙开发者社区

1.AppScope中存放应用全局所需要的资源文件。

2.entry是应用的主模块,存放HarmonyOS应用的代码、资源等。

3.oh_modules是工程的依赖包,存放工程依赖的源文件。

4.build-profile.json5是工程级配置信息,包括签名、产品配置等。

5.hvigorfile.ts是工程级编译构建任务脚本,hvigor是基于任务管理机制实现的一款全新的自动化构建工具,主要提供任务注册编排,工程模型管理、配置管理等核心能力。

6.oh-package.json5是工程级依赖配置文件,用于记录引入包的配置信息。

注:在AppScope,其中有resources文件夹和配置文件app.json5。AppScope>resources>base中包含element和media两个文件夹

1.其中element文件夹主要存放公共的字符串、布局文件等资源。

2.media存放全局公共的多媒体资源文件。

【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。-鸿蒙开发者社区

4.模块级目录:

1.entry>src目录中主要包含总的main文件夹,单元测试目录ohosTest,以及模块级的配置文件。

1.main文件夹中,ets文件夹用于存放ets代码,resources文件存放模块内的多媒体及布局文件等,module.json5文件为模块的配置文件。

2.ohosTest是单元测试目录。

3.build-profile.json5是模块级配置信息,包括编译构建配置项。

4.hvigorfile.ts文件是模块级构建脚本。

5.oh-package.json5是模块级依赖配置信息文件。

2.进入src>main>ets目录中,其分为entryability、pages两个文件夹。

1.entryability存放ability文件,用于当前ability应用逻辑和生命周期管理。

2.pages存放UI界面相关代码文件,初始会生成一个Index页面。

【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。-鸿蒙开发者社区

3.resources目录下存放模块公共的多媒体、字符串及布局文件等资源,分别存放在element、media文件夹中。

4.app.jason5

{
  "app": {
    "bundleName": "com.example.myapplication",
    "vendor": "example",
    "versionCode": 1000000,
    "versionName": "1.0.0",
    "icon": "$media:app_icon",
    "label": "$string:app_name"
  }
}

1.AppScope>app.json5是应用的全局的配置文件,用于存放应用公共的配置信息。

其中配置信息如下:

1.bundleName是包名。
2.vendor是应用程序供应商。
3.versionCode是用于区分应用版本。
4.versionName是版本号。
5.icon对应于应用的显示图标。
6.label是应用名。

5.module.json5

1.entry>src>main>module.json5是模块的配置文件,包含当前模块的配置信息。

{
  "module": {
    "name": "entry",
    "type": "entry",
    "description": "$string:module_desc",
    "mainElement": "EntryAbility",
    "deviceTypes": [
      "phone"
    ],
    "deliveryWithInstall": true,
    "installationFree": false,
    "pages": "$profile:main_pages",
    "abilities": [
      {
        "name": "EntryAbility",
        "srcEntry": "./ets/entryability/EntryAbility.ts",
        "description": "$string:EntryAbility_desc",
        "icon": "$media:icon",
        "label": "$string:EntryAbility_label",
        "startWindowIcon": "$media:icon",
        "startWindowBackground": "$color:start_window_background",
        "exported": true,
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "action.system.home"
            ]
          }
        ]
      }
    ]
  }
 }

2.其中module对应的是模块的配置信息,一个模块对应一个打包后的hap包,hap包全称是HarmonyOS Ability Package,其中包含了ability、第三方库、资源和配置文件。其具体属性及其描述可以参照下表。

name

该标签标识当前module的名字,module打包成hap后,表示hap的名称,标签值采用字符串表示(最大长度31个字节),该名称在整个应用要唯一。

type

表示模块的类型,类型有三种,分别是entry、feature和har。

srcEntry

当前模块的入口文件路径。

description

当前模块的描述信息。

mainElement

该标签标识hap的入口ability名称或者extension名称。只有配置为mainElement的ability或者extension才允许在服务中心露出。

deviceTypes

该标签标识hap可以运行在哪类设备上,标签值采用字符串数组的表示。

deliveryWithInstall

标识当前Module是否在用户主动安装的时候安装,表示该Module对应的HAP是否跟随应用一起安装。- true:主动安装时安装。- false:主动安装时不安装。

installationFree

标识当前Module是否支持免安装特性。- true:表示支持免安装特性,且符合免安装约束。- false:表示不支持免安装特性。

pages

对应的是main_pages.json文件,用于配置ability中用到的page信息。

abilities

是一个数组,存放当前模块中所有的ability元能力的配置信息,其中可以有多个ability。

6.main_pages.json

{
  "src": [
    "pages/Index"
  ]
}

1.src/main/resources/base/profile/main_pages.json文件保存的是页面page的路径配置信息,所有需要进行路由跳转的page页面都要在这里进行配置。

运行一个hello world:

下面我们新建一个项目:

【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。-鸿蒙开发者社区

点击next:

【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。-鸿蒙开发者社区

继续点击next

【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。-鸿蒙开发者社区

等待其下载好。

【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。-鸿蒙开发者社区

点击tools里面的Device Manager。

【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。-鸿蒙开发者社区

点击右下角按钮:

【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。-鸿蒙开发者社区

点击next。

【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。-鸿蒙开发者社区

一般这边会出现下载图标,这里博主下载过了所以没有出现。下载好之后直接点击next。

【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。-鸿蒙开发者社区

下载完成之后点击绿色三角形标就行了。这样模拟机就可以运行了。

这样就算启动好了。

【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。-鸿蒙开发者社区

然后我们点击右上角启动预制的hello world代码。

这样就算完成了。

总结:

如果还有错误的地方欢迎指出并纠正。谢谢大家!


©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2023-6-8 18:30:11修改
2
收藏
回复
举报
回复
    相关推荐