这里先说明一点,如果你对Android应用开发很熟悉,那么做Harmony应用开发也可以驾轻就熟,只不过在此之前你需要知道一些关于Harmony应用开发的相关知识。
那么问题就来了,我为什么会知道这些相关的知识点呢?因为踩过一遍坑了,说多了都是泪,唯有文字记录,当然了不同应用开发会踩不同的坑,这是无可厚非,开发的越多知道的就越多,不知道的也越多,因此本文会持续更新。闲话少说,我们进入正题。
首先要了解Harmony应用开发的开发工具DevEco Studio
。
首先你可以下载DevEco Studio
,下载地址,安装DevEco Studio
,参看这个视频:演示视频,观看这个视频可能需要华为账号,如果没有的话你先注册一个,关于DevEco Studio
的版本也是持续更新的,它是基于IDEA
进行二次开发的,如果Android Studio
一样。当前最新的版本是DevEco Studio 3.1
。
做Harmony应用开发如果在真机上时,我们需要了解的是鸿蒙手机的版本,这里的版本不是鸿蒙几点零版本,而是指的是开发API版本,这一点就很重要了,至于为什么,后面我再细说,那么我们怎么查看鸿蒙手机的API版本呢?通过环境变量配置工具就可以了。
首先进入系统的环境变量页面,在系统变量下新增一个变量,如下图所示:
变量名:HUAWEI_SDK
变量值:C:\Huawei\Sdk\hmscore\3.1.0\toolchains
需要注意的是你所安装的编辑器路径,上图是我的路径,你要使用自己的路径,其中3.1.0表示的是sdk的版本,最新的就是3.1.0。配置好之后点击确定,然后在系统变量下找到Path
变量,点击编辑。
然后点击新建,输入%HUAWEI_SDK%
,点击确定,一路确定。下面我们Win + R
打开运行窗口,输入cmd
,打开命令行窗口。
输入hdc
出现如图所示,说明环境变量配置成功了,只不过现在你的电脑没有连接鸿蒙设备,所以显示No any target
,下面我们打开鸿蒙手机的开发者模式,然后通过数据线连接电脑,如果手机上出现一个调试弹窗,勾选上,然后你再输入hdc -v。
查看手机API版本,首先进入hdc shell模式,如同adb shell
hdc shell
查看手机的API版本
getprop hw_sc.build.os.apiversion
查看手机的版本类型,一般都是Relase。
getprop hw_sc.build.os.releasetype
通过查询可以得知我的HUAWEI P30是API 6的Release版本。
如果上面的指令查不到,你可以使用
getprop persist.sys.ohc.apiversion
和
getprop persist.sys.ohc.releasetype
这是在高版本API的情况下使用的指令,如果你觉得麻烦那就这样。
if [ -z $(getprop persist.sys.ohc.apiversion) ];then
echo $(getprop hw_sc.build.os.apiversion)
echo $(getprop hw_sc.build.os.releasetype)
else
echo $(getprop persist.sys.ohc.apiversion)
echo $(getprop persist.sys.ohc.releasetype)
fi
在hdc shell之后,你把这段代码复制过去,然后回车,就会看到6和Release。
上面我们费尽心思去获取鸿蒙手机的API版本的目的是为了什么呢?
编译SDK版本 | API版本 | 开发语言 |
---|---|---|
3.1.0 | 9 | ArkTS |
3.0.0 | 8 | ArkTS、JS |
3.0.0 | 7 | JS、Java |
2.2.0 | 6 | JS、Java |
2.1.0 | 5 | JS、Java |
2.0.0 | 4 | JS、Java |
通过上表我们可以了解到DevEco Studio的编译SDK版本,支持的API版本和开发语言,至于更早的API版本其实知不知道没有太大关系,因为现在基本上最低都是Harmony2.0了,普遍是3.0,比如我目前用的测试机,HUAWEI P30 就是之前从2.0升到3.0,不知道还有没有机会升级到4.0。
目前HarmonyOS属于高速发展的阶段,每一个版本的更新内容都很多,一些功能也会逐步开放,如果如果你有条件的话,弄一个高版本API的手机,会让你开发起来事半功倍,因为你现在看到的Harmony官网主推的是ArkTS,兼容性也会越来越好,未来可能就是ArkTS是唯一支持语言了,而且论坛上的信息最新的也是ArkTS,至于Java相关的都是21年的了,而且很多不维护了。首先你要知道你的手机API版本,不然你到时候看了半天ArkTS,然后发现调试的时候用不了,还是得用Java或JS,这就是我说的坑。
开发语言首先要看你的兼容性了,这里就有一个坑,那就是API版本兼容的问题,比如你买了一个Mate 60 Pro遥遥领先,虽然它是HarmonyOS4.0
,然后你通过hdc查看API版本可能会是 8 ,而不是 9 。而我的测试机P30是 6 ,那么如果我创建一个API 9的工程进行开发,是无法在P30上进行真机调试的,因为版本不兼容,所以我就用不了ArkTS语言进行开发。就需要创建符合手机API版本的工程来进行开发,比如API 6,如下图所示。
高版本API的鸿蒙手机是可以在低版本API工程上进行编译的,就是我现在创建一个API 6 的工程,然后真机调试同事的Mate 40 Pro,是可以的。
当我们创建好一个工程之后,要想运行,首先要做的就是配置Debug相关信息,这个是和iOS有点类似,你可以点击DevEco Studio
,File → Project Structure
。如果你是一个新项目的话,这里可能就会需要你登陆一下华为账号,然后你在能进入Signing Configs进行本地Debug的证书配置。
当这个页面出现下面的信息之后你就可以在本地Debug运行调试了。
你可以勾选上Automatically generate signature
项目,让编辑器可以在之后的开发中自动根据你的更改内容同步更改这些配置。
同时在编译安装过程中,DevEco Studio默认每一次都会卸载你之前安装的应用然后再安装,之前的应用数据不会保留,如果你不希望这样。可以进入Run → Edit Configurations...
。
勾选上Keep Application Data
,这样就会覆盖安装应用了。