HarmonyOS 5 高效使用命令:HDC 使用指南

大家好,我是不想掉发的鸿蒙开发工程师城中的雾。

在上一系列中,我们探讨了如何写出炫酷的 UI。但对于开发者来说,写代码只是工作的一半,另一半是调试

IDE(DevEco Studio)虽然功能强大,但在面对真机连接不稳定、应用安装失败、日志筛选困难等底层问题时,往往显得力不从心。这时候,我们需要一把"手术刀"------HDC (HarmonyOS Device Connector)

HDC 是鸿蒙开发的命令行工具(类似于 Android 的 ADB)。本系列文章将带大家跳出 IDE 的图形界面,直接用命令行解决开发中那些让人头秃的疑难杂症。

第一期,我们先解决最基础也最容易出问题的一步:如何稳定地连上设备

1. 环境配置:让终端认识 HDC

很多新手在终端输入 hdc 时,会收到 command not found不是内部或外部命令 的报错。这是因为系统不知道去哪里找这个工具。

获取 HDC 工具

首先,你得找到 HDC 在哪。通常有以下两种方式:

  1. 通过 SDK 获取(最常用):

    DevEco Studio 已经内置了 SDK,无需额外下载。

    • 默认路径DevEco Studio安装目录/sdk/default/openharmony/toolchains
    • MacOS :位于 DevEco Studio.app/Contents/sdk/default/openharmony/toolchains
  2. 通过 Command Line Tools:

    如果你使用的是独立的命令行工具,hdc 位于 Command Line Tools/sdk/default/openharmony/toolchains 路径下。

HDC 其实支持独立运行。你可以直接把 toolchains 目录下的 hdc 可执行文件和 libusb_shared 依赖文件拷贝到任意自定义目录,在那里面直接打开终端也能跑,适合不想配环境的"临时作战"。

但为了长久之计,我们还是推荐配置系统环境变量 ,这样你在任何路径下都能直接呼唤 hdc

配置步骤 (Windows)

  1. 进入设置 :按下 Windows 键,搜索并进入"设置"窗口;或者直接搜索"查看高级系统设置"。
  2. 编辑变量
    • 在"系统属性"窗口中,点击**"环境变量"**。
    • 在**"系统变量"区域找到 Path,选中并点击"编辑"**。
  3. 添加路径
    • 点击**"新建"**,将 hdc.exe 所在的目录路径(即上面的 toolchains 路径)粘贴进去。
    • 一路点击"确定"保存。
  4. 生效验证
    • 配置完成后,建议重启电脑(或重启所有终端窗口)以确保变量生效。
    • 打开 CMD 或 PowerShell,输入 hdc -v,显示版本号即为成功。

配置步骤 (Linux/MacOS)

类 Unix 系统的配置需要通过终端修改 Shell 配置文件。

  1. 确认 Shell 类型:

    打开终端,输入以下命令:

    复制代码
    echo $SHELL
  2. 编辑配置文件

    • 如果输出 /bin/bash,执行:vi ~/.bashrc
    • 如果输出 /bin/zsh(MacOS 默认),执行:vi ~/.zshrc
  3. 添加 PATH 信息

    • 进入编辑器后,按 i 键进入 Insert 模式。

    • 在文件末尾添加以下内容(注意替换 {DevEco Studio} 为你的实际安装路径):

      export PATH={DevEco Studio实际路径}/sdk/default/openharmony/toolchains:$PATH

    • MacOS 示例export PATH=/Applications/DevEco-Studio.app/Contents/sdk/default/openharmony/toolchains:$PATH

  4. 保存并生效

    • Esc 键退出编辑模式,输入 :wq 并回车保存。

    • 执行以下命令立即使配置生效:

      source ~/.bashrc # 或者 source ~/.zshrc

  5. 重启:建议重启系统或重新登录,确保所有环境完全加载。

2. 基础连接:USB 调试

这是最常用的连接方式。

常用命令

  • 查看连接设备

    复制代码
    hdc list targets
    • 正常 :显示设备序列号(SN),如 1234567890ABCDEF
    • 异常 :显示 [Empty] 或报错。

常见问题排查

如果 hdc list targets 为空,请按以下顺序检查:

  1. 开发者模式:确保手机已开启"开发者模式"和"USB 调试"。

  2. 授权弹窗:连接电脑后,留意手机上是否弹出了"是否允许 USB 调试"的弹窗,必须点击"始终允许"。

  3. 驱动/端口占用:这是 Windows 常见问题。有时候端口被占用导致 HDC 服务起不来。

    • 绝招:强制重启 HDC 服务。

      复制代码
      hdc kill -r
      hdc start

      (注:-r 表示递归停止服务进程)

3. 进阶玩法:无线调试 (WiFi)

总是插着数据线开发很不方便,特别是需要连接外设(如键盘、鼠标)测试时。HDC 支持通过 TCP/IP 进行无线调试。

连接步骤

前提:手机和电脑必须连接在**同一个局域网(WiFi)**下。

  1. 初始化:先用 USB 线连接手机和电脑(第一次必须插线,否则无法授权)。

  2. 开启端口:设置手机监听 5555 端口。

    复制代码
    hdc tmode port 5555
    • 成功提示Set device run mode successful.
  3. 查看手机 IP

    • 方式 A:手机设置 -> 关于手机 -> 状态信息 -> IP 地址。

    • 方式 B:直接用命令查(netcfg 命令在部分新机型已废弃,推荐使用 ifconfig)。

      复制代码
      hdc shell ifconfig wlan0

      输出示例 :找到 inet addr 后的数字,例如 172.16.130.221

      复制代码
      wlan0     Link encap:Ethernet  HWaddr ...
                inet addr:172.16.130.221  Bcast:...
  4. 建立连接拔掉 USB 线,在电脑终端输入:

    复制代码
    hdc tconn 172.16.130.221:5555

    (请替换为您实际查到的 IP)

    • 成功提示Connect OK
  5. 验证 :再次输入 hdc list targets,如果看到 172.16.130.221:5555,说明连接成功。

