开源 Arkts 鸿蒙应用 开发(二)封装库.har制作和应用

文章的目的为了记录使用Arkts 进行Harmony app 开发学习的经历。本职为嵌入式软件开发,公司安排开发app,临时学习,完成app的开发。开发流程和要点有些记忆模糊,赶紧记录,防止忘记。

 相关链接:

开源 Arkts 鸿蒙应用 开发(一)工程文件分析-CSDN博客

开源 Arkts 鸿蒙应用 开发(二)封装库.har制作和应用-CSDN博客

开源 Arkts 鸿蒙应用 开发(三)Arkts的介绍-CSDN博客

开源 Arkts 鸿蒙应用 开发(四)布局和常用控件-CSDN博客

 推荐链接:

开源 java android app 开发(一)开发环境的搭建-CSDN博客

开源 java android app 开发(二)工程文件结构-CSDN博客

开源 java android app 开发(三)GUI界面布局和常用组件-CSDN博客

开源 java android app 开发(四)GUI界面重要组件-CSDN博客

开源 java android app 开发(五)文件和数据库存储-CSDN博客

开源 java android app 开发(六)多媒体使用-CSDN博客

开源 java android app 开发(七)通讯之Tcp和Http-CSDN博客

开源 java android app 开发(八)通讯之Mqtt和Ble-CSDN博客

开源 java android app 开发(九)后台之线程和服务-CSDN博客

开源 java android app 开发(十)广播机制-CSDN博客

开源 java android app 开发(十一)调试、发布-CSDN博客

开源 java android app 开发(十二)封库.aar-CSDN博客

推荐链接:

开源C# .net mvc 开发(一)WEB搭建_c#部署web程序-CSDN博客

开源 C# .net mvc 开发(二)网站快速搭建_c#网站开发-CSDN博客

开源 C# .net mvc 开发(三)WEB内外网访问(VS发布、IIS配置网站、花生壳外网穿刺访问)_c# mvc 域名下不可訪問內網,內網下可以訪問域名-CSDN博客

开源 C# .net mvc 开发(四)工程结构、页面提交以及显示_c#工程结构-CSDN博客

开源 C# .net mvc 开发(五)常用代码快速开发_c# mvc开发-CSDN博客

本章节主要讲述鸿蒙开发环境时封装库.har的制作和应用

内容如下:

1.  .har模块的制作

2.  .har编写测试代码

3.  .har的工程应用

一、 .har模块的制作,在程序开发中需要将sdk提供给第三方,不让对方开到源码的情况。又或者代码不需要修改,为了加快编译速度,把代码封装为模块。这个时候就需要制作.har模块。

1.1  创建模块

选择静态库

生成了library模块

二、.har编写测试代码

2.1  需要注意library模块中的oh-package.json5配置文件,Index.ets文件是HAR导出声明文件的入口,HAR需要导出的接口,统一在Index.ets文件中导出。Index.ets文件是DevEco Studio默认自动生成的,用户也可以自定义,在模块的oh-package.json5文件中的main字段配置入口声明文件。

添加文件test.ets

// library/src/main/ts/test.ets
export class classTest {public info(msg: string) {console.info(msg);}
}export function funTest():string{return 'har func';
}

修改MainPage.ets文件的width和height,让这个组件可以被调用显示

@Component
export struct MainPage {@State message: string = 'Hello World';build() {Row() {Column() {Text(this.message).fontSize($r('app.float.page_text_font_size')).fontWeight(FontWeight.Bold).onClick(() => {this.message = 'Welcome';})}.width('200')}.height('80')}
}

修改Index.ets,将类和函数引出

生成library.har

三、  .har文件的应用

3.1  将library.har文件拷贝到测试工程中

3.2  修改配置文件oh-package.json5添加依赖,并点击工程同步。

3.3  在Index.ets中修改代码,引入library可以使用MainPage组件

