hdc(HarmonyOS Device Connector)是HarmonyOS为开发人员提供的用于调试的命令行工具,通过该工具可以在windows/linux/mac系统上与真实设备或者模拟器进行交互。如果是 Android 的从业人员一定会想到一个熟悉的Android SDK 里面的工具,ADB。HDC 就是跟ADB一样的东西。它的命令跟ADB 的命令差异比较大,但是思想是类似的。所以Android 这边的同事熟悉一下命令就能很快上手了。下面我通过一个案例hdc 连接阿里的远程真机来给大家演示一下 HDC 工具的使用。由于我使用的是 mac。所以我就讲一下 mac 这边的操作方式。windows 的方式更加简单一些,我在下面标注
环境准备
通过OpenHarmony sdk获取,hdc在sdk的toolchains目录下。OpenHarmony sdk 的获取方式可以看一下我上一篇文章,在 DevEco Studio里面就可以下载。
# 怎么使用 ArkUI-X生成 Android 和 IOS 的工程代码
下载好以后,Windows 这边直接自己 SDK 所在的目录就行。如果找不到,打开 DevEco Studio里面的 SDK 栏目下面去看一下具体的地址,找到具体的目录打开 hdc.exe即可
Mac 的默认安装路径是资源库下面的 Huawei 文件夹里面。由于我的电脑之前切换到 bash 了,所以我的环境变量配置文件是 bash_profile。如果你还是用的 zsh,那么你配置一下你的 zshrc文件就好。下面是环境变量配置。配完记得 source 生效一下
export PATH="/Users/用户名 xxx/Library/Huawei/Sdk/hmscore/3.1.0/toolchains"
我使用的是iTerm2,七七八八的都配置过了。非常推荐大家使用。mac 自带的命令行也可以
连接准备
打开阿里的远程真机搜索 mate 60 找到我们的华为机器。阿里远程真机里面有市面上基本所有的机型,也非常适合大家调试线上问题。找不到地方和使用方式的的在评论区问我吧。然后我们选择立即使用连上 mate 60 pro
点击开始 adb 调试,这边就提供了这台机器的 adb 的链接方式。正常我们远程连接是ip+端口的。阿里这边应该是用了 nginx 一类的转发工具把 ip 转成域名了。这样也没问题也可以连接。
连接设备
这里照旧命令行学习先用一下两个命令看看我们 HDC 工具
scss
hdc -h / hdc help //查看帮助相关信息
arduino
hdc -v / hdc version //查看 hdc 版本
查看设备
arduino
hdc list targets //查看设备信息
这里会列出你所有已经链接过的设备信息,如果没有链接过就不用管这个命令
arduino
hdc tconn ip:port //连接设备 执行后续的 shell 命令 需要 执行hdc shell
如果是自己的设备,通过 hdc tmode usb
切换成 USB 模式就可以连接自己本地的设备或者模拟器了,切换回来就用hdc tmode port 8710
配置网络连接模式 讲点网络方面的知识,如果你链接的的是局域网的设备,那么就设备的 ip+端口就好了。如果不在局域网内,那要使用公网的 ip+端口才能访问了
arduino
hdc -t *key* shell //连接具体设备进入shell 环境,不需要hdc shell
具体命令演示
获取我们设备的 api 版本
查看设备 log
arduino
hilog //我们已经进入 shell 环境直接执行 hilog 就好 不需要 hdc hilog 具体日志级别、对应应用日志那些请看官网,时间有限就不介绍了
安装安装包
bash
install /Users/用户名 xxx/Desktop/demo.hap
这里我便宜买的阿里的远程真机资源过期了。。。没办法给大家看具体结果了
总结
到这里就讲完了,具体的更多的操作命令参考官网,顺便说一句。明明系统限制了手机的sdk 版本不能低于应用的 sdk 版本,但是貌似真机现在可以这么玩。具体更多命令的地址我丢到下面