HarmonyOS开发:hdc命令行安装、使用及查看应用内存占用完全指南
什么是hdc?
hdc(OpenHarmony Device Connector)是OpenHarmony官方提供的设备连接调试命令行工具。就像Android的adb一样,hdc让开发者能够从PC端对设备进行各种操作:安装应用、传输文件、查看日志、执行shell命令等。
对于HarmonyOS应用开发者来说,掌握hdc是必备技能。今天就来聊聊怎么安装、使用,特别是如何查看应用运行时的内存占用。
安装hdc
方式一:通过SDK获取(推荐)
去OpenHarmony社区网站下载dailybuilds或正式发布的SDK压缩包,解压后在toolchain目录下找到hdc工具。
解压命令参考:
tar -zxvf openharmony-sdk-*.tar.gz解压后hdc通常在以下路径:
openharmony-sdk/toolchain/hdc
方式二:自行编译
如果想自己编译,参考: -
Linux环境:https://gitee.com/openharmony/build/blob/master/README_zh.md
- 执行sdk编译命令,hdc会被打包进编译产物
注意:Ubuntu环境下只能编译Windows/Linux版本,macOS需要Mac开发机编译。
运行环境要求
- Linux:建议Ubuntu 18.04以上64位
- Windows:建议Windows 10 64位
- Mac:macOS开发机
Linux用户如果权限不够,可能会遇到找不到设备的问题。解决方法:
# 临时给权限
sudo chmod -R 777 /dev/bus/usb/
# 永久修改,创建udev规则
sudo vim /etc/udev/rules.d/90-myusb.rules内容类似这样:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", GROUP="users", MODE="0666"
然后:
sudo udevadm control --reload常用命令
hdc的命令结构和adb类似,熟悉adb的同学上手很快。
查看设备连接
hdc list targets如果设备正常连接,会显示设备ID。-v参数可以查看详细信息。
安装应用
hdc install app.hap卸载应用
hdc uninstall com.example.app文件传输
# 发送到设备
hdc file send ./test.txt /data/local/tmp/
# 从设备拉取
hdc file recv /data/local/tmp/test.txt ./查看日志
hdc hilog进入shell交互
hdc shell查看应用内存占用
这是本文的重点。开发者经常需要排查应用的内存使用情况,hdc提供了多种方法。
方法一:通过hdc shell + pidstat
hdc shell
pidstat -p <pid> -r 1 5这样会每秒采集一次进程的内存信息,连续5次。输出包括RSS、VSZ等指标。
方法二:通过proc文件系统
hdc shell
cat /proc/<pid>/status输出中关键的内存字段: - VmRSS:实际使用的物理内存 - VmSize:虚拟内存大小 - VmSwap:交换分区使用量
方法三:使用hidumper命令
hdc还提供了hidumper命令,可以更详细地查看进程状态:
hdc shell
hidumper -s Memory <pid>这个命令会输出进程的内存统计信息,包括: - 进程内存概览 - 各种内存类型的详细数据 - 内存压力指标
方法四:查看内存概况
hdc shell
top -d 1 -n 1或者用ps命令:
hdc shell
ps -ef | grep <应用包名>找到进程ID后,再用上面的方法查看内存。
常见问题排查
list targets显示无设备
- 检查设备是否连接正常
- 确认host端设备管理器设备信息
- 两端工具版本是否一致:
hdc -v和hdcd -v - 尝试
hdc kill重启服务 - 重启设备
Windows下正常,Linux下无设备
同上面排查步骤,注意root权限下执行。如果server进程起不来:
sudo rm /tmp/*.pid
sudo hdc list targets推文件报错read-only file system
推送文件前执行:
hdc smode
hdc shell mount -o rw,remount /总结
hdc是HarmonyOS开发调试不可或缺的工具。安装起来很简单,常用命令也和adb差不多,上手成本不高。
查看应用内存占用,最常用的是pidstat和/proc文件系统两种方式。如果想看更详细的信息,可以用hidumper。
有问题多查官方文档,或者在Gitee社区提issue。祝开发顺利!
| 本文由 BOSH 的博客助手 HerMes 整理 🛠️ |
原文链接:https://gitee.com/openharmony/developtools_hdc