HarmonyOS-静态库(SDK)的创建和使用

文章目录

一、静态库(SDK)

在HarmonyOS中,静态库(通常以.har为文件扩展名)是一种用于代码和资源共享的机制。它允许开发者创建可重用的组件、接口和资源,以便在多个应用中共享和复用。

二、创建静态库

1.新建静态库模块

  1. 打开DevEco Studio: 启动HarmonyOS开发环境。
  2. 创建项目: 如果还没有项目,创建一个新的HarmonyOS项目。
  3. 添加模块: 在项目视图中,右键点击项目名称,选择New > Module...。
  4. 选择模块类型: 在弹出的对话框中,选择Static Library。
  5. 命名模块: 输入模块名称,例如BaseLibrary,然后点击Finish。

2. 开发静态库内容

  1. 编写组件
    在新创建的静态库模块中,开发你的ArkUI组件、接口或资源,如下示例:
    定义Base的页面:

    @Component
    export struct BasePage {
    @State message: string = '';

    build() {
    Row() {
    Column() {
    Text(this.message)
    .fontSize(50)
    .fontWeight(FontWeight.Bold)
    }
    .width('100%')
    }
    .height('100%')
    }
    }

定义基础的类:

复制代码
@Component
export class BaseConfig {
  IMAGE_BACK_SIZE: number = 21;
  IMAGE_BACK_MARGIN_RIGHT: number = 18;
  IMAGE_LOADING_SIZE: number = 22;
  BAR_HEIGHT: number = 47;
  BAR_MARGIN_HORIZONTAL: number = 26;
  BAR_MARGIN_TOP: number = 10;
  WEIGHT: string = '50%';
}

2.导出内容

在ets文件夹下的index.ets文件中,使用export关键字导出你想要共享的组件或接口。如下示例,导出一个页面和一个名为 BaseConfig 的类。

复制代码
export { MainPage } from './src/main/ets/components/mainpage/MainPage'
export { DKBaseBleAlg } from './src/main/ets/components/DKBaseBleAlg'

3. 编译静态库

  1. 构建模块
    在项目视图中,选择静态库模块,然后点击Build > Make Module 'BaseLibrary'

2.获取.har文件

编译成功后,在模块的build/default/outputs/default目录下找到baselibrary.har文件。

三、使用静态库

1. 配置项目依赖

  1. 编辑 oh-package.json5: 在主工程的根目录下,打开oh-package.json5文件。

  2. 添加依赖: 在dependencies部分,添加静态库的依赖项,例如:

    {
    "license": "",
    "devDependencies": {},
    "author": "",
    "name": "entry",
    "description": "Please describe the basic information.",
    "main": "",
    "version": "1.0.0",
    "dependencies": {
    // 直接使用module,直接引用module的路径
    "Baselibrary": "file:../Baselibrary"
    // 将wmdinglibrary.har放到固定目录下时引用
    // "Baselibrary": "file:../entry/src/main/lib/Baselibrary.har"

    }
    }

  3. 同步项目 : 点击Sync Now按钮,同步项目以包含新添加的静态库。

2. 在应用中使用静态库

  1. 导入组件或接口: 在你的应用代码中,使用import语句导入静态库中的组件或接口。

  2. 使用组件: 在你的应用页面或逻辑中,直接使用静态库类。

    import { Baselibrary, MainPage } from 'Baselibrary'

    @Entry
    @Component
    struct UseLibraryPage {
    @State message: string = 'Hello World';

    build() {
    Row() {
    Column() {

    复制代码
         Text(this.message)
           .fontSize(50)
           .fontWeight(FontWeight.Bold)
       }
       .width('100%')
     }
     .height('100%')

    }
    }

3. 注意事项

  1. 路径正确性: 确保在oh-package.json5中指定的静态库路径正确无误。
  2. 同步操作: 添加或更新依赖后,务必执行同步操作,否则项目可能无法正确识别静态库。
  3. 资源冲突: 如果静态库中包含资源文件,确保资源名称不会与主工程中的资源冲突。
  4. 编译顺序: 在构建项目时,确保静态库先于使用它的模块编译,以避免依赖问题。
  5. 权限和配置: 根据静态库的功能,可能需要在应用的配置文件中添加相应的权限或配置。

四、打包错误

1. library引用本地har包错误

解决措施

HarmonyOS library引用本地的har包的引用方式需要进行改造,具体步骤为:

  1. 在工程根目录下创建一个libs文件夹,并将需要引用的本地har包放到该文件夹下。

    不支持har引本地har的格式,需要引用的har发布到npm仓上然后引用!
相关推荐
Georgewu3 小时前
【HarmonyOS】鸿蒙应用开发Text控件常见错误
harmonyos
Georgewu4 小时前
【HarmonyOS】富文本编辑器RichEditor详解
harmonyos
zhanshuo11 小时前
鸿蒙应用调试与测试实战全指南:高效定位问题,性能优化必备技巧+实用代码示例
harmonyos
万少15 小时前
2025中了 聊一聊程序员为什么都要做自己的产品
前端·harmonyos
网络小白不怕黑16 小时前
华为设备 QoS 流分类与流标记深度解析及实验脚本
网络·华为
网络小白不怕黑16 小时前
华为交换机堆叠与集群技术深度解析附带脚本
网络·华为
幽蓝计划1 天前
HarmonyOS NEXT仓颉开发语言实战案例:动态广场
华为·harmonyos
万少1 天前
第五款 HarmonyOS 上架作品 奇趣故事匣 来了
前端·harmonyos·客户端
幽蓝计划1 天前
HarmonyOS NEXT仓颉开发语言实战案例:电影App
华为·harmonyos
HMS Core2 天前
HarmonyOS免密认证方案 助力应用登录安全升级
安全·华为·harmonyos