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

文章目录

  • 一、静态库(SDK)
  • 二、创建静态库
    • 1.新建静态库模块
    • 2. 开发静态库内容
    • 3. 编译静态库
  • 三、使用静态库
    • 1. 配置项目依赖
    • 2. 在应用中使用静态库
    • 3. 注意事项
  • 四、打包错误
    • 1. library引用本地har包错误

一、静态库(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"}
}
  1. 同步项目 : 点击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仓上然后引用!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/2728.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IPEmotion轻松解决急停设备的控制与数据存储问题

一 背景 众所周知,急停操作在各种工业领域中都扮演着非常重要的角色。在一个个紧急情况下,及时采取急停操作可节省宝贵时间,避免人身伤害或设备损坏,降低安全风险,尤其是在新能源测试中,出于对高压电性能方…

Linux使用Libevent库实现一个网页服务器---C语言程序

Web服务器 这一个库的实现 其他的知识都是这一个专栏里面的文章 实际使用 编译的时候需要有一个libevent库 gcc httpserv.c -o httpserv -levent实际使用的时候需要指定端口以及共享的目录 ./httpserv 80 .这一个函数会吧这一个文件夹下面的所有文件共享出去 实际的效果, 这…

AI大模型重塑新媒体变现格局:智能写作技术助力腾飞!

文章目录 一、AI大模型:新媒体变革的引擎二、智能写作:内容生产的新范式三、精准推送:增强用户粘性的关键四、新媒体变现:插上AI翅膀的飞跃五、挑战与机遇并存:AI与新媒体的未来展望AI智能写作: 巧用AI大模型让新媒体变…

Python-GEE遥感云大数据分析、管理与可视化

原文链接:Python-GEE遥感云大数据分析、管理与可视化https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247601238&idx2&sn6b0557cf61451eaff65f025d648da869&chksmfa820db1cdf584a76de953b96519704177e6206d4ecd47a2f2fabbcac2f7ea619b0bce184…

idm序列号永久激活码2023免费可用 IDM软件破解版下载 最新版Internet Download Manager 网络下载加速必备神器 IDM设置中文

IDM是一款多线程下载工具,全称Internet Download Manager。IDM的多线程加速功能,能够充分利用宽带,所以下载速度会比较快,而且它支持断点续传。它的网站音视频捕获、站点抓取、静默下载等功能,也特别实用。 idm使用技…

数组:最值,反转数组,打乱顺序

