【纯血鸿蒙】鸿蒙HDC命令合集

embedded/2024/10/30 21:29:55/

由于鸿蒙生态还处于初期,官方提供的hdc命令还在不断修改中,部分命令会有变动。
如果文档没来得及更新,欢迎大家提PR和Issue补充指正,觉得有用的可以点 Star⭐️收藏。

HDC(OpenHarmony Device Connector) 是为鸿蒙开发/测试人员提供的用于设备调试的命令行工具,类似Android端的ADB工具。

HDC主要有三部分组成:

  1. hdc client:运行于电脑上的客户端,用户可以在电脑命令终端(windows cmd/linux shell)下请求执行相应的hdc命令。
  2. hdc server:作为后台进程也运行于电脑上,server管理client和设备端daemon之间通信包括连接的复用、数据通信包的收发,以及个别本地命令的直接处理。
  3. hdc daemon:daemon部署于OpenHarmony设备端作为守护进程按需运行,负责处理来自client端请求。

hdc

Table of Contents

  • HDC安装
  • 基本用法
    • 基本语法
  • 设备连接管理
    • 查看HDC版本
    • 启动/停止 HDC Server
    • 查询设备列表
    • 查询设备UDID
    • 重启手机
  • 查看设备信息
    • 名称
    • Brand
    • Model
    • 系统版本
    • OS版本
    • CPU架构
    • 分辩率
    • wlan IP
    • 电量/温度
    • 查看屏幕信息
    • 查看屏幕旋转状态
    • 查看屏幕亮屏状态
    • 点亮屏幕(唤醒)
    • 查看网络状态
  • 应用管理
    • 安装应用
    • 卸载应用
    • 获取应用列表
    • 启动应用
    • 退出应用
    • 获取应用版本
    • Dump应用信息
      • 获取应用 Ability信息
      • 获取应用详情
    • 清除应用数据
      • 清除应用缓存
      • 清除应用数据
    • 显示可调试应用列表
  • 端口转发
    • 显示端口转发列表
    • 本地端口转发到手机
    • 删除端口转发任务
  • 无线调试
  • 文件传输
    • 从本地电脑发送文件至手机
    • 从手机拷贝文件至本地电脑
  • UI模拟操作(点击滑动等)
  • 屏幕截图
  • 屏幕录屏
  • 打开Scheme (URL)
  • 获取页面布局信息(控件树)
  • 录制用户操作
  • 系统日志(log)
  • 导出日志
  • 导出crash日志
  • hidumper工具
    • list system abilities
    • RenderService
    • DisplayManagerService
    • PowerManagerService
    • BatteryService
    • NetConnManager
    • MemoryManagerService
    • StorageManager
  • aa工具
    • start
    • stop-service
    • force-stop
    • test
    • attach
    • detach
    • appdebug
  • bm工具
    • install
    • uninstall
    • dump
    • clean
    • enable
    • disable
    • get
  • param工具
  • Instrument Test
  • 性能工具
  • 参考链接

HDC安装

  • 下载 Command Line Tools 并解压

  • hdc文件在command-line-tools/sdk/HarmonyOS-NEXT-DB2/openharmony/toolchains目录下

  • 配置电脑环境变量,以macOS为例,在~/.bash_profile 或者 ~/.zshrc文件中添加如下内容:

export HM_SDK_HOME="/Users/develop/command-line-tools/sdk/HarmonyOS-NEXT-DB2"  //请以sdk实际安装目录为准
export PATH=$PATH:$HM_SDK_HOME/hms/toolchains:$HM_SDK_HOME/openharmony/toolchains
export HDC_SERVER_PORT=7035

也可以自行编译安装:参考鸿蒙官方gitree文档

基本用法

基本语法

hdc -t <connectKey> <command>

如果只有一个设备/模拟器连接时,可以省略掉-t <connectKey> 这一部分,直接使用hdc <command>。在多个设备/模拟器连接的情况下需要指定-t 参数, connectKey可以通过hdc list targets命令获取,对应Android里的adb devices获取的serialNumber

$ hdc list targets127.0.0.1:5555    //<IP>:<Port>形式的connectKey ,一般为无线连接的设备或模拟器
FMR0223C13000649

比如给FMR0223C13000649 这个设备安装应用:

$ hdc -t FMR0223C13000649 install entry-default-signed.hap[Info]App install path:/Users/develop/entry-default-signed.hap, queuesize:0, msg:install bundle successfully.
AppMod finish

注意事项

  • 使用hdc,如果出现异常,可以尝试通过hdc kill -r命令杀掉并重启hdc服务。
  • 如果出现hdc list targets获取不到设备信息的情况,可以通过任务管理器查看是否有hdc进程存在。若进程存在,则通过hdc kill -r命令杀掉该进程。

