Uniapp项目打包成Android的apk和使用本地插件

5,104 阅读4分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

开头

Uniapp 一个跨端混合开发的框架,号称开发者编写一套代码,多平台运行,大致能跑的平台有如下:

image.png

上图这11个平台中,其中就包括了 APP 平台。本章来分享如何将 Uniapp 项目打包成 AndroidApk 包,并且介绍如何使用 SDK 插件。

准备工具

Uniapp 进行本地 APP 打包需要进行一些较为复杂的准备工作:

  1. Android Studio
  2. HBuilderX
  3. App离线SDK
  4. 申请 Uniapp 离线打包 Appkey

SDK 最新目录说明:

  • HBuilder-HelloUniApp:App离线打包演示应用。
  • HBuilder-Integrate-AS:集成uni-app的最简示例。
  • SDK:SDK库文件目录。
  • Feature-Android.xls:Android平台各扩展Feature API对应的详细配置。
  • readme:版本说明文件及注意事项。
  • UniPlugin-Hello-AS:uni原生插件开发示例。

配置工程

安装完 Android Studio 后,需要新建一个项目,如果要从空白项目开始,可以参考官方教程。这里导入官方创建好的项目,选择的是 Android 离线 SDK 压缩包里的 HBuilder-Integrate-AS

  1. 导入 Uniapp 离线 SDK 包里的 HBuilder-Integrate-AS 文件夹,simpleDemo 就是集成了 Uniapp 的简单安卓应用。

image.png

  1. 安装Android SDK,创建对应的AVD方便后面调试,开始之前可以先把 simpleDemo 跑一下。

image.png

  1. HBuilder 打开 Uniapp 项目,依次操作,发行->原生App本地打包->生成本地打包资源,需要先在Dcloud平台创建应用,并登录 Hbuilder

    如果是用CLI创建的 Uniapp 项目,则可以直接在项目根目录下运行build命令,其实将在Dclud创建的应用名称和appid手动填入项目mainfest.json里,离线打包可以完全不用Hbuilder,CLI命令的打包目录不同,在dist/build下面。

    然后把生成的文件夹拷贝并覆盖到Android 项目的src/main/assets/apps/目录下。

image.png

要注意的是该appid在Dcloud开发者中心每个应用唯一,使用 HBuilder 开发移动 APP 时,会将首次创建应用的账号设置为对应 appid 的所有者,实际项目中,应做好开发者管理,参考如小程序账号。

  1. 把simpleDemo的appid替换成上述所打包的appid。

image.png

  1. Dcloud开发者中心,生成一个离线打包key,注意生成key时,包名和项目中配置保持一致。

image.png

  1. 把在Dcloud平台生成key时使用的证书放在simpleDemo目录下,并在Android 项目里配置包名、证书等信息。

image.png

  1. 按需修改app启动图标,启动页面,apk名字等,目录在在simpleDemo/src/main/res/,到这里,安卓离线打包的项目配置就完成了。

调试运行

在Android Studio里,依次操作,Build->Build Bundle(s)/APK(s)->Build APK(s),即可打包出安卓apk文件。而在开发过程中需要热更新实时查看,则依赖Hbuilder运行,调起Android Studio的AVD,或者通过usb接口真机调试。

使用插件

显然,这种混合开发方式,只是把业务代码从安卓项目中分离,一些调用系统原生的能力,如果uniapp的Android sdk没有提供,就要自行编写本地插件并引用了。如何开发Android 插件,查阅文档

插件开发完成后,使用相对简单,首先在uniapp项目根目录下创建nativeplugins文件夹,然后把插件文件拷贝进去。调用方法为:const myPlugin = uni.requireNativePlugin('插件注册名称')。

image.png

然后把插件的aar文件拷贝放进Android项目里的simpleDemo/libs目录下,并在src/main/assets目录下创建一个dcloud_uniplugins.json文件,补充配置要使用的插件。

image.png

重新在Android Studio里运行或者打包,就可以看到插件已经在使用了,要注意的是,在使用插件的情况下,Hbuilder开发调试的热更新也变得相对麻烦,需要在Hbuilder打包含插件的自定义基座,并先安装在模拟器或者真机。






至此,本篇文章就写完啦,撒花撒花。

image.png

希望本文对你有所帮助,如有任何疑问,期待你的留言哦。
老样子,点赞+评论=你会了,收藏=你精通了。