UniAPP-Android原生插件开发与打包

  • 为什么要写这篇文章
  • 开发流程
    • 1. 下载我封装好的项目
    • 1.1. 修改pictureeditor_uni项目
      • 1.1.1. 修改**uniplugin_test**项目
      • 1.1.2. 修改**app**项目
    • 1.2. 修改uni_app_test项目
    • 2. 插件开发
      • 2.1 导入现有项目
    • 3.打包插件创建基座
      • 3.1 创建插件目录
      • 3.2 获取aar文件
      • 3.3 提交打包

为什么要写这篇文章

官方给出的流程是这样的:
下载SDK:https://ask.dcloud.net.cn/article/103
创建Android Studio项目:https://ask.dcloud.net.cn/article/13232
开发原生插件:https://ask.dcloud.net.cn/article/35416
打包插件上传:https://ask.dcloud.net.cn/article/35414
看着感觉很蛋疼,尤其是原生插件开发,居然要我用v4v7的25版本。。。好吧,经过我慢慢摸索还是找到了一条比较靠谱的开发流程(虽说上面几个链接帮助挺大)。
如果你对Android Studio编程并不了解,此篇文章可能对您没有什么用处。

开发流程

1. 下载我封装好的项目

uni_app安卓插件封装项目.zip

1.1. 修改pictureeditor_uni项目

1.1.1. 修改uniplugin_test项目

  1. 将AndroidManifest.xml中修改包名为自己插件包名,不可与项目包名重复。
  2. 修改java下com.test.plugin为刚刚修改的包名,这个包下只有一个类,类名自定义。假设这里包名是com.test.app,类名是SModule。

1.1.2. 修改app项目

  1. 修改res/values下的string.xml为你app的名称
  2. 修改drawable中的图标为对应app图标
  3. 修改assets下的apps.__UNI__YOURAPP.www为你app的ID并拷贝你的项目的本地打包资源到这里来。
  4. 修改assets下的dcloud_uniplugins.json中class为uniplugin_test项目的类名全拼,如假设所述,这里应该填com.test.app.SModule,name是用于js调用的时候的名称,推荐与类名一致,这里我写的PluginModule,type字段不要动,默认就是module。
  5. 修改assets下的data/dcloud_control.xml中的appid为你app的ID。
  6. 修改AndroidManifest.xml下的Manifest节点下的package为你的APP包名。

1.2. 修改uni_app_test项目

在hbuilderx中打开uni_app_test项目:

  1. 修改pages/index/index.vue的test方法,这里的uni.requireNativePlugin(‘PluginModule’);的PluginModule为你刚刚插件的名称,下面就可以根据你Module中的方法配置进行调用了。
  2. 在hbuilderx中点击发行->原生APP本地打包->生成本地APP打包资源,等待下面控制台跑完,输出“项目 'uni_app_test’导出成功,路径为:…”时打开这个链接。
  3. 替换掉uniplugin_test项目的app中的assets/apps.__UNI__YOURAPP,对应位置不要放错。
  4. 编译Android Studio项目就可以打包运行了。

2. 插件开发

2.1 导入现有项目

  1. 将现有的项目作为module导入刚刚封装好的项目中,将这个项目的:app改名成其它的。导入后如果出现编译版本问题,把编译版本targetSdkVersion改成28,buildToolsVersion改成"28.0.3".
  2. 将导入项目的AndroidManifest.xml的如下代码删掉(启动Activity)
 <action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" />
  1. 将导入项目的build.gradle中的apply plugin: ‘com.android.application’ 修改为 apply plugin: ‘com.android.library’
  2. 删除build.gradle中android->defaultConfig中的applicationId
  3. 删掉重复的启动icon
  4. 启动项修改为app
  5. 在uniplugin_test项目中引入导入的项目,然后在插件的Module类中实现插件功能
  6. 调通可以运行即可

3.打包插件创建基座

先查看这个链接:https://ask.dcloud.net.cn/article/35414

3.1 创建插件目录

  1. 在你的uni_app_test项目中新建一个nativeplugins文件夹,里面内容如下:

    其中PluginModule为你刚刚插件的名称。
  2. 修改package.json,PluginModule依然为你刚刚插件的名称,plugins节点里的内容和uniplugin_test下的app下的assets/dcloud_uniplugins.json的内容一致,permissions根据自己需要添加:
{"name": "这里填你插件名称","id": "PluginModule","version": "1.0","description": "测试插件","_dp_type":"nativeplugin","_dp_nativeplugin":{"android": {"plugins": [{"type": "module","name": "PluginModule","class": "com.test.plugin.PluginModule"}],"integrateType": "aar","minSdkVersion": "21","permissions": ["android.permission.CAMERA","android.permission.RECORD_AUDIO","android.permission.WRITE_EXTERNAL_STORAGE","android.permission.READ_EXTERNAL_STORAGE","android.permission.INTERNET"]}}
}

3.2 获取aar文件


转到Android Studio项目中,找到你项目中的aar文件,里面有几个Module就复制几个aar文件。没有aar文件就去build一下项目就有了。将他们都复制出来统一放到android文件夹下,如果有jar包引用,把jar包放到libs文件夹下:

3.3 提交打包

运行->运行到手机模拟器->制作自定义基座,签名什么的自己弄,没有就用dcloud的。然后就云端打包把,等待成功提示,基座就做好啦~
注意! 不要放太多资源文件到aar中,dcloud对云端打包文件大小限制在40Mb以内,超额不能提交(- -所以我就离线了)

UniAPP-Android原生插件开发与打包相关推荐

  1. 记一次uni-app Android原生插件开发

    背景 项目使用到了RFID射频手持设备(PDA),用于读取羊只耳标功能. 原来有写过一个插件 https://ext.dcloud.net.cn/plugin?id=5246,新的设备与原来的不一样, ...

  2. Uniapp关于 Android原生插件开发案例

    目录 一.准备工作(开发环境) 二.实操 1.使用Android studio开发工具打开UniPlugin-Hello-AS工程请在App离线SDK中查找 ​编辑 2.创建Andorid Libra ...

  3. Android原生插件开发-开发篇

    原创文档:Android原生插件开发-开发篇 · 语雀 官方文档:原生开发者支持 创建module 点击File=>New=>New Module 选择Android Library,输入 ...

  4. Android原生插件开发-证书jks篇

    原创地址:Android原生插件开发-证书jks篇 · 语雀 jks生成 下载Android Studio Download Android Studio & App Tools - Andr ...

  5. uniapp ios原生插件开发之插件包格式(package.json)

    文章目录 一.前言 二.插件包格式介绍 2.1 package.json 2.2 iOS 插件包配置 plugins integrateType 依赖资源文件 resources embedSwift ...

  6. uniapp 发行 原生APP本地打包 安卓APK(最全的步骤)

    第11步没写完,后面还有些内容(第三方sdk配置之类的),有空再补上 第一步:正常运行的uniapp 你得有个uniapp,配置是好的可以在微信开发者工具中看的那种,小程序都用不了,就别考虑打包安卓了 ...

  7. uniapp android原生,在uni-app项目中集成Android原生工程

    [TOC] # 在uni-app项目中集成Android原生工程 按照官方的方案,我们如果进行本地打包的话,需要重新创建一个Android原生工程,于是就会导致我们管理多个项目,切来切去的也麻烦. 经 ...

  8. uniapp ios原生插件开发 (framework,cocoapods)

    文章目录 一.了解UniApp 插件的开发方式 二.准备 1.安装Cocoapods 2. 下载UniApp iOS SDK 三.将HBuilder-UniPluginDemo转成Cocoapods ...

  9. uniapp集成Android原生sdk

    最近公司有个项目,需要调用客户提供的sdk扫描rfid,项目又是用uni开发的,客户提供的sdk只有Java版本,我发现uni是提供集成原生sdk的,所以研究了一下怎么使用,并记录下来过程. 准备 S ...

最新文章

  1. linux基础上的三维重建,Ubuntu16.04下用ZED双目立体相机进行SLAM(以相机轨迹生成和三维重建为例)...
  2. 乖离性暗机器人_《乖离性百万亚瑟王》国服超弩暗机器人平民通关攻略
  3. 年终盘点篇:2018年开源市场5大发展趋势
  4. Visual Question Answering概述
  5. Kotlin替换Dagger2/Hilt的依赖注入框架--Koin。
  6. nodejs TCP server和TCP client如何进行数据交互
  7. 前端学习(3031):vue+element今日头条管理-暂时当前登录用户信息
  8. BZOJ 2822: [AHOI2012]树屋阶梯 [Catalan数 高精度]
  9. 用elemet-ui组件实现弹窗里的树形结构和拖拽功能
  10. STC89C52单片机蜂鸣器介绍以及《孤勇者》歌曲代码示例
  11. datax底层原理_Datax 任务分配原理
  12. 《软件测试》第九章 兼容性测试
  13. 大规模网络拓扑测量与分析研究1-论文
  14. YOLOv5桌面应用开发,手把手教学实操(上)——附源代码
  15. 云和恩墨荣获阿里云云合计划2021年度优秀伙伴技术先锋奖
  16. html让视频变形不留黑边,视频去黑边画面不变形|视频无损去黑边 去掉视频黑边且画面比例正常人物不变形...
  17. 吃烧烤之命令模式学习笔记[C++版] 1
  18. 小米电视系统服务器升级,小米电视怎么更新系统 升级步骤图文详解
  19. 异速联集中部署与管理解决方案
  20. JavaScript进阶面向对象ES6整合篇

热门文章

  1. 什么是BST?什么是哈希表?一文带你了解并实现查找的基础知识
  2. Allegro学习笔记
  3. vbs字符串正则_VBS正则表达式语法
  4. PP-ShiTu: A Practical Lightweight Image Recognition System
  5. Aggregation-Based Graph Convolutional Hashing forUnsupervised Cross-Modal Retrieval
  6. flexbison编写语法分析器
  7. Mybatis-1.Mybatis概述
  8. AjaxPro.Utility.RegisterTypeForAjax()的作用 AjaxPro第三方控件
  9. 舰船知识科普-有图有真相(附PPT)
  10. php写的在线试衣,求解模特试衣,布料成衣贴图算法