设备连接管理

查看HDC版本

$ hdc -vVer: 2.0.0a

启动/停止 HDC Server

停止

$ hdc killKill server finish

重启

$ hdc start -r

查询设备列表

$ hdc list targets127.0.0.1:5555
FMR0223C13000649

-v 选项 显示详细信息

$ hdc list targets -v127.0.0.1:5555		  TCP	  Connected	  localhost
FMR0223C13000649		USB	  Connected	  unknown...

输出的内容第一列为设备的connectKey, 第二列是设备连接方式,第三列为设备连接状态,第四列暂时未知

查询设备UDID

$ hdc shell bm get --udidudid of current device is :
C46284C052AE01BBD2358FE44B279524B508FC959AAB5F4B0B74E42A06569B7E

这个udid在用开发者账号打包时,需要添加这个udid到对应的profile文件中

重启手机

$ hdc target boot

查看设备信息

名称

$ hdc shell param get const.product.name               HUAWEI Mate 60 Pro

Brand

$ hdc shell param get const.product.brandHUAWEI 

Model

$ hdc shell param get const.product.modelALN-AL00 

系统版本

$ hdc shell param get const.product.software.version                                      ALN-AL00 5.0.0.22(SP35DEVC00E22R4P1log) 

OS版本

$ hdc shell param get const.ohos.apiversion  12 

CPU架构

$ hdc  shell param get const.product.cpu.abilist  arm64-v8a 

分辩率

$ hdc shell hidumper -s RenderService -a screen-------------------------------[ability]-----------------------------------------------------------------RenderService---------------------------------
-- ScreenInfo
screen[0]: id=0, powerstatus=POWER_STATUS_OFF, backlight=51, screenType=EXTERNAL_TYPE, render size: 1260x2720, physical screen resolution: 1260x2720, isvirtual=false, skipFrameInterval_:1supportedMode[0]: 1260x2720, refreshrate=120supportedMode[1]: 1260x2720, refreshrate=90supportedMode[2]: 1260x2720, refreshrate=60supportedMode[3]: 1260x2720, refreshrate=30activeMode: 1260x2720, refreshrate=60capability: name=, phywidth=72, phyheight=156,supportlayers=12, virtualDispCount=0, propCount=0, type=DISP_INTF_HDMI, supportWriteBack=false

执行上述命令后,解析返回内容,可以通过正则表达式提取1260x2720

wlan IP

$ hdc shell ifconfiglo        Link encap:Local Loopbackinet addr:127.0.0.1  Mask:255.0.0.0UP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:99055 errors:0 dropped:0 overruns:0 frame:0TX packets:99055 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:5889697 TX bytes:5889697wlan0     Link encap:Ethernet  HWaddr ea:f9:7d:21:52:31inet addr:172.31.125.111  Bcast:172.31.125.255  Mask:255.255.254.0UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1RX packets:1232924 errors:0 dropped:0 overruns:0 frame:0TX packets:2061202 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:877179224 TX bytes:2570352818p2p0      Link encap:Ethernet  HWaddr d2:0d:f7:cc:12:fbUP BROADCAST MULTICAST  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:0 TX bytes:0chba0     Link encap:Ethernet  HWaddr ec:11:05:fb:18:66UP BROADCAST MULTICAST  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:0 TX bytes:0

注意:这个命令在Beta3版本之前,会提示Cannot open netlink socket: Permission denied,需要升级系统。

电量/温度

$ hdc shell hidumper -s BatteryService -a -i                -------------------------------[ability]-----------------------------------------------------------------BatteryService---------------------------------
Current time: 2024-05-30 12:08:37.419
capacity: 100 
batteryLevel: 1 
chargingStatus: 3 
healthState: 1 
pluggedType: 1 
voltage: 4496732 
present: 1 
technology: Li-poly 
nowCurrent: 123 
currentAverage: 83 
totalEnergy: 5203 
remainingEnergy: 5207 
remainingChargeTime: 0 
temperature: 280 
chargeType: 1 

查看屏幕信息

