☰
从应用内代码到 Library 模块:建立真正可复用的 HAR 边界
2026/10/28 1:50:22 网站建设 项目流程

专栏:HarmonyOS 三方库适配实战(13/30)
核心问题:代码在entry里能运行,为什么还不能称为三方库?

摘要

应用内代码可以读取页面状态、资源和业务单例,也可以跨目录引用任何实现;三方库却必须有独立入口、清楚依赖和可被另一个模块消费的公共 API。本文以library_adapter为例,把文本归一化代码放进 Static Library 模块,入口只导出稳定符号,entry仅通过包名和 HAR 使用。当前工程已完成 HAR 与消费方 HAP 构建,但未进行设备运行。

应用代码与库代码的责任不同

应用内实现可复用库
可以知道页面与业务流程不应依赖消费方页面
可直接读取本工程资源资源必须随包交付或由调用方提供
内部路径可能随意引用消费方只能走公共入口
版本由应用整体管理包有自己的名称、版本和兼容承诺
改动只影响当前应用改动可能破坏所有消费者

图 1:Library 模块拥有独立入口与依赖;应用只做消费和场景验证。

教学工程的模块布局

harmonyos-third-party-lab/ ├─ entry/ # 消费方 HAP │ ├─ libs/text-tool.har │ └─ src/main/ets/pages/Index.ets └─ library_adapter/ # Static Library ├─ Index.ets # 唯一公共入口 ├─ oh-package.json5 ├─ README.md ├─ CHANGELOG.md ├─ LICENSE └─ src/main/ets/ ├─ core/ ├─ model/ ├─ platform/ └─ async/

官方“构建 HAR”文档说明 Static Library 模块以Index.ets和模块级oh-package.json5形成交付边界,并列出 HAR 对 Ability、页面路由和本地模块依赖等约束。把业务 Ability 搬进 HAR 并不能得到可复用库。

第一步:让核心代码不认识应用

核心函数只处理明确输入:

exportfunction

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询