让 AI 帮你编译部署鸿蒙应用:harmonyos-build-deploy Skill

让 AI 帮你编译部署鸿蒙应用:harmonyos-build-deploy Skill

让 AI 帮你编译部署鸿蒙应用:harmonyos-build-deploy Skill

这不是一篇教你敲命令的文章。这是一篇关于如何让 AI 成为你的鸿蒙开发助手,帮你完成从编译到部署全流程的实践分享。
在这里插入图片描述

为什么要做这个 Skill?

不是给开发者用的,是给 AI 用的

传统的 CLI 工具设计理念是:开发者学习命令 → 开发者执行命令

但在 AI Coding 时代,我们有了新的可能:开发者描述需求 → AI 理解并执行

在这里插入图片描述

harmonyos-build-deploy 的设计初心就是:

让 Claude 能够理解鸿蒙项目,自动完成编译、签名、部署、调试的全流程。开发者只需要用自然语言描述需求。

什么是 Claude Code Skill?

Claude Code 是 Anthropic 推出的 AI 编程助手。Skill 是一种扩展机制,可以教会 Claude 特定领域的知识和能力。

当你安装了 harmonyos-build-deploy Skill 后,Claude 就具备了:

  • 🧠 理解鸿蒙项目结构(HAP/HSP/HAR 模块)
  • 🔧 知道如何使用 hvigorw、hdc、ohpm 等工具
  • 📦 能够分析模块依赖并按正确顺序编译
  • 📱 可以将应用部署到真机并启动
  • 🏪 能够打包 .app 文件用于上架 AppGallery
在这里插入图片描述

实际使用场景

场景 1:日常开发调试

你只需要说:

帮我编译一下这个鸿蒙项目,部署到手机上运行 

Claude 会自动:

  1. 识别这是一个鸿蒙项目
  2. 调用 npx harmonyos-deploy --all --launch
  3. 等待编译完成,处理可能的错误
  4. 部署到设备并启动应用
  5. 向你报告结果
在这里插入图片描述

场景 2:切换环境

你只需要说:

切换到生产环境,用 release 模式重新打包部署 

Claude 理解后执行:

npx harmonyos-deploy --all-p production --release--launch

场景 3:调试问题

你只需要说:

应用好像有问题,帮我看看设备日志,过滤 NetworkError 相关的 

Claude 会:

npx harmonyos-deploy --log-only --filter NetworkError 

然后帮你分析日志内容,定位问题。

在这里插入图片描述

场景 4:准备上架

你只需要说:

项目开发完了,帮我打个包准备上架华为应用市场 

Claude 会:

  1. 使用 release 模式打包 .app 文件
  2. 确保 debuggable=false
  3. 输出文件路径和大小
  4. 告诉你下一步去 AppGallery Connect 上传
npx harmonyos-deploy --app-p production --release-o ./dist 
在这里插入图片描述

AI + Skill 的协作模式

传统方式 vs AI Coding

传统方式AI Coding + Skill
查文档学习 hvigorw 命令直接说"编译项目"
记忆各种参数组合AI 自动选择正确参数
手动分析编译错误AI 解读错误并给出修复建议
一个个执行命令AI 自动串联完整流程
切换环境要改配置说一句话就切换

Skill 如何工作

┌─────────────────────────────────────────────────────────────┐ │ 开发者 │ │ "帮我编译部署" │ └─────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ Claude Code │ │ 1. 理解用户意图:编译 + 部署 │ │ 2. 识别项目类型:检测到 build-profile.json5 → 鸿蒙项目 │ │ 3. 调用 Skill:harmonyos-build-deploy │ │ 4. 执行命令:npx harmonyos-deploy --all --launch │ │ 5. 处理结果:成功/失败 → 反馈给用户 │ └─────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ harmonyos-deploy CLI │ │ • ohpm install │ │ • hvigorw assembleHap/assembleHsp │ │ • hdc install │ │ • aa start │ └─────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ 鸿蒙设备 │ │ 应用成功运行 │ └─────────────────────────────────────────────────────────────┘ 
在这里插入图片描述

如何开始使用

方式 1:在 Claude Code 中安装 Skill

# 安装 skill /skill install harmonyos-build-deploy 

安装后,Claude 就会在你提到鸿蒙编译、部署、hvigor、hdc 等关键词时自动激活这个 Skill。

方式 2:直接使用(无需 Skill)

即使不安装 Skill,你也可以在对话中引导 Claude 使用这个工具:

我的项目是鸿蒙应用,请使用 npx harmonyos-deploy 来帮我编译部署 

方式 3:项目级配置

在项目根目录创建 .claude/skills/ 文件夹,将 Skill 文件放入,Claude 会自动加载。

触发关键词

当你在对话中提到以下关键词时,Claude 会自动识别并使用 harmonyos-build-deploy:

  • 鸿蒙、HarmonyOS、OpenHarmony
  • 编译、构建、部署、安装
  • hvigor、hvigorw、hdc
  • HAP、HSP、HAR
  • AppGallery、上架
  • ohpm、hilog

Skill 的技术实现

零依赖设计

整个工具是一个约 1900 行的 Node.js 脚本,不依赖任何第三方 npm 包。这意味着:

  • ✅ 无需 npm install
  • ✅ 直接 npx 运行
  • ✅ AI 可以立即使用

智能依赖解析

对于多模块项目,工具会:

  1. 扫描所有 oh-package.json5
  2. 解析 dependencies 字段
  3. 构建依赖图
  4. 拓扑排序得到正确的编译顺序