恢复 USB 模式

如果想切回 USB 模式,或者无线连接出现异常,可以重置:

复制代码
hdc tmode usb

4. 多设备管理

当你同时连接了多台设备(比如一台真机、一台模拟器,或者一台手机、一台车机)时,执行命令必须指定目标,否则 HDC 不知道该听谁的。

  • 指定设备执行命令

    复制代码
    hdc -t [设备SN或IP] [命令]
    • 示例hdc -t 192.168.1.100:5555 shell ls

5. 番外:一键无线连接脚本 (Windows)

每次都要手动敲三个命令(开端口、查IP、连接)是不是很累?我们可以写一个 .bat 脚本来自动完成这个过程。

懒人脚本 (connect_wifi.bat)

在桌面新建一个文本文件,粘贴以下代码,保存为 .bat 后缀。插上 USB 线,双击运行即可。

优化说明:此版本已移除所有中文字符和注释,排除编码错误,通过临时文件稳定获取 IP。

复制代码
@echo off
setlocal enabledelayedexpansion

echo ==========================================
echo      HarmonyOS WiFi Connect Tool
echo ==========================================

echo [STEP 1] Setting TCP Mode 5555...
hdc tmode port 5555
if %errorlevel% neq 0 goto ErrorUSB
timeout /t 2 >nul

echo.
echo [STEP 2] Getting IP Address...
set DEVICE_IP=

hdc shell ifconfig wlan0 > ip_temp.txt

for /f "tokens=2 delims=:" %%a in ('findstr "inet addr" ip_temp.txt') do (
    for /f "tokens=1" %%b in ("%%a") do set DEVICE_IP=%%b
)

if "!DEVICE_IP!"=="" (
    for /f "tokens=2" %%a in ('findstr "inet " ip_temp.txt') do (
        echo %%a | findstr /v ":" >nul && set DEVICE_IP=%%a
    )
)

del ip_temp.txt >nul 2>&1

if "!DEVICE_IP!"=="" goto ManualInput
echo [INFO] IP Found: !DEVICE_IP!
goto ConnectStep

:ManualInput
echo [WARN] Auto-detect failed. Check Settings-WLAN.
set /p DEVICE_IP="Please Enter IP Address: "
goto ConnectStep

:ConnectStep
echo.
echo [STEP 3] Please unplug USB now. Press any key to connect...
pause >nul

if "!DEVICE_IP!"=="" goto ErrorIP

echo Connecting to !DEVICE_IP!:5555 ...
hdc tconn !DEVICE_IP!:5555

echo.
echo [Result] Connected Devices:
hdc list targets
goto End

:ErrorUSB
echo [ERROR] Please connect USB first!
pause
goto End

:ErrorIP
echo [ERROR] IP is empty.
pause
goto End

:End
pause

总结:HDC 连接速查表

场景 命令 说明
查设备 hdc list targets 也是检查连接状态的第一步
查版本 hdc -v 检查环境配置是否成功
重启服务 hdc kill -r 遇到莫名其妙连接问题时的万能药
开无线 hdc tmode port 5555 需先插线设置
查IP hdc shell ifconfig 查找 wlan0inet addr
连无线 hdc tconn [IP]:5555 需在同一局域网
切回USB hdc tmode usb 恢复有线模式

连接设备是开发的第一步。搞定了连接,下一期我们将深入 App 的**"卸载与安装",探讨如何通过命令行高效地安装、卸载、启动和强制停止**应用,甚至直接拉起指定的 Ability 页面进行测试。

充电时间

如果您想系统深入地学习 HarmonyOS 开发或想考取HarmonyOS认证证书,推荐学习华为官方课程:

🔗 HarmonyOS第一课:官方认证培训

相关推荐
帅哥一天八碗米饭2 小时前
HarmonyOS ArkTS 组件复用详解:理解 @Reusable 装饰器
harmonyos
帅哥一天八碗米饭2 小时前
HarmonyOS ArkTS 实战:阅读器顶部栏“高度收缩 + 背景透明度过渡”(@AnimatableExtend 方案,能直接抄)
harmonyos
万少2 小时前
HarmonyOS6 接入快手 SDK 指南
前端·harmonyos
帅哥一天八碗米饭3 小时前
HarmonyOS ArkTS:自动“缓存池复用监控日志”怎么做
harmonyos
kirk_wang3 小时前
Flutter 鸿蒙项目 Android Studio 点击 Run 失败 ohpm 缺失
flutter·android studio·harmonyos
qq_463408423 小时前
React Native跨平台技术在开源鸿蒙中开发一个奖励兑换模块,增加身份验证和授权机制(如JWT),以防止未授权的积分兑换
react native·开源·harmonyos
我是华为OD~HR~栗栗呀3 小时前
(华为od)21届-Python面经
java·前端·c++·python·华为od·华为·面试
Fate_I_C3 小时前
Flutter鸿蒙0-1开发-工具环境篇
flutter·华为·harmonyos·鸿蒙
二流小码农3 小时前
鸿蒙开发:一个底部的曲线导航
android·ios·harmonyos