import  {MainPage} from 'library'
@Entry
@Component
struct Index {@State message: string = 'Hello World';build() {Row(){MainPage();}}
}

效果为

3.4  在entryablity.ets中引入 classTest类,就可以调用它的函数了,从而实现封装库.har的应用。

3.5  点击.info函数,显示如图,只能看到函数接口,无法看到实际内容,封装有效。

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

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

相关文章

Qt基础相关

模态对话框和非模态对话框 在一个页面进行交互时弹出的一个新页面,新页面不堵塞旧页面的交互,这就是非模态对话框。 模态对话框 模态对话框就是当该对话框弹出后会阻塞其他窗口的响应事件,必须先关闭该对话框,其他窗口才会继续…

《汇编语言:基于X86处理器》第2章 x86处理器架构

本章重点是与 x86 汇编语言相关的底层硬件。有说法认为,汇编语言是直接与机器交流的理想软件工具。如果是真的,那么汇编程序员就必须非常熟悉处理器的内部结构与功能。本章将讨论指令执行时处理器内部发生的一些基本操作,以及操作系统如何加载…

最小生成树算法的解题思路与 C++ 算法应用

一、最小生成树算法针对问题类型及概述 先来简要陈述一下树的概念:一个由 N N N 个点和 N − 1 N-1 N−1 条边组成的无向连通图。由此,我们可以得知生成树算法的概念:在一个 N N N 个点的图中找出一个由 N − 1 N-1 N−1 条边组成的树。…

