uniapp-原生android插件开发摘要
uni-app在App侧的原生扩展插件,支持使用java、object-c等原生语言编写,从HBuilderX 3.6起,新增支持了使用uts来开发原生插件。
基础项目
- UniPlugin-Hello-AS工程请在App离线SDK中查找
基础项目(App离线SDK)已经配置好了自定义插件所需要的环境,直接使用基础项目添加自己的自定义插件或者修改以有的自定义插件
扩展 Module
- Module 扩展 非 UI 的特定功能
- Module 不支持代码通过 new Module的方式创建对象。无法正常使用!
扩展组件 Component
- Component 扩展 实现特别功能的 Native 控件
- Component 不支持代码中 new Component 创建对象。无法正常使用!
更多其他细节查看:开发者须知 | uni小程序SDK
集成uni-app项目测试插件
-
安装最新HbuilderX 大于等于1.4.0+
-
创建uni-app工程或在已有的uni-app工程编写相关的.nvue 和.vue文件。使用uni-app插件中的module 或 component。
-
xxx.vue 示例代码(源码请参考UniPlugin-Hello-AS项目中
uniapp示例工程源码文件夹的unipluginDemo工程,导入示例工程时需要重新获取appid) - 选择 发行--->原生APP-本地打包--->生成本地打包App资源 等待资源生成!(这里是指hx项目)
- 在控制台会输出编译日志,编译成功会给出App资源路径(如:项目 unipluginDemo 导出成功,路径为:/Users/admin/Downloads/4.45/AndroidSDK@4.45.82353_20250106/UniPlugin-Hello-AS/uniapp示例工程源码/unipluginDemo/unpackage/resources)
-
把APP资源文件放入到UniPlugin-Hello-AS工程下
appModule根目录assets/apps/测试工程appid/www对应目录下,再修改assets/data/dcloud_control.xml!修改其中appid=“测试工程appid”!,测试工程UniPlugin-Hello-AS 已有相关配置可参考。具体可查看App离线打包。 -
appid注意 一定要统一否则会导致应用无法正常运行!
- 配置"app"Module下的 build.gradle. 在dependencies节点添加插件project引用 (以uniplugin_richalert为例)
// 添加uni-app插件 implementation project(':uniplugin_richalert') - 运行测试。测试运行时一切要以真机运行为主。
-
1.10版本起需要申请Appkey,具体请点击链接
生成uni-app插件
- 完整的android 插件包.ZIP包含:
- android文件
- .aar文件 : 包括插件aar、插件所依赖的aar。
- libs文件夹 : 存放插件包依赖的第三方 .jar文件和.so文件
- package.json 插件信息
- 点击查看具体说明
- android文件
准备相关文件
- 创建以插件id命名的文件夹
- 创建android文件夹。并将该文件夹放入到新建的插件id命名的文件夹中
示例:

