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

给鸿蒙 PC 的一封建议——做了 11 个适配项目之后,我想说说哪些地方还能更好

给鸿蒙 PC 的一封建议——做了 11 个适配项目之后,我想说说哪些地方还能更好

欢迎加入开源鸿蒙 PC 社区:https://harmonypc.csdn.net/

这是一个在鸿蒙 PC 上手工适配了 10 个 Qt 开源软件 + 1 个 Electron Demo 的工程师,把自己一路撞过的墙整理出来——给设计这个系统的人,也给打算在这上面做事的人,做一个参考


写在前面

先把底牌亮出来,免得别人觉得我在云吐槽:

  • 设备:自费购入华为 MateBook Pro(HAD-W24,HarmonyOS 6.1.0 / API 23)
  • 使用时长:8 个月,已成为我的主力开发机
  • 适配项目
    • 10 个 Qt 开源软件:DiffPDF / KDiff3 / NotePad-- / glogg / NitroShare / nomacs / QElectroTech / qjackctl / LiteIDE / IronLog(自研)
    • 1 个 Electron 项目:MinElectronOhosDemo
    • 1 个 Electron 大型应用:CopyQ 适配(剪贴板增强)
  • 写作产出:50+ 篇实战博客已发布在 鸿蒙 PC 开发者社区
  • 代码量参考:仓库 4000+ 个文件,800+ 个交叉编译产物 .so

我说的每一条建议,下面都会附**“哪个具体项目里被坑过”**,不空谈。


一、生态:现在不缺设备,缺"我每天都要用的工具"

现状

应用市场打开搜常用工具,密集型踩雷

我每天用的工具macOS / Linux 是否有鸿蒙 PC 应用市场是否有
PDF 对比(DiffPDF / iText)
代码/文本对比(KDiff3 / Beyond Compare)
大日志查看(glogg / lnav)
内网传文件(NitroShare / LocalSend)
批量看图(nomacs / XnView)
剪贴板增强(CopyQ / Maccy)
电路图绘制(QElectroTech)

这 7 个工具里,6 个我已经自己手工移植了——你可以理解为这是用户给系统打的补丁。

建议 1:先盯住"程序员/设计师/工程师"这三类高消费力专业用户的高频小工具

不是要做 Adobe、不是要做 Office、不是要砸钱拉头部应用——那些都已经有了

真正缺的是专业用户依赖的 50 个 GitHub Star 10k+ 的"轻量小工具"——这些工具单个用户黏性极强(“我 5 年没换过 DiffPDF”),换一个生态就走(“鸿蒙 PC 上没有,我就回 Mac”)。

具体建议:

  1. 官方扫一遍 awesome-mac、awesome-linux-software 列表,把里头每个领域 Star 最高的工具拎出来;
  2. 针对开源工具,提供"鸿蒙适配赏金"——按已发布版本下载量结算,给真心做适配的人合理回报;
  3. 官方把交叉编译工具链做成"开箱即用"——现在 Qt-OHOS 的 host 工具(moc/uic/rcc)发出来的是 Windows .exe,Linux/macOS 开发者要自己软链系统包替代(这事我在鸿蒙PC交叉编译环境搭建/里专门写了一篇文章)。

真实例证:DiffPDF 这个 Star 不到 500 的小众工具,我适配后发到社区,单篇博文阅读量 8000+——说明专业用户对这类"缝隙工具"的需求是真实存在的。


二、权限:现在的设计让"中等复杂度应用"几乎做不了

现状

我做 CopyQ 适配时第一次撞墙。剪贴板增强工具需要:

  • 后台常驻,监听系统剪贴板变化
  • 读取剪贴板内容(任何应用复制的东西都要捞)
  • 弹出快捷键面板(全局热键)

这三件事在 macOS 上一个Accessibility权限全搞定,用户在系统设置里勾一下完事。

鸿蒙 PC 上对应的权限是:

ohos.permission.READ_PASTEBOARD ← 普通权限,OK ohos.permission.WINDOW_TOPMOST ← system 级,调试证书申不到 ohos.permission.SYSTEM_FLOAT_WINDOW ← system 级,调试证书申不到 ohos.permission.kernel.ALLOW_WRITABLE_CODE_MEMORY ← V8 需要,system 级

3 个核心权限都是 system 级别。普通开发者的调试证书申请不到,必须走"上架审核"——但你怎么可能没跑通就先上架审核?

建议 2:权限分级需要重新设计

现在的权限设计有个隐性假设:“system 级权限 = 危险 = 不给”

但很多桌面级常见能力是 system 权限——剪贴板增强、屏幕录制、全局热键、悬浮窗、置顶……这些功能在 macOS 上属于"用户勾一下就能用"的常规权限,鸿蒙 PC 上需要走"审核-合作-签字"