feign.FeignException$NotFound: [404 ] during [POST] to [http://ti/ti/v1/i/se

feign.FeignException$NotFound: [404 ] during [POST] to [http://ti/ti/v1/i/send 原因:多个地方注册 FeignClient(name “ti”, path “/ti/v1/i/send/repeat”) 解决:删除一个即可

Mac m1 通过docker镜像安装kafka

kafka依赖zookeeper,因此需要使用docker同时安装zookeeper和kafka。 macOS的docker在容器和宿主之间无法通过ip直接通信,因此在安装的时候需要特殊注意与ip相关的设置。当容器需要访问宿主ip时,需要使用docker.for.mac.host.internal或者host…

01初始uni-app+tabBar+首页

初始uni-apptabBar首页 1. uni-app1.1 新建uni-app项目1.2 目录结构1.3 把项目配置运行到微信开发者工具 2. tabBar3.1 首页3.1 配置网络请求3.2 轮播图区域3.3 分类导航区域3.4 楼层区域 1. uni-app ​ uni-app 是使用 Vue.js 开发前端应用的框架。开发者编写一套代码&#x…

微信小程序,微信授权手机号码

uniapp中index.vue: <template><view class"content"><button open-type"getPhoneNumber" getphonenumber"getPhoneNumber"type"primary">授权手机号登录 </button></view></template><scrip…

数据结构 学习 图 2025年6月14日 12点57分

搜索算法 深度优先搜索 一种用于遍历或搜索树或图的算法。它沿着树的深度遍历树的节点&#xff0c;尽可能深的搜索树的分支。 DFS核心思想 深度优先&#xff1a;尽可能深地搜索树的分支 回溯思想&#xff1a;当节点v的所在边都已被探寻过&#xff0c;搜索将回溯到发现节点v的…

H3C路由器使用PBR 实现两条互联网专线互为备份

实验拓扑 图 1-1 注&#xff1a;如无特别说明&#xff0c;描述中的 R1 或 SW1 对应拓扑中设备名称末尾数字为 1 的设备&#xff0c;R2 或 SW2 对应拓扑中设备名称末尾数字为 2 的设备&#xff0c;以此类推&#xff1b;另外&#xff0c;同一网段中&#xff0c;IP 地址的主机位为…

深化信创生态布局!聚铭网络与海量数据完成产品兼容性互认证

近日&#xff0c;聚铭网络成功与海量数据完成了一系列产品的兼容性互认证&#xff0c;并获得了由海量数据颁发的产品兼容互认证书。这一成就标志着双方在技术整合方面迈出了重要一步。 经过全面严格的测试&#xff0c;聚铭网络自主研发的安全系列产品&#xff0c;包括聚铭下一…

Unity AR+ 百度AI 实现 物体识别与对应英文翻译

一、前言 我目前实现了拍照保存到手机的功能 我想进一步优化&#xff0c;实现通过手机摄像头实时识别眼前的物体&#xff0c;显示对应的英文的功能。 1.项目技术栈&#xff1a;Unity 2022.3.53 Vuforia 11 百度物体识别API 百度翻译API 2.功能目标&#xff1a;使用手机摄像…

Vue.js第二节

计算属性、事件绑定、条件判断、遍历循环 计算属性&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…

从开源代码入场无人机学术研究到商业化市场的全路径指南-优雅草卓伊凡

从开源代码入场无人机学术研究到商业化市场的全路径指南-优雅草卓伊凡 引言&#xff1a;开源代码在无人机研究中的重要性 优雅草卓伊凡在这里告诉大家&#xff0c;如果真的要开始进入无人机领域&#xff0c;我们需要一步步开始研究。目前先去看看开源无人机代码是尤为重要的&…

window11中开启ubuntu22.04子系统

一、启用Windows子系统 打开控制面板 选择程序然后点击“启用或关闭Windows功能” 勾选如下2项&#xff0c;点击确定 二、安装内核升级包 打开链接https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi下载内核升级包&#xff0c;打开后安装、重启电脑…

80Qt窗口_对话框

目录 5. 对话框 5.1 对话框介绍 用例1&#xff1a; 用例2&#xff1a; 用例3&#xff1a; 用例4&#xff1a; 5.2 对话框的分类 5.2.1 模态对话框 5.2.2 ⾮模态对话框 5. 对话框 5.1 对话框介绍 对话框是 GUI 程序中不可或缺的组成部分。⼀些不适合在主窗⼝实现的功…

Pyenv 跟 Conda 还有 Poetry 有什么区别?各有什么不同?

pyenv、Conda 和 Poetry 是 Python 生态中常用的工具&#xff0c;但它们的核心功能和用途不同&#xff0c;通常可以结合使用。以下是它们的区别和特点&#xff1a; 1. pyenv 用途&#xff1a;管理多个 Python 解释器版本。 核心功能&#xff1a; 安装不同版本的 Python&#x…

数学符号和标识中英文列表(含义与示例)

数学符号和标识的参考&#xff0c;涵盖了数学的各个主要分支&#xff0c;并提供清晰的定义和示例&#xff0c;方便快速查找和学习收藏。 目录 基础数学符号几何符号代数符号线性代数符号概率与统计符号集合论符号逻辑符号微积分与分析符号数字与字母符号 特点 中英对照&…

「Java流程控制」switch结构

知识点解析 1.switch结构的核心概念 switch语句是一种多分支选择结构,它根据表达式的值来选择执行不同的代码块。与if-else结构相比,switch更适合处理离散的、有限个值的比较。 2.switch结构的基本语法 switch (表达式) {case 值1:// 代码块1[break;]case 值2:// 代码块…

从0开始学习R语言--Day27--空间自相关

有的时候&#xff0c;我们在数据进行分组时&#xff0c;会发现用正常的聚类分析的方法和思维&#xff0c;分组的情况不是很理想。其实这是因为我们常常会忽略一个问题&#xff1a;假设我们正在分析的数据是真实的&#xff0c;那么它也肯定在一定程度上符合客观规律。而如果我们…

Excel将表格文件由宽数据转为长数据的方法

本文介绍基于Excel软件的Power Query模块&#xff0c;实现表格数据由宽数据转为长数据的具体方法。 长数据和宽数据是数据分析中的2种基本数据组织形式&#xff0c;二者在结构、用途、适用场景等方面各有特点。其中&#xff0c;宽数据 &#xff08;Wide Format&#xff09;以“…