news 2025/12/24 11:38:08

HarmonyOS 5 高效使用命令:HDC 基本使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HarmonyOS 5 高效使用命令:HDC 基本使用

大家好,我是不想掉发的鸿蒙开发工程师城中的雾。

上一期我们终于把那根该死的数据线接通了,终端里终于蹦出了设备的序列号。如果你还没连上,请出门左转看 [Vol.01 连接篇]。

连上设备后,下一件头秃的大事是什么?当然是把 App 装进去

你可能会说:“点一下 IDE 绿色的 Run 按钮不就行了吗?”

兄弟,。当你在做自动化测试时、当测试给你的手机里装了旧版本死活覆盖不上时、当你不想打开笨重的 IDE 只想快速验证一个 HAP 包时,HDC 才是你唯一的救命稻草。

本期文章,我们来聊聊如何掌握 App 的“生杀大权”:安装、卸载、查户口、以及像黑客一样直接启动页面

一、安装:不仅是 install 这么简单

在 IDE 里,安装就是个进度条。但在命令行里,安装充满了“博弈”。

1. 标准姿势

最基础的命令,把电脑上的 HAP 包推到手机里并安装:

hdc install 你的安装包路径.hap

如果你的路径里有空格(比如 C:\Program Files…),记得用英文双引号把路径包起来,否则 HDC 会以为你传了两个参数。

2. 覆盖安装:“-r” 的救赎

很多时候,你修改了代码重新打了个包,想装到手机上,结果报错:

Error: INSTALL_FAILED_VERSION_DOWNGRADE 或者 INSTALL_FAILED_ALREADY_EXISTS。

这时候,系统在傲娇地告诉你:“里面已经有一个同名的 App 了,且版本比你的高/一样,我不装!”

别急,加个-r(replace),强制覆盖:

hdc install -r 你的安装包路径.hap

这就好比对系统说:“少废话,听我的,覆盖它!”这是开发过程中最高频使用的参数,建议刻在 DNA 里。

二、查户口:手机里到底装了谁?

有时候你想卸载一个 App,手指悬在键盘上准备敲命令,突然愣住了:

“哎?我的包名(Bundle Name)是啥来着?”

是 com.example.demo?还是 com.test.final.v2?

别去翻 AppScope/app.json5 了,直接问手机。

1. 查看所有已安装的包

我们需要进入手机的 Shell 环境,问问包管理器(Bundle Manager, 简称bm):

hdc shell bm dump -a

这会列出手机里成百上千个包名,看得你密集恐惧症犯。

2. 精准打击:搜特定包名

如果你记得包名里包含 “demo”,可以用grep(Linux/Mac) 或findstr(Windows) 过滤一下:

# Windows hdc shell bm dump -a | findstr demo # Mac/Linux hdc shell bm dump -a | grep demo

这样,你就能从茫茫包海中找到那个com.chengwu.superdemo

三、卸载:让往事随风

找到了包名,卸载就只是一行代码的事。

注意:这里用的是包名 (Bundle Name),不是 HAP 文件名!

hdc uninstall com.chengwu.superdemo

执行完这句,手机上那个图标就消失了,所有本地数据(数据库、缓存)也会被彻底清空。

如果我只想卸载 App,但想保留里面的数据库方便下次调试怎么办?

在 Android ADB 里有-k(keep data) 参数,但在鸿蒙目前的 HDC 版本中,卸载通常就是“净身出户”。如果需要保留数据,建议直接用-r覆盖安装,而不是先卸载再安装。

四、黑科技:AA 启动 (Ability Assistant)

这是本期的压轴大招

很多时候,我们要测试 App 里的某一个特定页面(比如支付成功页、通知落地页)。

传统做法:打开 App -> 点登录 -> 点商品 -> 点购买 -> 终于到了支付页。

HDC 做法:直接空降!

鸿蒙系统里有一个Ability Assistant (aa)工具,专门用来调度 Ability。

1. 基础启动

直接拉起应用的主 Ability:

hdc shell aa start -a EntryAbility -b com.chengwu.superdemo
  • -a: 这里的EntryAbility是你在代码里写的 UIAbility 类名。
  • -b: 包名。

2. 携带参数启动 (模拟路由跳转)