具体建议:

  1. 新增"开发者调试权限"档——签了开发者协议的开发者,调试证书也能临时拿到 system 级权限(限时、限设备);
  2. 借鉴 macOS 的"用户授权 + 系统设置可撤销"模式——不是开发者证书给不给,而是用户在系统设置里勾不勾;
  3. 公示权限清单——目前 system 级权限有哪些、各自需要什么资质,没有一个集中的、人能看懂的文档

真实例证:CopyQ 这种 GitHub 10k+ Star 的成熟剪贴板工具,因为权限问题,我至今没能把完整功能跑通——只能做个"演示版"。这是用户损失,也是生态损失。


三、签名:调试一个 Demo 不应该需要"组织开发者账号"

现状

签名机制是我个人觉得当前体验最差的一环

  • 个人开发者证书申请:要实名 + 银行卡 + 等 7 天
  • 调试证书有效期:90 天,到期重申
  • 跨设备调试:每台设备的 UDID 都要加进调试证书 profile,加完要重新签
  • 一台设备最多绑定数量有限——我家里两台测试机 + 公司一台测试机就快用完

对比 macOS:开发者随便编一个 app,本机能直接跑,不签名也行(只是 Gatekeeper 弹一下警告)。iOS 开发的繁琐签名机制不应该被搬到桌面上

建议 3:桌面应用的签名应该比手机宽松

iOS 当年那套严签名机制有道理——手机是触屏 + 系统级账号 + 移动支付载体,签名严是为了用户安全。

但 PC 不是。

PC 上开发者经常在自己机器上跑各种"半成品"——脚本、Demo、内部工具。强行套用手机签名模式,本质上把 PC 当大号手机管,开发体验崩坏。

具体建议:

  1. "个人开发者本机调试"应免签名——只要是当前登录账号的设备,跑自己编的 app 就让它跑;
  2. 签名机制公开化——目前keyPassword: 0000001BD37C2F18F9DC...这种格式根本看不懂是什么;
  3. CI 友好——自动签名目前只能在 DevEco 里点按钮触发,没有命令行接口,CI/CD 集成是手工活。

真实例证:我适配 10 个 Qt 应用的过程里,至少 6 次因为签名问题导致跑不起来——证书过期、设备 UDID 没加、profile.p7b 路径写错、key store 密码记不住。每次都浪费半天。


四、应用市场:开发者的"上架体验"亟需优化

现状

我有几个适配好的应用想上架,结果发现:

  • 没有"开发者预上架"模式——只能正式提交审核
  • 审核反馈不透明——"建议优化"具体优化什么不告诉你
  • 元数据要求过于细——截图 4 种尺寸、宣传图 3 种比例、应用描述长度限制……开源工具的作者根本搞不来这些
  • 没有"自动从开源协议生成隐私政策"的工具——MIT 协议的开源工具要求填一份正式的隐私政策,作者真的不知道怎么填

建议 4:给开源软件一条"轻量上架通道"

iOS 的 App Store 那一套商业化流水线对独立开发者已经过于沉重,鸿蒙 PC 没必要照抄。

具体建议:

  1. 开源软件专属上架通道:自动读取 GitHub LICENSE / README / 截图,开发者只需要补一个"鸿蒙 PC 适配说明";
  2. 审核透明化:被拒原因要具体到"哪一条违反了哪个规则",链接到具体条款;
  3. 延迟审核 + 用户自担风险模式:参考 Steam 的"早期访问",未审核应用允许用户主动开启"开发版安装"看到。

真实例证:我的 IronLog(自研健身记录工具)从想上架到放弃上架,前后3 次提交全部被打回——原因都是隐私政策格式、截图尺寸、应用描述字数。适配代码我跑通用了 3 天,上架元数据弄了 1 周还没过


五、开发文档:现在是"官方文档很全"和"实战遇到的坑零文档"并存

现状

华为的官方开发者文档结构非常齐——API 列表、组件指南、ArkTS 语法手册一应俱全。

但我做适配遇到的真实问题,90% 在官方文档里找不到答案

我遇到的问题官方文档社区博客我最后怎么解决
Qt-OHOS host 工具是 Windows .exe,Linux 上跑不了自己摸索
qt_resourceFeatureZlib符号缺失闪退自己 grep 源码
Electron 在 6.1 上napi_unwrap fail自己换包测试
4KB 页对齐写入 .so 头⚠️ 1 条自己写 Python 脚本修
moc ABI 5.15 → 5.12 降级自己读 moc 源码

5 个核心坑里,官方文档 0 命中。

建议 5:官方文档需要一个"踩坑库"分支

文档不应该只有"应该怎么做",更应该有"做错了会怎么样、怎么修"。

