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

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 Studio 下载地址:Android Studio官网  Android Studio中文社区

说明:开发Android应用的IDE。

  • App离线SDK下载:请下载2.9.8+版本的android平台SDK

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

  • HBuilderX 下载地址:官方下载地址

说明: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问答

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/737742.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++ | Leetcode C++题解之第169题多数元素

题目&#xff1a; 题解&#xff1a; class Solution { public:int majorityElement(vector<int>& nums) {int candidate -1;int count 0;for (int num : nums) {if (num candidate)count;else if (--count < 0) {candidate num;count 1;}}return candidate;…

大咖共话|智领未来,数字化革新生命健康产业

在数字化浪潮席卷全球的今天&#xff0c;生命健康产业正迎来前所未有的发展机遇。6月20日&#xff0c;“第三届滨海中关村协同创新发展交流会”在北京隆重举办&#xff0c;唯迈医疗与业界大咖齐聚一堂&#xff0c;在“数字化赋能驱动生命健康产业发展”圆桌论坛上&#xff0c;共…

Modsecurity安装+Nginx+腾讯云CentOS+XSS-Labs靶场+WAF规则

君衍. 一、项目环境介绍二、ModSecurity介绍1、Modsecurity基本概述2、Modsecurity工作原理3、Modsecurity功能特点4、Modsecurity优点5、Modsecurity缺点 三、Nginx介绍及配置文件1、Nginx基本概述2、Nginx应用场景3、正向代理4、反向代理5、负载均衡6、动静分离7、主页面路径…

LeetCode 算法:二叉树的中序遍历 c++

原题链接&#x1f517;&#xff1a;二叉树的中序遍历 难度&#xff1a;简单⭐️ 题目 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2] 示例 2&#xff1a; 输入&…

运动蓝牙耳机哪个口碑最好?五大高口碑顶尖单品推荐

在这个快节奏时代&#xff0c;智能手机的普及使得运动开放式耳机逐渐成为我们日常出行的必备单品。运动开放式耳机凭借独特的外形设计&#xff0c;赢得了众多消费者的喜爱。它们不同于传统的入耳式设计&#xff0c;以舒适佩戴为核心&#xff0c;有效缓解了长时间佩戴对耳部造成…

Pikachu靶场--CRSF

借鉴参考 CSRF跨站请求伪造&#xff08;CTF教程&#xff0c;Web安全渗透入门&#xff09;_bilibili pikachu靶场CSRF之TOKEN绕过_csrf token绕过的原理-CSDN博客 CSRF(get) 发现需要登录 查看提示&#xff0c;获取username和password 选择一个用户进行登录 选择修改个人信息 …

哪款护眼落地灯护眼效果好?五款高品质护眼落地灯分享

哪款护眼落地灯护眼效果好&#xff1f;想要保护好宝宝视力&#xff0c;从灯光上下手可是很关键&#xff01;普通照明灯有眩光、蓝光是伤害娃视力的主要“元凶”&#xff01;现在市面上护眼大路灯炙手可热&#xff0c;哪款护眼落地灯质量好&#xff1f;护眼大路灯应该怎么选呢&a…

解决vscode运行js时突然报错

1. 问题背景 创建JavaScript文件运行&#xff0c;弹出错误&#xff1a;Can’t find Node.js binary “node”: path does not exist. Make sure Node.js is installed and in your PATH, or set the “runtimeExecutable” in your launch.json 这是由于没有配置好setting.js…

快手可灵:上线图生视频和视频续写

上次介绍的快手的 Kling 大模型上线了新功能&#xff0c;其中图生视频支持将静态图像转化为生动的 5 秒视频&#xff0c;运动幅度比 Luma 低&#xff0c;但是非常稳定。视频续写则支持单次让视频运动延续 4.5 秒&#xff0c;支持连续多次的续写&#xff0c;最长可生成 3 分钟的…

数据类型 运算符

基本数据类型与引用数据类型的区分 存储内容&#xff1a; 基本数据类型&#xff1a;直接存储实际的数据值&#xff0c;如整数、浮点数、字符等。引用数据类型&#xff1a;存储对象的引用&#xff08;内存地址&#xff09;&#xff0c;而不是对象本身。 内存分配&#xff1a; 基…

