去此网站下载开发工具
https://developer.huawei.com/consumer/cn/download/
1.按照教程安装,并启用中文,下载git(软件内置一个"下载并安装"按钮,安完后会自动识别安装目录下的git.exe,之前已安装的,填写已安装的git.exe路径)
2.按照教程创建示例项目
3.创建完毕后,右边小铃铛提示windowsDefener限制了一些东西,点击提示语下面的Automatically自动运行脚本,添加相关路径到wd白名单
The IDE has detected Microsoft Defender with Real-Time Protection enabled. It might severely degrade IDE performance. It is recommended to add the following paths to the Defender folder exclusion list:
C:\MyCode\HarmonyOS
C:\Program Files\Huawei\DevEco Studio\tools\hvigor
C:\Users\lvvne\.hvigor
C:\Users\lvvne\AppData\Local\Huawei\DevEcoStudio5.0
Choose "Automatically" to run a script that excludes these paths (note: Windows will ask for administrative privileges). Choose "Manually" to see Defender configuration instructions.
4.执行后提示出错看日志
Microsoft Defender configuration script failed. Please look for "WindowsDefenderChecker" records in the log.
5.打开log文件后找到一个“未安装适用于 Linux 的 Windows 子系统。可通过运行 “wsl.exe --install” 进行安装”的错误,能看懂的就它了,执行一下,打开命令窗口执行后安装了wsl.exe --install
6.关掉再打开试一试,以管理员身份运行,又点了一下Automatically按钮,还是报4
7.不管了,去windows安全中心-病毒和威胁防护-病毒和威胁防护设置-排除项-添加排除项-文件夹把3里的文件夹加上
8.继续看教程,教程里让用真机运行看一下效果,没有真机,没有真机调试权限,所以不管,网页教程左上角搜索“创建模拟器”创建一个
9.教程刚让打开Tools > Device Manager,就跳出来有新的镜像需要下载,下载一个,第一个即可,等待下载完成,这一步时间相当长看起来,文件大小1.94GB。。。
10.继续看教程,教程让创建一个设备,创建好了点设备后面的绿色三角启动设备,再在项目里点击右上角绿三角启动项目就可以,模拟器会自动打开一个叫lable的软件显示hello world,成功了!
11.项目的入口文件在HarmonyOS/entry/src/main/ets/entryability/EntryAbility.ets
项目的页面文件在HarmonyOS/entry/src/main/ets/pages/index.ets
入口文件上面引用了几个包,第一个方法onCreate会被首先执行。在onCreate中可以设置软件启动时,使用哪种主题:白天夜间还是不指定,也可以读取系统默认值this.context.config.colorMode。说明:在 UIAbility 的生命周期中,onWindowStageCreate 方法位于 onCreate 和 onForeground 之间
12.onWindowStageCreate方法会加载页面文件,从这里,可以看到Index.ets文件的路径
13打开Index.ets文件,可以看到顶部定义了@Entry装饰器(就叫这个名字)代表当前文件为入口文件,@Component装饰器代表当前页面是一个组件,下面有一个@State,叫message的状态变量,启动时显示的就是这里的内容,下面有一个build方法,里面有一个RelativeContainer布局,类似的还有Column布局,每个元素占一行,向下堆叠,布局中有一个Text元素,紧跟的括号里是显示内容,后面的.是元素的一些属性,比如id,比如fontSize字体大小fontWeight字体样式,最神奇的是alignRules,好像只能使用这种方式定义上下左右对齐方式.
14.想要加一个按钮修改显示的文字,首先需要创建一个方法修改message的值
updateMessage() {
if (this.message == "hlhlhl~~~") {
this.message = "oioioi!!!";
}else{
this.message = "hlhlhl~~~";
}
}
15.把布局改成Column,在Column后的大括号内,Text元素的最后一个属性之后加一个Button元素
build() {
//显示方式:行显示,也即每个元素占一行
Column() {
//
Text(this.message)
.id('HelloWorld')
.fontSize(99)
.fontWeight(FontWeight.Lighter)
.alignRules({
center: { anchor: '__container__', align: VerticalAlign.Center },
middle: { anchor: '__container__', align: HorizontalAlign.Center }
})
Button("摇摆杨").onClick(() => {
this.updateMessage();
})
}
.height('100%')
.width('100%')
}
16不知为何选不了模拟器了,不管他,右上角运行旁边选择Previewer,点击运行,再选择一个设备形态,就可以在右边看到结果了,点击文字下面的按钮,上面的文字就会在oioioi!!!和hlhlhl~~~之间来回变.