HarmonyOS应用开发引入第三方库的三种方式

Stella981
• 阅读 641

我们在做应用开发的时候,往往需要引入些优秀的第三方库来进行开发,下面就讲讲我们在做HarmonyOS应用开发中引入第三方库的三种方式。

1、通过编写gradle依赖进行引入,熟悉maven或者gradle的朋友对这个就太熟悉了。

针对这个方式,我就拿个fastjson库的引入进行举例吧,在对应的Module下的build.gradle文件中添加依赖项即可,如下:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
    testCompile'junit:junit:4.12'
    implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.73'
}

2、通过编译好之后的库进行导入

关于如何打包编译成har库并且进行导入,由于鸿蒙官网有很清晰的讲解,本文就不再赘述,详见官网链接创建HarmonyOS库

3、通过外部Module的形式进行导入

这里重点讲解这个,因为DevEco studio不支持直接导入外部Module,但是该功能还是很有用的,比如我们引入一个开源组件,又想在工程里面直接包含该组件的源代码并且随时可以修改该组件的代码。

引入方式如下:

(1)、将外部的Module的代码目录手动copy到自己的project下,如下图

HarmonyOS应用开发引入第三方库的三种方式

(2)、修改Project下的settings.gradle文件,在里面添加对该模块,修改后的配置如下

include ':entry',':roundimage'

(3)、在project下自己要编写代码的Module下引入导入的模块的依赖,这里拿entry模块举例,于是修改entry模块下的build.gradle文件,添加依赖,如下

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
    testCompile'junit:junit:4.12'
    implementation project(':roundimage')
}

至此,就可以愉快地调用外部模块里面的相关api和资源了。关于roundimage这个自定义组件的文章请参考我另外一篇博文#2020征文-手机# HarmonyOS App开发造轮子--自定义圆形图片组件

作者:软通夏德旺

想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区https://harmonyos.51cto.com/

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Easter79 Easter79
2年前
tinker接入
对于热修复无非就是两大类,一类是tencent代表的classloader模式的,另一类是阿里系代表的底层方面替换。下面以本人的经验介绍下微信的tinker接入:  命令行接入方式;gradle接入方式1\.核心库引入,在你应用的app模块下build.gradle文件加入//tinkerhotfix//可选,用于生
九章 九章
3年前
Android依赖管理与私服搭建
在Android开发中,一个项目需要依赖许多的库,我们自己写的,第三方的等等,这篇文件介绍的就是自己搭建私服,创建自己的仓库,进行对我们自己写的库依赖管理。本文是在macbookpro环境上搭建的,其它操作系统操作方式大致一样的。如果有不一样的地,可以参考官方文档Android中引入依赖的几种方法一直接引
Stella981 Stella981
2年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Easter79 Easter79
2年前
Taro 2.2 全面插件化,支持拓展和定制个性化功能
!(https://oscimg.oschina.net/oscnet/up889c8772b4d4c4a678d00fc4ead5c097c76.png)自2.2开始,Taro引入了插件化机制,允许开发者通过编写插件的方式来为Taro拓展更多功能或者为自身业务定制个性化功能,欢迎大家进行尝试,共同讨论~当前版本2.2.1官
Wesley13 Wesley13
2年前
NEO从源码分析看网络通信
_0x00前言_NEO被称为中国版的Ethereum,支持C和java开发,并且在社区的努力下已经把SDK拓展到了js,python等编程环境,所以进行NEO开发的话是没有太大语言障碍的。比特币在解决拜占庭错误这个问题时除了引入了区块链这个重要的概念之外,还引入了工作量证明(PoW)这个机智的解决方案,通过数学意义上的难题来保证每个
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这