文章目录 最值反转数组打乱顺序 位置 最值 package com.zhang.demo; /*这个是求最大值 * * */ public class Test1 {public static void main(String[] args) {int[] arr {13,77,89,333,2,99};int max arr[0];for(int i 1;i < arr.length-1;i){if(max < arr[i]){maxa…

JavaEE 初阶篇-深入了解网络通信相关的基本概念(三次握手建立连接、四次挥手断开连接)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 网络通信概述 1.1 基本的通信架构 2.0 网络通信三要素 3.0 网络通信三要素 - IP 地址 3.1 查询 IP 地址 3.2 IP 地址由谁供应&#xff1f; 3.3 IP 域名 3.4 IP 分…

智慧城市标准化白皮书(2022版)发布

2022年7月25日&#xff0c;国家智慧城市标准化总体组2022年度全体会议召开期间&#xff0c;《智慧城市标准化白皮书&#xff08;2022版&#xff09;》正式发布。 城市作为一个复杂巨系统&#xff0c;是多元主体融合及多元活动集聚的复杂综合体。城市的运行发展关联 到发展、治…

Maven基础篇6

Idea环境中资源上传与下载 具体问题本地仓库如何与私服打交道&#xff1b; 本地仓库向私服上传文件&#xff0c;上传的文件位置在哪里&#xff1f; 访问私服配置相关信息&#xff1a;用户名密码&#xff1b; 下载东西&#xff0c;需要的各种信息&#xff0c;需要的仓库组的…

MES(生产管理系统)开发岗人才定向培养来啦

定向就业培养&#xff0c;职等你来 《中国制造2025》&#xff0c;是我国实施制造强国战略第一个十年的行动纲领&#xff0c;按照“四个全面”战略布局要求&#xff0c;实施制造强国战略&#xff0c;加强 统筹规划和前瞻部署。围绕重点行业转型升级和新一代信息技术、智能制造、…

stripe.js踩坑日记

stripe.js踩坑日记 先附上代码【选择支付方式并唤起对应支付后重定向到支付结果页面】 先安装依赖包 npm install stripe/stripe-js代码【vue3语法】 <template><div class"stripe-pay-ment-box"><div id"payment-element"></div…

【数据库】三、数据库SQL语言命令(基础从入门到入土)

【全文两万多字&#xff0c;涵盖大部分常见情况&#xff0c;建议点赞收藏】 目录 文章目录 目录安装SQL语言1.使用2.DATABASE查看所有库新建数据库修改数据库删除数据库连接数据库 3.TABLE创建表查看库所有表删除表查看表信息重命名表修改表字段&#xff08;列&#xff09;表中…

GUI测试首推!TestComplete 帮助有效缩短 40-50% 测试时长!

TestComplete 是一款自动化UI测试工具&#xff0c;这款工具目前在全球范围内被广泛应用于进行桌面、移动和Web应用的自动化测试。 TestComplete 集成了一种精心设计的自动化引擎&#xff0c;可以自动记录和回放用户的操作&#xff0c;方便用户进行UI&#xff08;用户界面&…

七分钟“手撕”三大特性<多态>

目录 一、学习多态之前需要的知识储备 二、重写 1.什么是重写 2.重写可以干嘛 3.怎么书写重写 4.重载与重写的区别 三、向上转型 1.什么是向上转型&#xff1f; 2.向上转型的语法 3.向上转型的使用场景 四、多态是什么 六、多态实现 七、多态的好处 八、多态的缺…

zookeeper安装原生开发 C API接口时报错

报出的错误&#xff1a;error: %d directive writing between 1 and 5 bytes into a region of size be 问题原因 %d 格式说明符用于格式化有符号十进制整数。它需要一个与要格式化的整数大小相匹配的缓冲区。如果缓冲区太小&#xff0c;则会导致缓冲区溢出&#xff0c;从而可…

码头船只出行及配套货柜码放管理系统-毕设

毕业设计说明书 码头船只出行及配套货柜码放 管理系统 码头船只出行及配套货柜码放管理系统 摘要 伴随着全球化的发展&#xff0c;码头的物流和客运增多&#xff0c;码头业务迎来新的高峰。然而码头业务的增加&#xff0c;导致了人员成本和工作量的增多。为了解决这一基本问题&…

Redis篇:缓存更新策略最佳实践

前景&#xff1a; 缓存更新是redis为了节约内存而设计出来的一个东西&#xff0c;主要是因为内存数据宝贵&#xff0c;当我们向redis插入太多数据&#xff0c;此时就可能会导致缓存中的数据过多&#xff0c;所以redis会对部分数据进行更新&#xff0c;或者把他叫为淘汰更合适&a…

开放式耳机怎样选性价比高?五大性能出色爆款推荐!

在今年的耳机市场&#xff0c;开放式耳机如雨后春笋般涌现&#xff0c;为消费者提供了更多的选择。在这样一个产品繁多的市场中&#xff0c;如何挑选出一款音质上乘、性能卓越的开放式耳机&#xff0c;确实是一个值得探讨的问题。相较于长时间佩戴传统入耳式耳机可能带来的耳朵…

Jenkins 打包报错记录 error: index-pack died of signal 15

问题背景&#xff0c;打包每次到92%时就会报错&#xff0c;试了好几次都是同样的错误 14:56:53 fatal: index-pack failed 14:56:53 14:56:53 at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2734) 14:56:53 at org.jenkinsci.plugi…

【UE 材质】水波纹效果

效果 模拟雨水打落在水面上的效果 步骤 1. 下载所需纹理和纹理 纹理2. 新建一个材质&#xff0c;这里命名为“M_WaterRipples” 打开“M_WaterRipples”&#xff0c;添加一个纹理采样节点&#xff0c;纹理使用第一步下载的纹理 将纹理采样节点的R通道连接到基础颜色&#x…