Featured image of post HarmonyOS开发:hdc命令行安装、使用及查看应用内存占用完全指南

HarmonyOS开发:hdc命令行安装、使用及查看应用内存占用完全指南

什么是hdc?

hdc(OpenHarmony Device Connector)是OpenHarmony官方提供的设备连接调试命令行工具。就像Android的adb一样,hdc让开发者能够从PC端对设备进行各种操作:安装应用、传输文件、查看日志、执行shell命令等。

对于HarmonyOS应用开发者来说,掌握hdc是必备技能。今天就来聊聊怎么安装、使用,特别是如何查看应用运行时的内存占用。

安装hdc

方式一:通过SDK获取(推荐)

去OpenHarmony社区网站下载dailybuilds或正式发布的SDK压缩包,解压后在toolchain目录下找到hdc工具。

解压命令参考:

1
tar -zxvf openharmony-sdk-*.tar.gz

解压后hdc通常在以下路径:

1
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用户如果权限不够,可能会遇到找不到设备的问题。解决方法:

1
2
3
4
5
# 临时给权限
sudo chmod -R 777 /dev/bus/usb/

# 永久修改,创建udev规则
sudo vim /etc/udev/rules.d/90-myusb.rules

内容类似这样:

1
SUBSYSTEMS=="usb", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", GROUP="users", MODE="0666"

然后:

1
sudo udevadm control --reload

常用命令

hdc的命令结构和adb类似,熟悉adb的同学上手很快。

查看设备连接

1
hdc list targets

如果设备正常连接,会显示设备ID。-v参数可以查看详细信息。

安装应用

1
hdc install app.hap

卸载应用

1
hdc uninstall com.example.app

文件传输

1
2
3
4
5
# 发送到设备
hdc file send ./test.txt /data/local/tmp/

# 从设备拉取
hdc file recv /data/local/tmp/test.txt ./

查看日志

1
hdc hilog

进入shell交互

1
hdc shell

查看应用内存占用

这是本文的重点。开发者经常需要排查应用的内存使用情况,hdc提供了多种方法。

方法一:通过hdc shell + pidstat

1
2
hdc shell
pidstat -p <pid> -r 1 5

这样会每秒采集一次进程的内存信息,连续5次。输出包括RSS、VSZ等指标。

方法二:通过proc文件系统

1
2
hdc shell
cat /proc/<pid>/status

输出中关键的内存字段:

  • VmRSS:实际使用的物理内存
  • VmSize:虚拟内存大小
  • VmSwap:交换分区使用量

方法三:使用hidumper命令

hdc还提供了hidumper命令,可以更详细地查看进程状态:

1
2
hdc shell
hidumper -s Memory <pid>

这个命令会输出进程的内存统计信息,包括:

  • 进程内存概览
  • 各种内存类型的详细数据
  • 内存压力指标

方法四:查看内存概况

1
2
hdc shell
top -d 1 -n 1

或者用ps命令:

1
2
hdc shell
ps -ef | grep <应用包名>

找到进程ID后,再用上面的方法查看内存。

常见问题排查

list targets显示无设备

  1. 检查设备是否连接正常
  2. 确认host端设备管理器设备信息
  3. 两端工具版本是否一致:hdc -vhdcd -v
  4. 尝试hdc kill重启服务
  5. 重启设备

Windows下正常,Linux下无设备

同上面排查步骤,注意root权限下执行。如果server进程起不来:

1
2
sudo rm /tmp/*.pid
sudo hdc list targets

推文件报错read-only file system

推送文件前执行:

1
2
hdc smode
hdc shell mount -o rw,remount /

总结

hdc是HarmonyOS开发调试不可或缺的工具。安装起来很简单,常用命令也和adb差不多,上手成本不高。

查看应用内存占用,最常用的是pidstat和/proc文件系统两种方式。如果想看更详细的信息,可以用hidumper。

有问题多查官方文档,或者在Gitee社区提issue。祝开发顺利!


本文由 BOSH 的博客助手 HerMes 整理 🔧

原文链接:https://gitee.com/openharmony/developtools_hdc

热爱生活 学无止境
使用 Hugo 构建
主题 StackJimmy 设计