具体建议:

  1. 官方维护一个troubleshooting.md大全——按"错误信息原文"索引,让开发者搜得到;
  2. 每个 NDK API 加一个"常见崩溃"栏目——比如napi_wrap旁边写清楚"如果 .so 是按 OHOS 5.0.x NAPI 协议编译的,在 6.0+ 上会报 napi_unwrap fail";
  3. 官方主动收编社区高质量博客——很多答案在 CSDN / 掘金里有,但被淹没在水文里。

真实例证:我写的《鸿蒙 PC HAP 安装失败 no signature file 排查与修复》这一篇博文,被引用了 30+ 次——说明这个具体错误官方没解释清楚,但开发者大量在踩。


六、和苹果对比:5 件应该学的、3 件不该学的

我用 macOS 10 年。下面这部分会有点尖锐,但请把它当成"诚实反馈",不是"舔苹果"。

✅ 应该学苹果的 5 件事

1.pkg-config/brew这一套依赖管理体验

macOS 上装一个 Qt 开发环境:

brewinstallqt@5# 完事

鸿蒙 PC 上装交叉编译 Qt:下载 SDK → 软链 host 工具 → 配环境变量 → 找镜像 → 自己改 CMake toolchain(参考我那篇 581 行的环境搭建文章)。

brew 的体验做到鸿蒙 PC 上,开发者数量能翻倍。

2.代码签名应该是"系统帮你做"而不是"开发者自己折腾"

macOS 上:

codesign--force--deep--sign- MyApp.app# 不签名也能跑(Gatekeeper 让用户授权一次)

鸿蒙 PC 上签名流程的复杂度(见第三节),是 macOS 的 5-10 倍。

3.Universal Binary 思路

Apple Silicon 转换时苹果做了 Universal 二进制——一个包同时含 x86_64 + arm64,自动选。

鸿蒙 PC 现在还是 arm64-v8a 单架构为主。未来鸿蒙 PC 进 x86_64 笔记本时(这是迟早的事),现在不预留 Universal Binary 设计,会重蹈 Apple 当年 fat binary 的覆辙。

4.macOS 的"开发者模式"和"普通用户模式"严格区分

macOS 上开发者打开 Xcode 命令行工具,系统就知道你是开发者——sudo dscl . -append /Groups/_developer GroupMembership $USER,之后很多调试操作免确认。

鸿蒙 PC 现在不区分"开发者"和"普通用户"的设备状态,结果就是:普通用户被各种"开发者权限"卡住(其实他们不需要),开发者也要走普通用户的弹窗确认流程(其实多余)。

5.Finder 的"快速预览"

macOS 按一下空格就预览文件。这个交互全世界都在抄,鸿蒙 PC 没抄。

❌ 不应该学苹果的 3 件事

1.App Store 的 30% 抽成不要照搬

如果鸿蒙 PC 应用市场未来收抽成,请明确设置"开源软件 0 抽成"档

2.不要照搬苹果的"反开发者倾向"

苹果这几年在 macOS 上一直收紧——sudo越来越多场景要授权、kext 加载越来越难、第三方应用越来越不被信任。

鸿蒙 PC 如果学这条路,短期商业回报很好看,长期会失去整个独立开发者社区

3.不要学苹果"硬件焊死"路线

MacBook 现在内存焊死、SSD 焊死、电池焊死——所有维修都得回原厂。

MateBook Pro 现在的可拆卸/可升级体验显著好于 Mac,希望这点能保持。


七、几个"看似小但每天都在烦"的细节建议

7.1 hdc 命令应该自动加入 PATH

macOS 上which adb直接出路径。

鸿蒙 PC:装完 DevEco 之后,hdc 在哪?大概在:

~/Library/Huawei/Sdk/openharmony/9/toolchains/hdc

这个路径不在 PATH 里,开发者第一次用 hdc 要自己找。我建议:DevEco 安装时默认把 hdc 加到 PATH,或者提供/usr/local/bin/hdc软链。

7.2 鸿蒙 PC 应该有"原生 SSH 终端"

现在鸿蒙 PC 上 SSH 连服务器要装第三方终端 App。应该有一个官方的、跟 macOS Terminal 一个水准的终端——支持标签页、配色方案、配置 .ssh/config。

7.3 文件管理器需要"开发者视图"

鸿蒙 PC 的文件管理器默认隐藏点开头的文件(.bashrc.ssh/.gitconfig)。

切换开关藏得很深。应该有一个"开发者模式视图"开关,一键显示所有点文件。

7.4 DevEco Studio 应该开放插件市场

现在 DevEco 基于 IDEA,但不能装 IDEA 插件——这等于断了开发者积累多年的插件生态。

很多开发者(包括我)DevEco 用来写鸿蒙代码,写 ets 之外的代码还是要回 VS Code——因为 GitLens / Tabnine / GitHub Copilot 这些插件 DevEco 装不上。

