1.2.3 HDC工具配置
HDC(HarmonyOS Device Connector)是HarmonyOS SDK自带的命令行工具,可以与设备进行通信,是一种客户端/服务器程序。在使用DevEco Studio时,一些图形化的操作按钮背后,其实封装了对应的 HDC 命令,比如应用程序的编译、部署和调试等,其实都对应了HDC。
在开发过程中,有时需要手动执行对应的 HDC 进行调试,为了保证在控制台的任意目录下都可以方便地使用HDC,我们将HDC所在的目录配置到系统的环境变量中。
HDC 的本地路径在 C:\<用户>\Administrator\AppData\Local\Huawei\Sdk\toolchains,如图1-23所示。其中,<用户>为安装SDK时登录的Windows用户。
图1-23 HDC的本地路径
在“我的电脑”图标上点击鼠标右键,选择“属性”→“高级系统设置”→“高级”→“环境变量”选项,在系统变量中找到“Path”,点击“编辑”按钮。然后,新建一条环境变量,将上面的路径配置到Path系统变量中。点击“确定”按钮,完成配置,如图1-24所示。
图1-24 环境变量配置
打开“运行”窗口,在窗口中输入 hdc help命令,如果可以正常输出信息,那么说明HDC的环境配置完成,如图1-25所示。
图1-25 HDC测试
下面来看HDC的常用命令,掌握这些命令后,可以提高调试应用的效率。
(1)hdc help:查看帮助,可以查看HDC的命令参数。
(2)hdc list targets:列出已连接的设备。该命令的运行结果如图 1-26所示。
(3)hdc version:查看当前的 HDC 版本号。该命令的运行结果如图 1-27所示。
图1-26 hdc list targets命令的运行结果
图1-27 hdc version命令的运行结果
(4)hdc tconn HOST[:PORT]:连接在TCP端口模式下的设备。
(5)hdc file send LOCAL REMOTE:发送文件。其中,LOCAL为本地文件的全路径,REMOTE 为文件名的全路径。例如,我们在电脑的 D 盘上新建一个文件test.txt,输入hdc file send D:\test.txt/sdcard/test.txt命令将其发送到手机SD卡的根目录。该命令的运行结果如图1-28所示。
图1-28 hdc file send命令的运行结果
出现“1 file pushed”,说明文件已经被复制到了设备的指定位置,如图1-29所示。
(6)hdc file recv REMOTE LOCAL:接收文件。它的使用方式和发送文件是一样的,用来从设备上读取文件到本地。
(7)hdc shell:打开一个 shell 会话。进入会话后,可以在设备上执行shell命令。该命令的运行结果如图1-30所示。
图1-29 发送到手机中的文件
打开 shell 会话后,出现了 HWLYA:/$,说明已经进入shell环境,在这里可以执行Linux命令。例如,执行cd sdcard和ls-l test.txt命令,运行结果分别如图1-31和图1-32所示。
图1-30 hdc shell命令的运行结果
图1-31 shell cd sdcard命令的运行结果
图1-32 shell ls-1 test.txt命令的运行结果
在shell命令中,am(Ability Manager)命令可以模拟各种系统的行为,比如启动Ability、强制停止进程、发送广播、修改设备属性等。
例如:启动Ability的命令为
am start-n com.example.demo/.MainAbility
在shell命令中,pm(Package Manager)命令可以查询设备上的应用信息(比如查询应用的安装路径、包信息)、安装应用、卸载应用等。
例如:列出所有已安装的包的命令为
pm list packages
例如:安装应用的命令为
hdc app install [-rdg] PACKAGE
该命令可以通过包名将程序安装到设备上,其中包含三个参数,各参数的含义如下:
-r:更换现有应用程序。
-d:允许版本降级(只兼容调试模式)。
-g:授予所有权限。
由于一个App包含多个HAP,还可以一次安装多个HAP,命令为
hdc app install-multiple--hap HAP-PATH
例如:卸载应用的命令为
app uninstall [-k] PACKAGE
其中,-k参数表示不移除用户数据。
(8)hdc listpid:显示可调试的应用程序进程列表。
(9)hdc hilog:跟踪日志。该命令会跟踪系统的HiLog日志,直至取消。
(10)hdc reset:重置HDC连接。该命令会重新连接设备。