【HarmonyOS开发】【环境搭建】【代码结构讲解】运行第一个程序hello world。 原创
前言:
很多伙伴对于Openharmony北向开发和南向开发感到困惑。南向开发就是硬件开发,详情了解可以看博主的另一篇帖子hi3861主板开发【内核编译】:编写一个hello world程序。这里博主就和大家谈谈北向开发。北向开发就是软件应用开发,基于ArkTS语言开发。编译器是DevEco Studio。下面就让小编给你们讲解一下编译器安装和具体情况。
DevEco Studio的安装:
首先我们登录官网:https://developer.harmonyos.com/cn/develop/deveco-studio#download。
这里需要注意的是你需要根据你的电脑进行安装相应的版本。如果你是win系统你可以下载Windows(64-bit),如果你是Macos请下载Mac(ARM)。(具体根据自己的系统架构来区分下载版本)。
注:如果你的mac是M1或者M2芯片,请不要下载X86版本!请不要下载X86版本!请不要下载X86版本!
下载好之后点击安装,就会出现以下画面(小编用的是mac系统可能会有点不一样但大部分是一样的):
将其拖进Application就行了。
然后我们打开软件。
就会出现以下内容:
在这里把存储地址选好然后点next。
继续点next就好了。
完成后点finish就行了。
这里点击agree就行了。
进入DevEco Studio配置页面,首先需要进行基础配置,包括Node.js与Ohpm的安装路径设置,选择从华为镜像下载至合适的路径。
点击next进行下一步。
一直点next就行了。
完成后点击finish就可以了。
这样我们的编译器就安装好了。
【Harmony OS】开发
1.开发工具:DevEco Studio。
2.开发语言:ArkTS,UI框架ArkUI
3.工程级目录:
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存放全局公共的多媒体资源文件。
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页面。
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:
下面我们新建一个项目:
点击next:
继续点击next
等待其下载好。
点击tools里面的Device Manager。
点击右下角按钮:
点击next。
一般这边会出现下载图标,这里博主下载过了所以没有出现。下载好之后直接点击next。
下载完成之后点击绿色三角形标就行了。这样模拟机就可以运行了。
这样就算启动好了。
然后我们点击右上角启动预制的hello world代码。
这样就算完成了。
总结:
如果还有错误的地方欢迎指出并纠正。谢谢大家!