如果页面需要参数(比如orderId=10086)怎么办?用-s传参:

hdc shell aa start -a EntryAbility -b com.chengwu.superdemo -s orderId 10086

然后在你的EntryAbility.tsonCreateonNewWant生命周期里,就能通过want.parameters拿到这个参数。这对于测试通知栏点击跳转H5 唤起 App等场景简直是神技。

五、小思考:hdc install 和 hdc shell bm install 有啥区别?

在深入使用后,你可能会发现网上有两种安装命令:

  1. hdc install xxx.hap
  2. hdc shell bm install -p /data/local/tmp/xxx.hap

这俩有啥区别?

其实,hdc install 是一个复合动作:它先把你电脑上的 hap 文件推送到手机的临时目录,然后再调用手机内部的 bm install 命令进行安装。

而 hdc shell bm install 是纯手机内部的命令,前提是你得先把文件推进去。

结论:平时开发,用hdc install就够了,它帮咱们省了一步“推送文件”的麻烦。懒,才是第一生产力。

六、总结

今天我们掌握了 App 在鸿蒙设备上的生老病死:

  1. 生 (安装)hdc install -r,遇事不决加个-r
  2. 老 (查找)hdc shell bm dump -a,查户口专用。
  3. 病 (调试)hdc shell aa start,精准空降指定页面。
  4. 死 (卸载)hdc uninstall,挥一挥衣袖不带走一片云彩。

下一期,我们将进入数据篇。App 崩溃了日志怎么抓?电脑里的文件怎么塞进模拟器里?

不想掉发的朋友们,请务必点赞支持一下下一期 [Vol.03 数据篇:文件传输与日志追踪]!

📚 充电时间

如果有想加入鸿蒙生态的大佬们,快来加入鸿蒙认证吧!初高级证书还没获取的,点这里:

🔗 HarmonyOS第一课:官方认证培训

如果您有任何疑问、对文章写的不满意、发现错误或者有更好的方法,欢迎在评论、私信中提出,非常感谢您的支持。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/22 22:02:31

Figma中文插件终极体验:英文小白秒变设计大神

还在对着Figma满屏的英文发愁吗?是不是每次找功能都要靠猜?别担心,Figma中文插件来了!这款由专业设计师团队精心打磨的本地化工具,让你彻底告别语言障碍,轻松玩转设计神器。 【免费下载链接】figmaCN 中文 …

作者头像 李华
网站建设 2025/12/22 22:02:24

Supersplat开发环境终极配置指南:10个快速优化技巧

Supersplat作为专业的3D高斯溅射编辑器,在开发过程中可能会遇到各种环境配置问题。本指南将为您提供从基础配置到高级优化的完整解决方案,帮助您快速搭建高效的开发环境。 【免费下载链接】supersplat 3D Gaussian Splat Editor 项目地址: https://git…

作者头像 李华
网站建设 2025/12/22 22:02:19

Bili动态抽奖助手:告别手动转发,用技术实现自动抽奖自由

还在为错过B站抽奖而懊恼吗?还在为手动转发评论而疲惫吗?Bili动态抽奖助手(LotteryAutoScript)就是你的"抽奖神器",这款基于Node.js的开源工具能帮你自动参与B站动态抽奖,让你躺着也能中奖&#…

作者头像 李华
网站建设 2025/12/22 22:02:05

AI歌声黑科技:5分钟打造专属虚拟歌手的实用指南

AI歌声黑科技:5分钟打造专属虚拟歌手的实用指南 【免费下载链接】so-vits-svc-5.0 Core Engine of Singing Voice Conversion & Singing Voice Clone 项目地址: https://gitcode.com/gh_mirrors/so/so-vits-svc-5.0 你是否曾梦想过拥有自己的虚拟歌手&am…

作者头像 李华
网站建设 2025/12/22 22:01:05

AzurLaneLive2DExtract终极指南:三步轻松提取碧蓝航线Live2D模型

AzurLaneLive2DExtract终极指南:三步轻松提取碧蓝航线Live2D模型 【免费下载链接】AzurLaneLive2DExtract OBSOLETE - see readme / 碧蓝航线Live2D提取 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneLive2DExtract 还在为无法保存碧蓝航线中精美的…

作者头像 李华