初识HarmonyOS
每次开始一个新的技术学习的时候,总会有一个声音在我心中回荡。这个技术,我该不该学,这个技术学了有什么作用呢?这个技术学习了会带给我什么?还有最重要的一点,这个技术学到哪里呢?
所以,每次学习新的技术的时候,总会踌躇满志,踏步不前。但是,既然作为IT的一员,IT技术是时时刻刻都在进行变化,如果,你现在不学习,后面自己可能就要被淘汰,小编很多伙伴也是如此,从去年的裁员,一直到现在都没有找到工作,每天都在找工作,然而,每次结果都很不好。除去大环境的情况,还有就是AI的兴起,唉,只能说,IT行业现在不卷的人也得被迫进入卷的状况了。
感觉废话说的挺多的,接下来,咱们进入今天的主题——HarmonyOS。
在学习HarmonyOS之前,我想问大家一个问题,有人觉得javascript是一门简单的语言吗?有人觉得javascript这门语言没有前途吗?
接下来,让你们看看js超集的超集是什么玩意?所以,每一个技术语言出来的时候,肯定有它存在的意义。
让我们高呼,“js超进化” ——》arkTs。
学前准备(不推荐看,因为,短)
俗话说,“工欲善其事,必先利其器。” 学习一门新的技术,必须要有循序渐进的过程。
不开心了,不想说了,直接安排传送门:
主要按顺序看看 注册成为开发者,配置安装DevEco Studio, 创建应用
后续的讲解,都是按照已经创建好应用而言的进行描述。
项目目录
注意: 下面的内容都是已经把学前准备整好的情况下。你才能进行学习哦!用的语言是js超进化的语言arkTs进行开发
哈哈,是不是被第一个标题给骗了?我看看有多少人被骗的。评论区说一下啊
上面给咱们一个提醒哦!所以我们在学习的时候,不要觉得短或者简单就不看了,或许,越简单,里面包含的东西越多。
先上图:
上面图片就是创建一个简单的项目目录。(忽略feature目录)
接下来,咱们看一下每层分开之后的目录,以及对应的文件都代表什么意思?
.hvigor .idea
这两个文件不需要管,初始创建项目,可能不存在,没有也不必担心。咱们看一下这两个文件夹主要包括什么呢?
随便打开一个文件,咱们可以发现,.hvigor文件夹其实是我们编译对应的文件所要输出的一些文件路径。所以,当咱们后面开发的时候,使用编译器进行预览的时候,就会出现对应的文件。而.idea文件夹包括的都是编译器的配置文件,所以如果后面多人进行开发的时候,这个文件一定不要放入git里面,不然,这个文件每到一个人的电脑上,就要走别人电脑的配置,会频繁更改该文件。没必要。
AppStore
根据目录名称,咱们可以知道这个是应用商店对于该项目配置资料文件夹。
既然是应对应用商店使用的。那么应用商店主要看那些东西呢?
细心的同学可以发现,有一个app.json5 文件,这个文件不同于其他文件,因为咱们经常遇到的文件后缀有json,js,ts,java,txt等,但是这个json5为后缀的,是不是没怎么见过?
小编之前也没有见过,不过既然包含json,那它肯定符合json的一些特性,但又肯定和json的特性有些不一样。
话不多说,咱们直接看一下app.json5这个文件里面都有啥,表示的是什么意思
{
// 版本号,应用名称(应用管理界面展示),应用icon,版本号等
"app": {
// 这里是应用名称,主要是配置应用的一系列的东西,设置应用中使用的到, 必须以字母开头,最小7,最大127, 单独命名不可取
"bundleName": "com.example.xiaozhang",
// 区别是app应用还是元服务(华为手机,我的卡片展示),可不设,默认值是app
"bundleType": "app",
// 对应用开发商的标识,可不设
"vendor": "暂无",
// 表示版本号,最大不能超过2的31次方
"versionCode": 1000000,
// 展示给客户看的版本号
"versionName": "1.0.0",
// 应用设置看到的icon
"icon": "$media:shoucang",
// $media 指向AppScope/resources/base/media
// 应用设置看到的名称
"label":"$string:app_name"
}
}
上面就是app.json5 文件最基本的配置了。细心的同学可能发现了一些不一致的地方,这中类型的文件,可以做备注。
json类型的文件只能是以下的表示样式,不然就会提示语法错误。
{
"a": "b",
// 这种备注肯定会爆红,因为在json格式的文件中,是不能进行注释的。
}
还有一点,就是,$media和$string 这两个他们取值是取得哪里的。就是咱们AppStore 目录下面的base下面的element和media,这两个就是这样,所以,前期也别想多增加其他的东西,如果后面用的东西比较多,可以在去深究这一块的内容。
除去上面app.json5文件中的部分内容,它还可以增加以下的属性:
description: 描述信息, 最长255字节的字符串。可省略
debug:
下面还有一些,这里就不一一列出来了,上面基本就够了。
接下来,咱们就要进入主入口了。
entry (一般一个项目只会有一个这个目录)
项目主入口。
先看目录图片:
看完上面这个图片,有何感想?
小编第一次看的时候,第一感觉就是,这是什么啊,怎么感觉有些东西在AppStore里面见过啊。
哎,你的感觉没有错。接下来,跟着小编所说的,咱们往下看一看那些是主要的,那些是没有用的。
entry下面只有src目录和一些json5结尾的文件。咱们先看对应的单个文件都有什么内容
build-profile.json5
{
// 模块级别的配置编译设置
"apiType": 'stageMode',
"buildOption": {
},
// 表示运行在那些环境上
"targets": [
// 第一个选项就是默认,HarmonyOS环境运行
{
"name": "default",
"runtimeOS": "HarmonyOS"
},
// 测试环境
{
"name": "ohosTest",
}
]
}
oh-package.json5
// 这里表示主入口,也就是说,这个文件就是告诉编译器,我这个项目的入口在这个包下面。其他的和前端package.json类似,
{
"name": "entry",
"version": "1.0.0",
"description": "Please describe the basic information.",
"main": "",
"author": "",
"license": "",
"dependencies": {}
}
由于这里面main的值是空,那么,思考一下,它是怎么知道这个文件夹就是主入口的呢?
hvigorfile.ts
// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently.
// 用于编译构建行为的脚本。它内置在构建插件中,目前无法修改。
export { hapTasks } from '@ohos/hvigor-ohos-plugin';
很明显,这个文件就是给编译器看需要那些插件啥的,方便打包的时候,打到项目中。
咱们看完单个文件之后,再看看src下面有什么呢?
src
main
咱们先看一下main目录下面都有什么:
很明显,main文件夹下面有两个文件夹和一个文件。
ets文件夹是咱们开发源码放置位置
ets下面还分了两个文件夹,这两个文件夹的作用都有啥呢?
entryability这个是一HarmonyOS提供的ui入口文件,这个文件里面可以写对应的ui声明周期方法。
pages 是咱们具体的页面,这里面咱们就要使用到‘js的超进化’ArkTs进行开发了。
那对于项目而言,它是怎么加载的呢?
首先,项目会去加载entry下面的main文件夹下面的EnterAbility.ts文件,然后,该文件会根据你在声明周期上面所写的文件路由,去pages找对应的文件。然后渲染到我们的客户端。
resources 文件夹,是这个主入口模块所需要的一些资源文件。这里的resources是不是觉得比AppStore多一些,是的,多了一个profile文件夹,这个文件夹,主要的作用就是定义这个木块所用到的配置,例如:对应的路由文件等。
ohosTest
这个目录是记载的测试文件,对于测试文件,咱们暂时先不说,先了解上面的主文件即可。
总结
上面也只是简单说了一些HarmonyOS的项目目录,可能有些说的不是很清楚,没关系,咱们后面会逐一说明白它的用途的。
这里如果等不及的同学,可以先去看看鸿蒙的开发文档,可以自己先去了解一下。如果后面小编有说的不对的地方,可以在相应的博文下面进行评论。