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开发也离不开华为,来到华为开发者联盟主页 并挑选注册账号,运用手机号或许邮箱注册。 在注册完成后能够去个人中心完成开发者认证解锁更多功用。在拥有一个开发者账号之后咱们就能够去预备下载HarmonyOS的开发东西DevEco Studio。
下载装置DevEco Studio并装备环境
在DevEco Studio下载界面挑选自己的操作系统下载对应的版别即可,当时Studio的最新版别为3.1.1(如下图所示) 下载完成今后装置过程和AndroidStudio装置过程是一样的
装置完成后咱们发动DevEco Studio并进行根底装备,包含Node.js与Ohpm的装置途径设置、SDK下载,挑选从华为镜像下载至适宜的途径,下载完成后狂点Next就完事了。
3.DevEco Studio界面介绍
在这一切都完成今后咱们就进入了DevEco Studio,由于DevEco Studio也是powered by the IntelliJ
所以在很多地方越看越眼熟
创立项目
首要咱们先看看创立工程的界面
DevEco Studio: Android Studio:
挑选项目模板:
DevEco Studio:
Android Studio:
项目内界面
现在咱们创立好界面,进入到了IDE,整个界面大致能够分红4个部分,上面3部分分别是工程目录区、代码编辑区、预览区,下面一个部分就是告诉栏(logcat、run、版别操控之类的),具体的就不打开说了和Android开发界面就是无缝切换的。
DevEco Studio: Android Studio:
4.工程目录介绍
接下来咱们要点介绍一下IDE工程目录区中的具体内容,整个工程目录和Android中的一样能够拆分红工程级和模块级
工程级目录
DevEco Studio:
Android Studio: 在DevEco Studio工程级目录中咱们能够看到以下几个元素:
-
AppScope中寄存运用大局所需要的资源文件,其间
element
文件夹首要存放公共的字符串、布局文件等资源,media
寄存大局公共的多媒体资源文件。 - entry是运用的主模块,寄存HarmonyOS运用的代码、资源等。
- oh_modules是工程的依靠包,寄存工程依靠的源文件。
- build-profile.json5是工程级装备信息,包含签名、产品装备等。
- hvigorfile.ts是工程级编译构建使命脚本,hvigor是根据使命办理机制完成的一款全新的自动化构建东西,首要提供使命注册编列,工程模型办理、装备办理等核心能力。
- oh-package.json5是工程级依靠装备文件,用于记录引入包的装备信息。
模块级目录
DevEco Studio:
Android Studio: 在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开发文档
- 示例代码