鸿蒙工具学习五十:HDC命令行工具使用指南
HDC工具是鸿蒙应用开发的核心调试工具,相当于Android的ADB。本文全面介绍了HDC的功能和使用方法:1) 环境配置:包含Windows/macOS/Linux下的安装路径和变量设置;2) 设备管理:连接物理设备/模拟器、查看设备信息等命令;3) 应用管理:安装/卸载应用、查看应用信息等操作;4) 日志调试:实时查看、过滤和保存系统日志;5) 文件操作:设备与开发机间的文件传输和管理;6)
引言:HDC工具在鸿蒙开发中的重要性
HDC(HarmonyOS Device Connector)是鸿蒙系统官方提供的命令行调试工具,相当于Android开发中的ADB工具。作为鸿蒙应用开发的核心调试工具,HDC承担着设备连接、应用安装、日志查看、文件传输等关键功能,是每位鸿蒙开发者必须掌握的基础工具。
本文将全面介绍HDC工具的功能特性、安装配置方法以及常用命令操作,帮助开发者快速掌握这一核心调试工具,提升鸿蒙应用开发效率。
一、HDC工具概述与环境配置
1.1 HDC工具简介
HDC是HarmonyOS设备连接器的缩写,主要功能包括:
-
设备连接管理:连接鸿蒙设备或模拟器
-
应用包管理:安装、卸载、查看应用
-
调试与日志:实时查看系统日志、过滤调试信息
-
文件操作:在设备和开发机之间传输文件
-
系统配置:修改设备参数、开启开发者模式
1.2 安装与配置
1.2.1 获取HDC工具
HDC工具通常随DevEco Studio一起安装,位于以下路径:
-
Windows:
C:\Users\用户名\AppData\Local\Huawei\DevEco Studio\版本号\tools -
macOS:
/Users/用户名/Library/Huawei/DevEco Studio/版本号/tools -
Linux:
/home/用户名/Huawei/DevEco Studio/版本号/tools
1.2.2 环境变量配置
为了方便使用,建议将HDC工具路径添加到系统环境变量:
Windows系统配置:
# 1. 右键点击"此电脑" → "属性" → "高级系统设置"
# 2. 点击"环境变量"
# 3. 在"系统变量"中找到Path,点击"编辑"
# 4. 添加HDC工具路径,例如:
C:\Users\YourName\AppData\Local\Huawei\DevEco Studio\4.1.0.300\tools
macOS/Linux系统配置:
# 编辑~/.bash_profile或~/.zshrc文件
export PATH=$PATH:/Users/YourName/Library/Huawei/DevEco\ Studio/4.1.0.300/tools
# 使配置生效
source ~/.bash_profile
1.2.3 验证安装
配置完成后,在命令行中执行以下命令验证安装:
hdc -v
正常输出应显示HDC版本信息,如:
hdc version 1.0.0
二、设备连接与管理
2.1 查看已连接设备
# 查看当前连接的设备列表
hdc list targets
输出示例:
List of targets attached
192.168.1.100:5555 device HarmonyOS 4.0.0
emulator-5560 device HarmonyOS Simulator
参数说明:
-
设备ID:设备的IP地址或模拟器标识
-
状态:
device表示设备已连接,offline表示设备离线 -
系统版本:设备运行的HarmonyOS版本
2.2 连接设备
2.2.1 连接物理设备
# 通过USB连接设备
hdc target mount
# 通过Wi-Fi连接设备(需先通过USB连接一次)
hdc target connect 192.168.1.100:5555
2.2.2 连接模拟器
# 连接DevEco Studio创建的模拟器
hdc target connect emulator-5560
2.3 设备基本操作
# 重启设备
hdc reboot
# 进入设备Shell环境
hdc shell
# 查看设备信息
hdc shell param get const.product.name
hdc shell param get const.product.devicetype
# 点亮屏幕(唤醒设备)
hdc shell power-shell wakeup
2.4 多设备管理
当连接多个设备时,需要指定目标设备:
# 查看所有设备
hdc list targets
# 选择目标设备
hdc -t 192.168.1.100:5555 shell
# 或者设置默认设备
hdc set-target 192.168.1.100:5555
三、应用包管理
3.1 应用安装
3.1.1 安装普通应用
# 安装HAP包
hdc install app.hap
# 安装带签名的应用
hdc install signed_app.hap
# 强制覆盖安装(保留数据)
hdc install -r app.hap
3.1.2 安装企业级应用
# 先开启企业应用安装权限
hdc shell param set const.bms.allowenterprisebundle true
# 安装企业应用
hdc install enterprise_app.hap
3.2 应用卸载
# 卸载应用(通过包名)
hdc uninstall com.example.myapp
# 如果卸载失败,可以强制删除
# 1. 查询应用安装路径
hdc shell ls /data/app/el1/bundle/public/com.example.myapp
# 2. 强制删除应用文件
hdc shell rm -rf /data/app/el1/bundle/public/com.example.myapp
# 3. 重启设备使更改生效
hdc shell reboot
3.3 应用信息查看
# 查看所有已安装应用
hdc shell bm dump -a
# 查看特定应用信息
hdc shell bm dump -n com.example.myapp
# 查看应用安装路径
hdc shell pm path com.example.myapp
3.4 应用启动与停止
# 启动应用
hdc shell aa start -a EntryAbility -b com.example.myapp
# 停止应用
hdc shell aa force-stop com.example.myapp
# 清除应用数据
hdc shell pm clear com.example.myapp
四、调试与日志查看
4.1 实时日志查看
# 查看所有实时日志
hdc hilog
# 按标签过滤日志
hdc hilog -T AppManager
hdc hilog -T AbilityManager
hdc hilog -T Zygote
# 按日志级别过滤
hdc hilog -L D # Debug级别
hdc hilog -L I # Info级别
hdc hilog -L W # Warn级别
hdc hilog -L E # Error级别
# 组合过滤条件
hdc hilog -T MyApp -L E # 查看MyApp标签的Error日志
4.2 日志保存与分析
# 将日志保存到文件
hdc hilog > log.txt
# 查看特定时间段的日志
hdc hilog -s "2025-01-01 10:00:00" -e "2025-01-01 11:00:00"
# 清空日志缓存
hdc hilog -c
# 查看崩溃日志
hdc shell crash_dump
4.3 高级日志过滤技巧
# 使用grep进行复杂过滤(在设备Shell中)
hdc shell
hilog | grep -E "Error|Exception"
# 查看特定进程的日志
hdc shell
ps | grep com.example.myapp # 获取PID
hilog --pid 1234
# 查看内存泄漏相关日志
hdc hilog -T GC
五、文件操作与管理
5.1 文件传输
5.1.1 推送文件到设备
# 推送单个文件
hdc file send local_file.txt /data/local/tmp/remote_file.txt
# 推送整个目录
hdc file send local_dir/ /data/local/tmp/remote_dir/
# 推送并保持文件权限
hdc file send -p local_file.txt /data/local/tmp/remote_file.txt
5.1.2 从设备拉取文件
# 拉取单个文件
hdc file recv /data/local/tmp/remote_file.txt ./local_file.txt
# 拉取整个目录
hdc file recv /data/local/tmp/remote_dir/ ./local_dir/
# 拉取应用数据文件
hdc file recv /data/app/el1/bundle/public/com.example.myapp/files/data.db ./data.db
5.2 设备文件操作
# 查看设备文件列表
hdc shell ls -la /data/local/tmp/
# 创建目录
hdc shell mkdir /data/local/tmp/my_dir
# 复制文件
hdc shell cp /data/local/tmp/file1.txt /data/local/tmp/file2.txt
# 移动/重命名文件
hdc shell mv /data/local/tmp/old_name.txt /data/local/tmp/new_name.txt
# 删除文件
hdc shell rm /data/local/tmp/unwanted_file.txt
# 删除目录(递归)
hdc shell rm -rf /data/local/tmp/unwanted_dir/
5.3 文件权限管理
# 修改文件权限
hdc shell chmod 755 /data/local/tmp/script.sh
# 修改文件所有者
hdc shell chown system:system /data/local/tmp/system_file.txt
# 查看文件权限
hdc shell ls -l /data/local/tmp/
六、系统配置与调试
6.1 开发者模式配置
# 开启开发者模式(必须)
hdc shell param set const.product.developmentmode 1
# 验证开发者模式状态
hdc shell param get const.product.developmentmode
# 允许安装未知来源应用
hdc shell settings put secure install_non_market_apps 1
# 开启USB调试
hdc shell setprop persist.service.adb.enable 1
6.2 系统参数查看与修改
# 查看所有系统参数
hdc shell param list
# 查看特定参数
hdc shell param get const.product.model # 设备型号
hdc shell param get const.product.manufacturer # 制造商
hdc shell param get const.product.hardware # 硬件信息
hdc shell param get const.product.sn # 序列号
# 修改系统参数(谨慎操作)
hdc shell param set debug.hwc.enable 1 # 开启硬件合成器调试
hdc shell param set debug.sf.showfps 1 # 显示帧率
6.3 网络配置
# 查看网络配置
hdc shell ifconfig
hdc shell netstat -tunlp
hdc shell ip route show
# 设置网络代理
hdc shell settings put global http_proxy 192.168.1.100:8080
# 清除网络代理
hdc shell settings put global http_proxy :0
# 测试网络连接
hdc shell ping -c 4 www.huawei.com
七、进程与性能监控
7.1 进程管理
# 查看所有运行中的进程
hdc shell ps
hdc shell ps -A # 查看所有进程
hdc shell ps -ef # 查看完整格式的进程信息
# 查看特定应用的进程
hdc shell ps | grep com.example.myapp
# 查看进程树
hdc shell pstree
# 终止进程
hdc shell kill 1234 # 正常终止
hdc shell kill -9 1234 # 强制终止
hdc shell killall com.example.myapp # 终止所有同名进程
7.2 性能监控
# 查看CPU使用情况
hdc shell top -n 1 # 查看一次
hdc shell top -d 2 # 每2秒刷新一次
hdc shell top -p 1234 # 查看特定进程
# 查看内存使用情况
hdc shell cat /proc/meminfo
hdc shell dumpsys meminfo com.example.myapp
# 查看电池信息
hdc shell dumpsys battery
# 查看存储空间
hdc shell df -h
hdc shell du -sh /data/data/com.example.myapp/
7.3 性能分析工具
# 启动性能分析
hdc shell am profile start com.example.myapp /data/local/tmp/profile.trace
# 停止性能分析
hdc shell am profile stop com.example.myapp
# 拉取分析文件
hdc file recv /data/local/tmp/profile.trace ./profile.trace
八、网络调试
8.1 端口转发
# 端口转发(将设备端口映射到本地)
hdc fport tcp:8080 tcp:8080
# 查看所有端口转发
hdc fport list
# 移除端口转发
hdc fport rm tcp:8080
# 反向端口转发(将本地端口映射到设备)
hdc reverse tcp:8080 tcp:8080
8.2 网络调试工具
# 使用telnet测试端口
hdc shell telnet 192.168.1.100 8080
# 使用curl测试HTTP服务
hdc shell curl -v http://localhost:8080/api/test
# 查看网络连接状态
hdc shell netstat -an | grep ESTABLISHED
# 抓取网络数据包(需要root权限)
hdc shell tcpdump -i any -s 0 -w /data/local/tmp/capture.pcap
九、应用签名与安全
9.1 签名证书管理
# 生成签名证书
keytool -genkeypair -alias myalias -keyalg RSA -keysize 2048 -validity 365 -keystore my.keystore
# 查看证书信息
keytool -list -v -keystore my.keystore
# 导出证书
keytool -exportcert -alias myalias -keystore my.keystore -file mycert.cer
# 修改企业级签名字段
keytool -genkeypair ... -ext "app-distribution-type=enterprise_mdm"
9.2 应用签名验证
# 查看应用签名信息
hdc shell pm dump com.example.myapp | grep signature
# 验证应用签名
hdc shell dumpsys package com.example.myapp | grep signatures
十、屏幕截图与录屏
10.1 屏幕截图
# 截图并保存到设备
hdc shell snapshot_display -f /data/screenshot.png
# 从设备拉取截图到本地
hdc file recv /data/screenshot.png ./screenshot.png
# 一键截图并保存到本地
hdc shell "snapshot_display -f /data/screenshot.png" && hdc file recv /data/screenshot.png ./screenshot_$(date +%Y%m%d_%H%M%S).png
10.2 屏幕录制
# 开始录屏(需要设备支持)
hdc shell screenrecorder --time 10 --bit-rate 8000000 /data/screenrecord.mp4
# 拉取录屏文件
hdc file recv /data/screenrecord.mp4 ./screenrecord.mp4
# 录制带音频的屏幕
hdc shell screenrecorder --audio --time 30 /data/screenrecord_with_audio.mp4
十一、高级调试技巧
11.1 应用调试
# 启动应用并等待调试器
hdc shell am start -D -n com.example.myapp/.MainAbility
# 查看应用堆栈
hdc shell am dumpheap com.example.myapp /data/local/tmp/heapdump.hprof
# 强制停止并清理应用
hdc shell am force-stop com.example.myapp && hdc shell pm clear com.example.myapp
11.2 系统服务调试
# 查看系统服务列表
hdc shell service list
# 调用系统服务
hdc shell service call package 1 s16 com.example.myapp
# 查看Activity栈
hdc shell dumpsys activity activities
# 查看Window信息
hdc shell dumpsys window
11.3 性能优化调试
# 开启GPU渲染分析
hdc shell setprop debug.hwui.profile true
# 查看渲染性能
hdc shell dumpsys gfxinfo com.example.myapp
# 查看应用启动时间
hdc shell am start -W com.example.myapp/.MainAbility
十二、实用脚本与自动化
12.1 批量操作脚本
#!/bin/bash
# 批量安装多个HAP包
for hap in *.hap; do
echo "正在安装: $hap"
hdc install "$hap"
if [ $? -eq 0 ]; then
echo "$hap 安装成功"
else
echo "$hap 安装失败"
fi
done
12.2 自动化测试脚本
#!/bin/bash
# 自动化测试脚本
APP_PACKAGE="com.example.myapp"
# 卸载旧版本
hdc uninstall $APP_PACKAGE
# 安装新版本
hdc install app.hap
# 启动应用
hdc shell aa start -a EntryAbility -b $APP_PACKAGE
# 等待应用启动
sleep 3
# 执行测试
hdc shell input tap 500 500 # 点击屏幕坐标
hdc shell input text "test" # 输入文本
hdc shell input keyevent 4 # 返回键
# 收集日志
hdc hilog -T $APP_PACKAGE > test_log.txt
12.3 设备状态监控脚本
#!/bin/bash
# 设备状态监控
while true; do
echo "=== 设备状态监控 $(date) ==="
# 检查设备连接
hdc list targets
# 检查CPU使用率
hdc shell top -n 1 | head -20
# 检查内存使用
hdc shell cat /proc/meminfo | grep -E "MemTotal|MemFree"
# 检查应用运行状态
hdc shell ps | grep com.example.myapp
sleep 10
done
十三、常见问题与解决方案
13.1 连接问题
问题1:HDC无法连接设备
# 解决方案:
# 1. 检查USB连接或网络连接
# 2. 确认设备已开启开发者模式
hdc shell param get const.product.developmentmode
# 3. 重启HDC服务
hdc kill-server
hdc start-server
# 4. 检查防火墙设置
问题2:设备显示为offline状态
# 解决方案:
# 1. 重新连接设备
hdc disconnect
hdc connect 设备IP
# 2. 重启设备
hdc reboot
# 3. 检查HDC版本兼容性
hdc -v
13.2 安装问题
问题:应用安装失败
# 可能原因及解决方案:
# 1. 签名问题
# 检查签名证书是否有效
keytool -list -v -keystore my.keystore
# 2. 存储空间不足
hdc shell df -h
# 3. 版本冲突
# 先卸载旧版本
hdc uninstall com.example.myapp
# 4. 权限不足
hdc shell param set const.bms.allowenterprisebundle true
13.3 权限问题
问题:操作被拒绝
# 解决方案:
# 1. 检查是否具有root权限
hdc shell whoami
# 2. 临时获取root权限(如果设备支持)
hdc root
# 3. 修改文件权限
hdc shell chmod 777 /data/local/tmp/file.txt
十四、最佳实践与建议
14.1 开发环境配置建议
-
使用稳定的HDC版本:确保HDC工具与DevEco Studio版本匹配
-
配置环境变量:将HDC添加到系统PATH,方便在任何目录使用
-
保持设备连接稳定:使用高质量的USB数据线,避免使用USB Hub
-
定期更新工具:关注华为开发者官网,及时更新HDC工具
14.2 调试效率提升技巧
-
使用别名简化命令:
# 在.bashrc或.bash_profile中添加别名 alias hlog='hdc hilog -T MyApp' alias hinst='hdc install' alias huninst='hdc uninstall' -
创建常用命令脚本:将常用操作封装成脚本,提高效率
-
使用日志过滤工具:结合grep、awk等工具进行日志分析
-
建立调试检查清单:针对常见问题建立排查步骤
14.3 安全注意事项
-
谨慎使用root权限:避免在生产设备上使用root命令
-
保护签名证书:妥善保管keystore文件和密码
-
注意数据安全:调试时避免传输敏感数据
-
及时断开连接:调试完成后及时断开设备连接
结语
HDC命令行工具是鸿蒙应用开发中不可或缺的调试利器。通过熟练掌握HDC的各种命令和技巧,开发者可以显著提升调试效率,快速定位和解决问题。本文涵盖了HDC工具的主要功能和使用方法,建议开发者在实际开发中多加练习,逐步掌握更多高级用法。
随着鸿蒙生态的不断发展,HDC工具也会持续更新和完善。建议开发者关注华为官方文档和开发者社区,及时了解最新的工具特性和最佳实践,不断提升鸿蒙应用开发能力。
更多推荐




所有评论(0)