uni-app与原生插件混合开发调试1-环境准备

发布于:2024-06-28 ⋅ 阅读:(24) ⋅ 点赞:(0)

uni-app与原生插件混合开发调试系列文章分为3篇,分别详细讲了《环境准备》、《搭建uni-app本地开发调试环境》和《安卓原生插件开发调试和打包》,3篇文章完整详细地介绍了“从环境安装配置到本地开发调试到原生插件打包”整个流程。

相关名词和概念解释

安卓AndroidManifest.xml配置详解AndroidManifest.xml详解 - 简书

uniapp简称uni,是dcloud旗下的产品,基于H5和vue,可用于开发各平台小程序,并且可以将开发的小程序跨平台打包,支持Android和iOS。

HBuilderX,H是HTML的首字母,Builder是构造者,X是HBuilder的下一代版本。我们也简称HX。 

HX是轻如编辑器、强如IDE的合体版本。

App离线SDK

是dcloud提供的用于在本地打包的SDK,其本质就是一个Android工程,下载之后导入到Android studio,再将uni-app打包的本地资源包复制到离线SDK工程,依托离线SDK运行。离线SDK实际上就是uni-app的套壳。

此外,离线SDK的作用是为了扩充uni-app的短板,很多uni-app无法直接调用的原生接口,可以用App离线SDK来开发原生插件,以此扩展原生能力。

本文参考文档:开发者须知 | uni小程序SDK

关于Android studio本地调试

uni-app开发的应用也可以用Android studio本地调试,步骤是先用hbuilderx把uni-app源码本地打包,这个包不是apk包,而是安卓的资源包,再将安卓的资源包整个目录copy到Android studio中的安卓工程的app模块内,再运行app模块。

原理:hbuilderx把uni-app源码打本地包后,html和js等前端代码会生成能够在jsvm环境运行的js源码。

环境准备

  • JAVA环境 jdk1.8

说明:uni-app离线SDK基于Java8,所以JDK1.8是整个环境的基础。

说明:开发Android应用的IDE。

说明:App离线SDK指的是开发uni-app应用的SDK,不是Android compileSdk,本质是一个Android工程,用于用于套壳运行uni-app的Android工程。

说明:HBuilderX即可以用于uni-app打本地Android资源包、APK云打包,也可以当作uni-app的编辑器。

条件准备

申请离线appkey

申请离线appkey包括两部分:生成签名证书 和 申请离线appkey

1、生成签名证书

dcloud官方文档:https://ask.dcloud.net.cn/article/35777

签名证书用jdk自带的工具keytool生成:

keytool -genkey -alias androidPluginKey -keyalg RSA -keysize 2048 -validity 36500 -keystore androidPluginKey.keystore

  • androidPluginKey是证书别名,可修改为自己想设置的字符,建议使用英文字母和数字
  • androidPluginKey.keystore是证书文件名称,可修改为自己想设置的文件名称,也可以指定完整文件路径
  • 36500是证书的有效期,表示100年有效期,单位天,建议时间设置长一点,避免证书过期

回车后提示:

Enter keystore password:  //输入证书文件密码,输入完成回车  
Re-enter new password:   //再次输入证书文件密码,输入完成回车  
What is your first and last name?  
  [Unknown]:  //输入名字和姓氏,输入完成回车  
What is the name of your organizational unit?  
  [Unknown]:  //输入组织单位名称,输入完成回车  
What is the name of your organization?  
  [Unknown]:  //输入组织名称,输入完成回车  
What is the name of your City or Locality?  
  [Unknown]:  //输入城市或区域名称,输入完成回车  
What is the name of your State or Province?  
  [Unknown]:  //输入省/市/自治区名称,输入完成回车  
What is the two-letter country code for this unit?  
  [Unknown]:  //输入国家/地区代号(两个字母),中国为CN,输入完成回车  
Is CN=XX, OU=XX, O=XX, L=XX, ST=XX, C=XX correct?  
  [no]:  //确认上面输入的内容是否正确,输入y,回车  

Enter key password for <testalias>  
        (RETURN if same as keystore password):  //确认证书密码与证书文件密码一样(HBuilder|HBuilderX要求这两个密码一致),直接回车就可以

以上命令运行完成后就会生成证书,路径为“C:\Users\\androidPluginKey.keystore”。

查看证书信息

可以使用以下命令查看:

keytool -list -v -keystore androidPluginKey.keystore Enter keystore password: //输入密码,回车

会输出以下格式信息:

复制代码Keystore type: PKCS12    
Keystore provider: SUN    

Your keystore contains 1 entry    

Alias name: test    
Creation date: 2019-10-28    
Entry type: PrivateKeyEntry    
Certificate chain length: 1    
Certificate[1]:    
Owner: CN=Tester, OU=Test, O=Test, L=HD, ST=BJ, C=CN    
Issuer: CN=Tester, OU=Test, O=Test, L=HD, ST=BJ, C=CN    
Serial number: 7dd12840    
Valid from: Fri Jul 26 20:52:56 CST 2019 until: Sun Jul 02 20:52:56 CST 2119    
Certificate fingerprints:    
         MD5:  F9:F6:C8:1F:DB:AB:50:14:7D:6F:2C:4F:CE:E6:0A:A5    
         SHA1: BB:AC:E2:2F:97:3B:18:02:E7:D6:69:A3:7A:28:EF:D2:3F:A3:68:E7    
         SHA256: 24:11:7D:E7:36:12:BC:FE:AF:2A:6A:24:BD:04:4F:2E:33:E5:2D:41:96:5F:50:4D:74:17:7F:4F:E2:55:EB:26    
Signature algorithm name: SHA256withRSA    
Subject Public Key Algorithm: 2048-bit RSA key    
Version: 3

其中证书指纹信息(Certificate fingerprints):

  • MD5
  • SHA1
  • SHA256

注意:keytool工具生成的androidPluginKey.keystore 文件就是所谓的“证书”。

 申请appkey

申请appkey在dcloud官网申请,需要注册账号并实名认证,然后登录到开发者中心:

点击【我的应用】列表中的【应用名称】=》各平台管理=》新增:

填写包名、SHA1、MD5等:

包名(根据自己需要配置):com.xxx.xxx

填写完后【提交】,dcloud会在线生成appkey,回到【各平台信息】列表,点击查看:

如何获取已安装安卓app的签名

 参考:Android平台签名证书(.keystore)生成指南 - DCloud问答