当前位置: 首页 > article >正文

如何在鸿蒙本地模拟器中使用HDC工具

引言

HDC是指华为设备连接(Huawei Device Connector)工具。它的作用类似Android开发的ADB工具。在华为鸿蒙(HarmonyOS)操作系统的开发过程中,HDC工具起到了至关重要的作用。它允许开发者在开发主机(如 PC)和鸿蒙设备(如手机、平板、智能穿戴设备等)之间建立连接。通过这种连接,开发者可以将编译好的应用程序(.hap 文件)安装到设备上进行测试,也可以查看设备的日志信息,以帮助调试应用程序中可能出现的问题。

模拟器对应的HDC工具

在华为的SDK目录下有多个目录都有hdc.exe,但是一定要使用hmscore目录(hmscore\3.1.0\toolchains)下的hdc.exe。这个工具是和本地模拟器匹配的版本,其他目录下的hdc.exe和模拟器不匹配,无法使用。

按照以下步骤启动模拟器并连接:

  • 打开鸿蒙模拟器,等待模拟器完全启动并进入系统界面。
  • 在命令行终端输入 “hdc list targets -v” 命令,查看是否能够识别到模拟器设备。如果模拟器正常启动且连接成功,会显示模拟器的相关信息,类似 “emulator-5554 device”。

 

 然后就可以执行hdc shell命令实现各种操作了。例如./hdc shell ifconfig可以看到模拟器上的网卡信息。

PS D:\Huawei\SDK\hmscore\3.1.0\toolchains> ./hdc shell ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope: Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:34 errors:0 dropped:0 overruns:0 frame:0
          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:4630 TX bytes:4630

dummy0    Link encap:Ethernet  HWaddr f6:df:d7:78:2d:40
          inet6 addr: fe80::f4df:d7ff:fe78:2d40/64 Scope: Link
          UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:206 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 TX bytes:42477

eth0      Link encap:Ethernet  HWaddr 52:54:00:12:34:56  Driver virtio_net
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::9b3a:96ff:5078:1241/64 Scope: Link
          inet6 addr: fec0::2872:25a5:ccb1:4673/64 Scope: Site
          inet6 addr: fec0::f930:e2bd:faa4:f577/64 Scope: Site
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:562 errors:0 dropped:0 overruns:0 frame:0
          TX packets:971 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:60396 TX bytes:169189

wlan0     Link encap:Ethernet  HWaddr c2:1b:95:aa:1f:95  Driver mac80211_hwsim
          inet addr:10.0.2.16  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::c01b:95ff:feaa:1f95/64 Scope: Link
          inet6 addr: fec0::c01b:95ff:feaa:1f95/64 Scope: Site
          inet6 addr: fec0::8dd:abe4:c810:e7f5/64 Scope: Site
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:106 errors:0 dropped:0 overruns:0 frame:0
          TX packets:237 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:21742 TX bytes:46536

为什么在模拟器里面很难实现UDP服务器

从上面的日志可以看到,虚拟器中有两个网卡eth0和wlan0(如果没有打开wlan开关,则看不到wlan0).。这两个网卡的地址并不是本地的IP地址,而是10.0.2.*。实际上这两个地址并不是在PC机上直接可以访问的地址,它们隐藏在网关背后。

如果想让外面的程序访问到模拟器里面的服务器,就需要使用hdc tprot命令进行端口转发,如:hdc fport tcp:7913 tcp:7912将本地电脑的7913端口转发到手机7912端口。但是这种转发只支持TCP协议,不支持UDP协议。所以很难在模拟器里面实现UDP服务器。

结语

HDC是个很好用的工具,有了它可以软件就更方便了。


http://www.kler.cn/a/456507.html

相关文章:

  • NLP基础知识 - 向量化
  • Vscode左大括号不另起一行、注释自动换行
  • redis数据结构设计
  • 2025年广告投放新认知
  • 怎么在电脑桌面上设置备忘录,桌面工作提醒小工具哪个好?
  • LeetCode每日三题(六)数组
  • JAVA学习笔记第二阶段开始 Day11 五种机制---机制1:泛型机制
  • Java和Go语言的优劣势对比
  • DVWA靶场搭建及错误解决教程
  • SQL 基础教程
  • 音视频学习(二十八):websocket-flv
  • 攻防世界web第二题unseping
  • leetcode刷题——动态规划(2)
  • Vue使用Tinymce 编辑器
  • 《机器学习》数据预处理简介
  • 2024第一届Solar杯应急响应挑战赛wp
  • Blazor开发中注册功能设计研究
  • 阿里云 安全组设置 仍失效问题 解决方案
  • 欢迪迈手机商城设计与实现基于(代码+数据库+LW)
  • CCF-GESP 等级考试 2023年12月认证C++三级真题解析
  • UAVCAN/DroneCAN链路开发
  • 单例模式懒汉式、饿汉式(线程安全)
  • Live555、FFmpeg、GStreamer介绍
  • acitvemq AMQP:因为消息映射策略配置导致的MQTT接收JMS消息乱码问题 x-opt-jms-dest x-opt-jms-msg-type
  • 机器学习基本概念,基本步骤,分类,简单理解,线性模型
  • 【期末复习】JavaEE(下)