lushu_acommon (无依赖) ↓ lushu_appcommon (依赖 acommon) ↓ lushu_home, lushu_service... (依赖 acommon + appcommon) ↓ entry (HAP,最后编译) 

错误诊断

当编译或安装失败时,工具会分析错误并给出修复建议,AI 可以直接将这些信息呈现给你。

未来展望

更深度的 AI 集成

  • 🔮 AI 直接修改代码后自动重新编译部署
  • 🔮 AI 分析运行时日志,自动定位并修复 Bug
  • 🔮 AI 根据测试结果自动优化性能

更完整的 DevOps 支持

  • 🔮 自动化测试集成
  • 🔮 多设备并行部署
  • 🔮 版本管理和发布流程

开源地址

  • GitHub: https://github.com/supermanaaaa/harmonyos-build-deploy
  • npm: https://www.npmjs.com/package/harmonyos-deploy
  • Claude Skills: 已提交至 anthropics/skills
在这里插入图片描述

总结

harmonyos-build-deploy 不仅仅是一个 CLI 工具,更是连接 AI 能力鸿蒙开发 的桥梁。

它的存在让 Claude 能够:

  • 理解鸿蒙项目的结构和构建流程
  • 执行复杂的多模块编译
  • 处理设备部署和调试
  • 完成应用上架打包

而你只需要:

  • 用自然语言描述需求
  • 让 AI 帮你完成剩下的工作

这就是 AI Coding 时代的开发方式。


作者:supermanaaaa

项目地址:https://github.com/supermanaaaa/harmonyos-build-deploy

如果这个 Skill 对你有帮助,请给个 ⭐️ Star 支持一下!

Read more

C++逆向工程必备:用c++filt一键解析GCC编译后的神秘函数名(附实战案例)

C++逆向工程实战:用c++filt破解GCC函数名混淆的终极指南 1. 从崩溃日志到可读符号:逆向工程师的必备武器 当你在凌晨三点收到生产环境崩溃警报时,面对日志中_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc这样的符号,是否感到绝望?这就是C++的name mangling机制在"作祟"——编译器为了支持函数重载等特性,将函数名和参数类型编码成一串晦涩的符号。但别担心,c++filt正是为此而生的瑞士军刀。 典型崩溃分析场景中的痛点: * 核心转储文件中难以辨认的函数调用栈 * 动态链接库中无法直观理解的导出符号 * 跨语言调用时的链接错误 * 第三方库调试时的符号匹配问题 # 实战示例:解析崩溃堆栈 $ cat crash.log | grep '#' | awk '{print $4}' | c++filt std::__cxx11::basic_string<

By Ne0inhk
【c++指南】模板VS手写代码:这场效率对决你站哪边?【上】

【c++指南】模板VS手写代码:这场效率对决你站哪边?【上】

🌟 各位看官好,我是egoist2023! 🌍 种一棵树最好是十年前,其次是现在! 🚀 今天来学习模板的相关知识,有了模板之后就能大大提高效率。 👍 如果觉得这篇文章有帮助,欢迎您一键三连,分享给更多人哦! 目录 引入 泛型编程 函数模板 概念 格式 原理 函数模板实例化 匹配原则 引入 类模板 定义格式 类模板实例化 引入 泛型编程 在如上一段代码中,写了一个Swap函数,为了多种类型的支持,因此通过函数重载达到了多种类型的变量的交换。但是,如果此时增加一个新类型:如float类型或者类类型时,又需要程序员再增加自己对应的的函数。 1. 这是非常麻烦且代码复用性较低。每当出现新类型,都需要手动增加新函数; 2. 代码的维护性低,一旦某个位置出错,其余的函数重载都得改动。 很显然,这种方式不是我们所期望的。那能否告诉编译器一个模子,让编译器根据不同的类型利用该模子来生成代码呢? 泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。换句话说,有了函数重载的支持,

By Ne0inhk
C++ 中的协程与 Fiber:下一代异步编程模型在游戏中的应用

C++ 中的协程与 Fiber:下一代异步编程模型在游戏中的应用

C++ 中的协程与 Fiber:下一代异步编程模型在游戏中的应用 一、前言:异步编程的进化之路 在游戏开发中,异步机制无处不在:资源加载、AI 逻辑、动画系统、网络事件处理……但传统基于回调或线程的模型往往存在以下问题: * 回调地狱导致代码难以维护 * 线程上下文切换开销大,调度不高效 * 异步逻辑分散,状态管理困难 为解决这些痛点,C++ 协程(Coroutines)与 Fiber 机制作为新一代轻量异步编程模型,在游戏中逐渐被采纳。 二、协程 vs Fiber:机制对比 Thread+ OS 调度+ 堆栈独立+ 切换开销高Coroutine+ 编译器级支持+ 可挂起与恢复+ 对象生命周期自动管理Fiber+ 用户态切换+ 自定义调度器+ 适用于任务调度框架 特性协程(C++20)Fiber(用户态线程)切换开销极低(

By Ne0inhk
C++之《程序员自我修养》读书总结(5)

C++之《程序员自我修养》读书总结(5)

《程序员自我修养》读书总结(五) Author: Once Day Date: 2026年2月12日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可参考专栏: 书籍阅读_Once-Day的博客-ZEEKLOG博客 参考文章:《程序员的自我修养》读书笔记 | Zachary’s blog《程序员的自我修养》阅读笔记 - T0fV404 - 博客园读书笔记:《程序员的自我修养》 - 楷哥 - 博客园 文章目录 * 《程序员自我修养》读书总结(五) * 5. Windows PE/COFF 格式 * 5.1 发展历史 * 5.2 mingw-w64 工具链 * 5.

By Ne0inhk