[JS]函数

介绍 函数就是用来执行特点任务的代码块, 目的是实现代码复用, 提高开发效率 使用 1.0函数的声明 function 函数名 () {//函数体 } 2.0函数的调用 3.0命名规范 和变量命名规则基本一致尽量小驼峰式命名前缀应该为动词 传参 函数的参数可以极大提高函数的灵活性 1.0参数…

HTTP3(QUIC)详解

文章目录 一、HTTP3简述二、为什么不升级改造TCP而使用UDP&#xff1f;三、QUIC的实现四、HTTP3改进详解1. 快速连接建立(1-RTT初次建立&#xff0c;0-RTT恢复&#xff09;2. 无队头阻塞&#xff08;Head-of-Line Blocking&#xff09;重传机制HTTP/2 中的流HTTP/3 中的流 3. 移…

PyTorch LSTM模型深度解析:参数设置全指南

本文主要依据 Pytorch 中LSTM官方文档 &#xff0c;对其中的 模型参数 、 输入 、 输出 进行详细解释。 目录 基本原理 模型参数 Parameters 输入Inputs: input, (h_0, c_0) 输出Outputs: output, (h_n, c_n) 变量Variables 备注 基本原理 首先我们看下面这个LSTM图&am…

应届毕业之本科简历制作

因为毕设以及编制岗位面试&#xff0c;最近好久没有更新了&#xff0c;刚好有同学问如何制作简历&#xff0c;我就准备将我自己制作简历的流程分享给各位&#xff0c;到此也算是一个小的结束&#xff0c;拿了工科学位证书毕业去做&#x1f402;&#x1f40e;了。 简历主要包含内…

# Kafka_深入探秘者(3):kafka 消费者

Kafka_深入探秘者&#xff08;3&#xff09;&#xff1a;kafka 消费者 一、kafka 消费者、消费组 1、Kafka 消费者是消费组的一部分&#xff0c;当多个消费者形成一个消费组来消费主题时&#xff0c;每个消费者会收到不同分区的消息。假设有一个 T1 主题&#xff0c;该主题有…

Spring+SpringMVC+MyBatis整合

目录 1.SSM介绍1.1 什么是SSM&#xff1f;1.2 SSM框架1.2.1 Spring1.2.2 SpringMVC1.2.3 MyBatis 2.SSM框架整合2.1 建库建表2.2 创建工程2.3 pom.xml2.4 log4j.properties2.5 db.properties2.6 applicationContext-dao.xml2.7.applicationContext-tx.xml2.8 applicationContex…

移远通信SC200L(展锐SL8541E)Linux系统修改分区大小

一、确定大小 由于默认的根文件分区大小仅500M&#xff0c;/lib目录移植个app都放不进去&#xff0c;这谁受得了&#xff1f; userdata分区却有6G&#xff0c;匀一点。 在 prebuilts/pac-binary/sl8541e/ 下有分区信息表 sl8541e-emmc-marlin2.xml&#xff1a; 找到system项&a…

MyBatis-Plus常用注解详解与实战应用

MyBatis-Plus 是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。它提供了大量的常用注解&#xff0c;使得开发者能够更方便地进行数据库操作。 MyBatis-Plus 提供的注解可以帮我们解决一些数据库与实体之间相…

高校新生如何选择最优手机流量卡?

一年一度的高考已经结束了&#xff0c;愿广大学子金榜题名&#xff0c;家长们都给孩子准备好了手机&#xff0c;那么手机流量卡应该如何选择呢&#xff1f; 高校新生在选择手机流量卡时&#xff0c;需要综合考量流量套餐、费用、网络覆盖、售后服务等多方面因素&#xff0c;以下…

怎么用Excel生成标签打印模板,自动生成二维码

环境&#xff1a; EXCEL2021 16.0 问题描述&#xff1a; 怎么用excel生成标签打印模板自动生成二维码 解决方案&#xff1a; 在Excel中生成标签打印模板并自动生成二维码&#xff0c;可以通过以下几个步骤完成&#xff1a; 1. 准备数据 首先&#xff0c;确保你的Excel表…