$ hdc shell hidumper -s DisplayManagerService -a -a-------------------------------[ability]-----------------------------------------------------------------DisplayManagerService----------------------------------
-------------- DMS Multi User Info --------------
[oldScbPid:]
[userId:] 100
[ScbPid:] 4438
---------------- Screen ID: 0 ----------------
FoldStatus:                   UNKNOWN
[SCREEN SESSION]
Name:                         UNKNOWN
RSScreenId:                   0
activeModes<id, W, H, RS>:    0, 1260, 2720, 120
SourceMode:                   0
ScreenCombination:            0
Orientation:                  0
Rotation:                     0
ScreenRequestedOrientation:   0
[RS INFO]
SupportedColorGamuts:         0, 4, 6
ScreenColorGamut:             4
GraphicPixelFormat:           0
SupportedScreenHDRFormat:     2, 1, 3
ScreenHDRFormat:              2
SupportedColorSpaces:         0, 2294273, 2294278
ScreenColorSpace:             2294273
[CUTOUT INFO]
WaterFall_L<X,Y,W,H>:         0, 0, 0, 0
WaterFall_T<X,Y,W,H>:         0, 0, 0, 0
WaterFall_R<X,Y,W,H>:         0, 0, 0, 0
WaterFall_B<X,Y,W,H>:         0, 0, 0, 0
BoundingRects<X,Y,W,H>:       [494, 36, 273, 72]
[SCREEN INFO]
VirtualWidth:                 387
VirtualHeight:                836
LastParentId:                 18446744073709551615
ParentId:                     1
IsScreenGroup:                0
VirtualPixelRatio:            3.25
Rotation:                     0
Orientation:                  0
SourceMode:                   0
ScreenType:                   1
[SCREEN PROPERTY]
Rotation:                     0
Density:                      3.25
DensityInCurResolution:       3.25
PhyWidth:                     72
PhyHeight:                    156
RefreshRate:                  60
VirtualPixelRatio:            3.25
ScreenRotation:               0
Orientation:                  0
DisplayOrientation:           0
GetScreenType:                1
ReqOrientation:               0
DPI<X, Y>:                    444.5, 442.871
Offset<X, Y>:                 0, 0
Bounds<L,T,W,H>:              0, 0, 1260, 2720,
PhyBounds<L,T,W,H>:           0, 0, 1260, 2720,
AvailableArea<X,Y,W,H>        

http://www.ppmy.cn/embedded/133711.html

相关文章

CSS flex布局- 最后一个元素占满剩余可用高度转载

效果图 技术要点 height父元素必须有一个设定的高度flex-grow: 1 flex 盒子模型内的该元素将会占据父容器中剩余的空间F12检查最后一行的元素&#xff0c;高度就已经改变了&#xff1b;

【日常记录-Java】SLF4J扫描实现框架的过程

1. 简介 SLF4J(Simple Logging Facade for Java)作为一种简单的门面或抽象&#xff0c;服务于其他各种日志框架&#xff0c;例如JUL、log4j、logback等&#xff0c;核心作用有两项&#xff1a; 提供日志接口&#xff1b;提供获取具体日志对象的方法&#xff1b; 2. 扫描过程 …

WebForms DataList 控件深入解析

WebForms DataList 控件深入解析 概述 在 ASP.NET WebForms 的众多服务器控件中&#xff0c;DataList 控件是一个功能强大的数据绑定控件&#xff0c;它允许开发者以表格形式展示和操作数据。DataList 控件类似于 Repeater 控件&#xff0c;但提供了更多的内置布局和样式选项…

前端开发设计模式——观察者模式

目录 一、定义和特点 1. 定义 2. 特点 二、实现方式 1. 使用 JavaScript 实现观察者模式的基本结构 2. 实际应用中的实现示例 三、使用场景 1. 事件处理 2. 数据绑定 3. 异步通信 4. 组件通信 四、优点 1. 解耦和灵活性 2. 实时响应和数据一致性 3. 提高代码的可…

【蓝桥杯选拔赛真题77】python计算小球 第十五届青少年组蓝桥杯python选拔赛真题 算法思维真题解析

目录 python计算小球 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python计算小球 第十五届蓝桥杯青少年组python比赛选拔赛真题 一、题目要…

计算机网络原理总结C-网络层

网络层 网络层提供的两种服务网际协议IP 虚拟互连网络IP地址子网掩码&#xff08;无分类编址CIDR&#xff09;IP地址和MAC地址IP数据报格式&#xff08;路由&#xff09;转发分组的流程 因特网的路由选择协议&#xff08;动态路由协议&#xff09; 网际控制报文协议ICMPIP多播…

手机无线/有线投屏电脑方案

我的电脑的设置-系统里没有“投影到这台电脑”选项&#xff0c;本文的方案是没有选项的情况下的下位替代&#xff0c;仅作记录 手机&#xff1a;oppo a11 电脑系统&#xff1a;win10 电脑应用&#xff1a;anlink&#xff0c;下载地址&#xff1a;AnLink安联 | AnLink 准备&…

如何学习人工智能?

学习人工智能&#xff08;AI&#xff09;是一个系统化的学习过程&#xff0c;需要从基础开始&#xff0c;逐步深入到高级技术。以下是一个从零开始到进阶的全面学习路线&#xff0c;帮助您掌握人工智能的核心概念和技术。 第一阶段&#xff1a;基础知识 1. 数学基础 线性代数…