生成插件的aar并放入到android目录下
- 选择Gradle--->插件module--->Tasks--->build或other--->assembleRelease编译module的aar文件
注意:新版本Android studio将assembleRelease放入other中了
-
创建package.json文件并填写必要的信息。放入到android目录下
-
创建libs文件夹。并放入到android目录下
- 将插件依赖的jar文件放入到libs文件夹中
- 将插件依赖的.so文件放入到libs文件夹中
-
将插件依赖的aar文件放入到插件android目录下
注意
目前发现部分同学将开发插件的uniapp-v8-release.aar、uniapp-release.aar放到了插件包libs中。导致冲突。切记不要放进libs里去!!! 插件所依赖的aar要放到android目录下。
Andorid 插件包配置
uni原生插件如果支持Android平台,则需在插件下添加android目录,并将所有Android平台相关的资源都放到此目录下
- aar文件,直接放到android目录下,云端打包会自动引用所有的aar文件
- android\libs目录,所有需要使用的jar文件放到此目录,如果包含so文件,则放到libs下对应cpu类型目录
- android\assets目录,Android平台需要assets资源
- android\res目录,Android平台需要的res资源
在package.json文件中"_dp_nativeplugin"节点下添加"android"节点,根据需求配置以下数据
plugins
插件注册配置,JSON数组对象,至少要包含一个配置项
- type: 必填,插件类型,"module"表示模块插件,对应weex中的Module模式;"component"表示UI组件,对应weex中的Component模式。
- name 必填,注册插件的名称, 必须与插件标识一致
- class 必填,注册插件的类名
integrateType
必填,插件集成类型,即原生导出的文件类型
- aar 原生导出aar包时配置为此类型
- jar 原生导出jar包时配置为此类型,此时jar文件必须放到android下的libs目录中
默认为aar,推荐使用aar类型
更多细节:uni小程序SDK
注意:运行时只能在手机端小程序端运行会报错, 其次在调用原生插件方法时候需要再基座下运行,要不然会报错:找不到原生插件对应的方法
相关文章:
uniapp-原生android插件开发摘要
uni-app在App侧的原生扩展插件,支持使用java、object-c等原生语言编写,从HBuilderX 3.6起,新增支持了使用uts来开发原生插件。 基础项目 UniPlugin-Hello-AS工程请在App离线SDK中查找 基础项目(App离线SDK)已经配置好了自定义插件所需要的…...
GIT工具学习【1】:基本操作
目录 0.本地代码分区1.配置自己的个人信息(设置一次即可)2.新建仓库3.提交代码到暂存区(加入购物车)4.从暂存区撤回(不会改变工作区文件)5.恢复指定版本(会改变工作区文件)5.1&#…...
《国密算法开发实战:从合规落地到性能优化》
前言 随着信息技术的飞速发展,信息安全已成为全球关注的焦点。在数字化时代,数据的保密性、完整性和可用性直接关系到国家、企业和个人的利益。为了保障信息安全,密码技术作为核心支撑,发挥着至关重要的作用。国密算法,即国家密码算法,是我国自主设计和推广的一系列密码…...
【语法】C++中string类中的两个问题及解答
贴主在学习string类时遇到过两个困扰我的问题,今天拿出来给大家分享一下我是如何解决的 一、扩容时capacity的增长问题 在string的capacity()接口中,调用的是这个string对象的容量(可以存多少个有效字符),而size()是调用的string对象现在有…...
LeetCode-154. 寻找旋转排序数组中的最小值 II
1、题目描述: 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums [0,1,4,4,5,6,7] 在变化后可能得到: 若旋转 4 次,则可以得到 [4,5,6,7,0,…...
2.数据结构:1.Tire 字符串统计
1.Tire 字符串统计 #include<algorithm> #include<cstring> #include<iostream>using namespace std;const int N100010; int son[N][26];//至多 N 层,每一层至多 26 个节点(字母) int cnt[N];//字符串至多 N 个ÿ…...
C语言复习4:有关数组的基础常见算法
# 数组的常见算法 - 查找算法 1. 基本查找/顺序查找 2. 二分查找/折半查找 3. 插值查找 4. 分块查找 5. 哈希查找 6. 树表查找 7. 斐波那契查找 - 排序算法(顾名思义,就是把没有顺序的…...
Ubuntu从零创建Hadoop集群
目录 前言 前提准备 1.设置网关和网段 2.查看虚拟机IP及检查网络 3.Ubuntu相关配置 镜像源配置 下载 vim编辑器 4.设置静态IP和SSH免密(可选) 设置静态IP SSH免密 5.JDK环境部署 6.Hadoop环境部署 7.配置 Hadoop 配置文件 HDFS集群规划 HDFS集群配置 1.配…...
GPIO概念
GPIO通用输入输出口 在芯片内部存在多个GPIO,每个GPIO用于管理多个芯片进行输入,输出工作 引脚电平 0v ~3.3v,部分引脚可容任5v 输出模式下可控制端口输出高低电平,可以驱动LED,控制蜂鸣器,模拟通信协议&a…...
Node.js, Bun, Deno 比较概述
以下是 Node.js、Bun 和 Deno 的对比分析 概览 对比维度Node.jsDenoBun首次发布200920202022创始人Ryan DahlRyan Dahl(Node.js 原作者)Jarred Sumner运行时引擎V8(Chrome)V8(Chrome)JavaScriptCore&#…...
C# 类库打包dll文件
目录 前言操作流程注意事项 前言 在C#中,有多种方式可以对代码进行加密,以保护源代码不被轻易查看或修改,这篇文章主要介绍将C# cs类文件加密为dll文件的方式进行保护。 操作流程 在 Visual Studio 中,选择“创建新项目”。 选…...
Linux中的UDP编程接口基本使用
UDP编程接口基本使用 本篇介绍 在前面网络基础部分已经介绍了网络的基本工作模式,有了这些理论基础之后,下面先从UDP编程开始从操作部分深入网络 在本篇中,主要考虑下面的内容: 创建并封装服务端:了解创建服务端的…...
RAG项目实战:金融问答系统
需求痛点 私有知识很多,如何让大模型只选择跟问题有关的知识进行参考呢? 需求分析 是否可以使用关键词匹配呢?以前的搜索主要使用关键词匹配,这个要求太高了,需要提前抽取准备好关键词,有点像以前SEO的工…...
大白话React第十一章React 相关的高级特性以及在实际项目中的应用优化
假设我们已经对 React 前端框架的性能和可扩展性评估有了一定了解,接下来的阶段可以深入学习 React 相关的高级特性以及在实际项目中的应用优化,以下是详细介绍及代码示例: 1. React 高级特性的深入学习 1.1 React 并发模式(Con…...
虚拟机Linux操作(持续更新ing)
虚拟机操作(持续更新ing) 虚拟机基本操作(Linux) # Linux # 立刻关机 poweroff # 立刻关机,可以选择数字或者具体时间 shutdown -h now # 立刻重启,可以选择数字或者具体时间 shutdown -r now # 立刻重启 reboot # cd 切换目录,下面用根目录举例 cd /…...
【开源-线程池(Thread Pool)项目对比】
一些实现**线程池(Thread Pool)**功能的开源项目的对比分析。 线程池功能的开源项目 项目名称语言优点缺点适用场景开源代码链接ThreadPoolC简单易用,代码简洁;适合快速原型开发。功能较为基础,不支持动态调整线程数…...
JMeter 实战项目脚本录制最佳实践(含 BadBoy 录制方式)
JMeter 实战项目脚本录制最佳实践(含 BadBoy 录制方式) 一、项目背景 在软件测试过程中,使用 JMeter 进行性能测试和功能测试是常见的操作。本实战项目将详细介绍如何使用 JMeter 自带工具以及 BadBoy 进行脚本录制,并完善脚本以…...
Jackson注解实战:@JsonInclude的妙用
在日常的Java开发中,我们经常需要将Java对象序列化为JSON格式,以便进行数据传输或存储。然而,有时候我们并不希望在JSON中包含某些空值或不必要的字段,这不仅会增加数据的冗余性,还可能对后续的处理造成困扰。Jackson库…...
CAN总线通信协议学习1——物理层
首先来看看CAN是怎么产生的:简单理解,CAN就是一种“拥有特别连接方式”的数据传输的总线,其有特定的一些规则。 (注:资料及图片来源于知乎博主TOMOCAT。) CAN总线的结构 查阅参考文献,OSI标准…...
Vim 常用快捷键大全:跳转、编辑、查找替换全解析
摘要: Vim 是一款非常强大的文本编辑器,许多程序员和系统管理员都离不开它。 本文详细介绍了 Vim 编辑器中的常用快捷键和命令,从基本模式、光标移动、编辑操作到查找替换,再到文件保存等常用操作,帮助你快速上手并提…...
安装 KubeSphere
安装 KubeSphere KubeSphere Core (ks-core) 是 KubeSphere 的核心组件,为扩展组件提供基础的运行环境。KubeSphere Core 安装完成后,即可访问 KubeSphere Web 控制台。 1. 安装 KubeSphere Core 在集群节点上,执行以下命令安装 KubeSpher…...
PyTorch新手必看:RuntimeError: mat1 and mat2 shapes cannot be multiplied 的三种常见场景与快速排查法
PyTorch矩阵维度冲突实战指南:从报错原理到精准修复 当你满怀期待地按下运行键,等待模型开始训练时,突然跳出的RuntimeError: mat1 and mat2 shapes cannot be multiplied就像一盆冷水浇下来。这个在PyTorch中频繁出现的矩阵乘法维度错误&am…...
Nodejs后端服务集成Taotoken实现智能客服对话
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Node.js 后端服务集成 Taotoken 实现智能客服对话 为客服系统引入智能对话能力,是提升服务效率与用户体验的有效路径。…...
5分钟掌握WeKWS:打造智能设备的语音唤醒终极指南
5分钟掌握WeKWS:打造智能设备的语音唤醒终极指南 【免费下载链接】wekws Production First and Production Ready End-to-End Keyword Spotting Toolkit 项目地址: https://gitcode.com/gh_mirrors/we/wekws 在人工智能时代,智能设备如何快速响应…...
临近毕业10款降AI率工具实测+避坑:到底哪个降AI率工具是真的有用
2025 年 12 月 25 日知网 AIGC 检测系统升级,2026 年 4 月 27 日维普 AI 率检测平台升级…2026 毕业季,各大主流 AIGC 检测软件陆续升级系统,识别 AI 痕迹更加精准。 临近毕业,同学们看者飘红的 AIGC 检测报告、纷繁复杂的降 AI 系…...
STL转STEP格式转换实战指南:如何实现CAD模型的无缝迁移与工程化应用
STL转STEP格式转换实战指南:如何实现CAD模型的无缝迁移与工程化应用 【免费下载链接】stltostp Convert stl files to STEP brep files 项目地址: https://gitcode.com/gh_mirrors/st/stltostp 在数字化制造与工程设计领域,STL格式作为3D打印的标…...
百度网盘限速破解:技术解析与实战应用深度剖析
百度网盘限速破解:技术解析与实战应用深度剖析 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 在云存储服务日益普及的今天,百度网盘作为国内用户最常用…...
如何快速解锁QQ音乐加密音频的完整指南:QMCDecode工具终极解决方案
如何快速解锁QQ音乐加密音频的完整指南:QMCDecode工具终极解决方案 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录&…...
请感谢那个不眠的AI:当Agent在夜以继日地干活时,人类的角色正悄悄改变
AI再次攻克了一道数学难题。 就在这个月,OpenAI对外宣布:它的推理模型独立生成了一个原创数学证明,成功证伪了组合几何学中悬而未决近80年的核心猜想——由著名数学家保罗埃尔德什于1946年提出的平面单位距离问题。 消息一出,数学界和AI圈同时炸了锅。不是因为这道题有多…...
嵌入式开发通用工具包设计:提升效率与代码质量的核心架构
1. 项目概述:为什么嵌入式开发需要一个“工具箱”?干了十几年嵌入式,从8位单片机玩到多核ARM Cortex-A,我最大的感受就是:重复造轮子和调试效率低下是拖慢项目进度的两大元凶。每次新项目启动,都得重新搭建…...