建议 9:DevEco 应该兼容 IDEA 插件,至少兼容一部分核心生产力插件

JetBrains 生态本身就是 PC 桌面的核心生产力源——把开发者从这个生态里拽出来需要等值替代品,目前 DevEco 还没做到。


八、最想说的一句话

我做完 11 个适配项目之后,对鸿蒙 PC 整体的判断是:

底子是好的,问题不在能不能用,问题在"用起来太累"——而这种累很多是设计选择导致的,不是技术不行。

技术上鸿蒙 PC 已经能跑 Qt + Electron + 各种工程化中等复杂度的应用。这个我用 11 个项目证明过了。

开发体验这一层——签名复杂度、权限分级、文档完整度、IDE 生态、工具链友好度——这些是设计可以改、不需要重写底层的事

希望以上 9 条建议有一两条能进到设计鸿蒙 PC 的人的视野里。我不是要它变成 macOS,也不是要它变成 Windows——

我想要它成为我未来 10 年的主力机。它现在很接近了,差临门一脚。


写在最后

写这篇文章我犹豫了一周。

因为很多话写出来会得罪人——得罪做这个系统的工程师(“凭啥说我们设计不好”)、得罪某些社区里"只能说好话"的氛围。

但我后来想,如果我适配了 11 个项目踩了这么多坑都不写出来,那比我还能折腾的开发者更不会写。没人写就没人改,没人改这个系统就慢慢变成"只能看不能用"的样子。

所以这篇是诚意之作。写它不是因为我对鸿蒙 PC 失望,恰好相反——是因为我已经把它当主力机了,希望它越来越好

如果你也是鸿蒙 PC 开发者,欢迎来 https://harmonypc.csdn.net/ 交流。如果你是华为/鸿蒙的产品/工程师看到了这篇,欢迎私信聊——我可以提供更详细的踩坑数据。

http://www.cnnetsun.cn/news/2866377.html

相关文章:

  • 别再死记硬背了!用Python requests库5分钟写一个SQL注入POC(附sqli-labs实战)
  • CPT Markets:聚焦细节,看看合规意识的关键清单
  • TMS320F28377D项目实战:手把手教你用SCIA调试OLED屏幕,附完整代码与避坑点
  • 洛雪音乐音源完全指南:解锁全网高品质音乐的秘密武器
  • SetDPI:Windows多显示器DPI缩放终极解决方案,告别模糊显示困扰
  • FPGA串口通信避坑指南:手把手教你实现带奇偶校验的UART环回测试(附Verilog代码)
  • 一线电力工程师随身计算包:40个免安装Excel表+5款便携小工具,搞定选型、防雷、接地、负荷等现场算账
  • FPGA玩转ST7789V SPI屏:从看懂C代码到写出Verilog状态机的避坑指南
  • Citra模拟器完美运行指南:告别黑屏闪退,10分钟轻松搞定
  • ssm246品牌手机销售信息系统+jsp(文档+源码)_kaic
  • 服务器性能指标:TPS、CPS、QPS 全解
  • netapi32.dll 异常排查:共享访问、域账号和系统网络组件别混在一起
  • 别再只点灯了!用ESP32的FFT功能做个实时音频分析仪,附Arduino代码详解
  • 告别串口盲猜:用C#和Windows API精准获取USB转串口设备的友好名称与硬件ID
  • Windows Defender Remover:3步彻底关闭系统防护的完整指南
  • 深蓝词库转换终极指南:一键解决输入法词库迁移难题
  • MicMac终极指南:免费开源摄影测量软件从零到三维建模专家
  • 题解:AtCoder AT_awc0087_e Change of Assigned Interval
  • Go语言为何成为TVA的“血液循环系统”(5)
  • 3个简单步骤:用WinDiskWriter在Mac上制作Windows启动U盘
  • 从聊天室到股票行情:用JavaScript手把手实现一个可配置的轮询/长轮询通用工具库
  • 3ds Max特效师必看:手把手教你用tyFlow的MAXScript接口读取粒子数据做二次开发
  • 3步解密微信数据:从技术合规到数据安全的实践指南
  • CryptoJS 4.2.0:如何在JavaScript项目中实现专业级数据加密保护
  • 看完就会:盘点2026年人气爆表的的AI论文网站
  • 告别复制粘贴!在ESP32 IDF5.0中优雅地集成ST7735S驱动(附完整组件源码)
  • 围棋对局图像自动解析工具:Python+OpenCV识别棋盘网格与黑白子位置
  • 191.手机刷机底层原理详解|GPT分区表、AVB签名链、efuse熔断机制深度解析
  • AI 电动纺织面料切割机智能功率 MOSFET 完整选型方案
  • BMS开发避坑指南:卡尔曼滤波SOC估算中的参数整定与工程化陷阱