【超详细】从 0 到 1 打包你的 uni-app 应用:安卓篇打包指南

【超详细】从 0 到 1 打包你的 uni-app 应用:安卓篇打包指南

一. 介绍

在当前移动运用开发的大环境下,uni-app 作为一种运用 Vue.js 开发多途径运用的框架,为开发者供给了快速构建跨途径运用的才能。本文将为你介绍如何将 uni-app 项目打包成安卓运用,让你的运用在安卓设备上运转并上架运用商场。

二. 准备环境

在开端之前,保证你已经装置了以下软件和东西

  1. Node.js
  2. HBuilderX
  3. JDK(Java Development Kit)

假如你想要完成本地版离线打包,你还需求装置安卓的环境。不过假如你之前对开发安卓没有老练的经历,你将会非常痛苦。

离线打包需求装置以下东西

  1. Android Studio 下载地址:Android Studio官网ORAndroid Studio中文社区

  2. App离线SDK下载:最新android途径SDK下载

本文不对离线打包做详细的阐明,非特殊状况下,非专业的安卓开发人员,真的不主张运用离线打包。

三. 创立运用

在 HBuilderX 中建新的 uni-app 项目或翻开已有的项目。

  1. 在 HBuilderX 中,点击 “文件” -> “新建” -> “uni-app 项目” 或者选中已有的项目。
  2. 输入项目的名称和存放途径,并挑选恰当的模板。
  3. 点击“创立”来生成项目文件。

【超详细】从 0 到 1 打包你的 uni-app 运用:安卓篇打包攻略

四. 生成签名证书

生成 Android 途径签名证书(.keystore)是用于对运用进行数字签名以保证运用的安全性和完整性。下面是一个简略的 Android 途径签名证书生成攻略,请参考:

过程一:装置 JDK(Java Development Kit)

  1. 拜访 Oracle 官方网站,并下载适用于你的操作系统的 JDK 装置程序。
  2. 履行装置程序,并依照提示进行装置。

过程二:翻开终端或指令提示符

  1. 在 Windows 上,按下 Win R,输入 cmd,然后按回车键翻开指令提示符。
  2. 在 Mac 上,翻开“运用程序”>“实用东西”>“终端”。

过程三:导航到 JDK 的 bin 目录

在终端或指令提示符中,运用以下指令导航到你装置的 JDK 的 bin 目录。依据你的 JDK 版别和装置途径或许有所不同,以下指令仅供参考。

cd C:Program FilesJavajdk1.8.0_221bin  // Windows示例途径
cd /Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home/bin  // Mac示例途径

过程四:生成签名证书

在终端或指令提示符中,运用以下指令生成签名证书(.keystore 文件)。依据你的需求和项目要求,能够依据需求修正指令中的参数。

keytool -genkey -v -keystore my-release-key.keystore -alias my-release-key -keyalg RSA -keysize 2048 -validity 10000

指令解说:

  • -genkey:生成密钥对和证书。
  • -v:在终端中显现密钥和证书的详细信息。
  • -keystore my-release-key.keystore:指定要生成的.keystore 文件名。
  • -alias my-release-key:指定密钥和证书的别号,能够自定义。
  • -keyalg RSA:指定密钥算法为 RSA。
  • -keysize 2048:指定密钥的位数为 2048。
  • -validity 10000:指定证书的有效期,单位为天。

过程五:依照提示填写证书信息

生成签名证书的指令会提示你填写一些证书信息,如证书具有者的姓名、安排单位名称、城市、州/省、国家等。依据实际状况填写这些信息。

过程六:设置暗码

生成签名证书时,需求设置一个暗码以保护证书的安全性。请记住这个暗码,它将用于今后对运用进行签名和更新。

过程七:承认生成的签名证书 生成签名证书后,会在当前目录下生成一个名为 my-release-key.keystore 的文件。请保证将这个文件妥善保存,并备份好。

生成签名证书后,你就能够运用它对你的 Android 运用进行签名了。在打包运用时,经过引证签名证书,能够验证运用的身份和完整性。

请注意,签名证书是非常重要的,请妥善保管好它,并慎重共享证书文件和相关暗码,以免引发安全问题。

五. 装备运用

1. 装备运用根底信息

在根底装备页签,填写运用名称、运用描绘、运用版别及运用版别号等基本信息,如下图所示:

【超详细】从 0 到 1 打包你的 uni-app 运用:安卓篇打包攻略

阐明:

运用版别号称为一个字符串,例如:1.0.0,一般代表同一个运用不同的版别号称;

运用版别号是一个 number 类型的数字,一般从 1 开端依次累加,从根本上用来差异不同版别,首要用来版别更新掩盖等。

2. 装备运用图标

首要用来装备运用在桌面上的图标显现,这里需求装备不同分辨率的图标,首要是为了在不同屏幕分辨率的手机下防止失真作用。

【超详细】从 0 到 1 打包你的 uni-app 运用:安卓篇打包攻略

【超详细】从 0 到 1 打包你的 uni-app 运用:安卓篇打包攻略

小技巧

我一般是让 UI同学 出一张大分辨率尺度的图片,运用 HBuilderX 东西一键生成所需求的各种不同分辨率的图片,如上图所示,主动生成图标功用,方便快捷。

3. 装备运用模块

运用模块首要会涉及到一些真机的才能,比方:运用照相机、蓝牙、相册、定位等功用,也能够装备一些 uniapp 已经支撑的第三方插件装备,比方:第三方地图(高德、百度等)、第三方共享、友盟计算等。如下图所示进行按需挑选。

【超详细】从 0 到 1 打包你的 uni-app 运用:安卓篇打包攻略

现在在 uni-app 中所涉及的 Android 模块装备模块及三方 SDK 首要有以下几个,均能够在 HBuilderX 中进行挑选装备

  • Geolocation (定位)
  • Push (消息推送)
  • Share (共享)
  • Oauth (登录鉴权)
  • Map (地图)
  • Payment (支付)
  • Speech (语音输入)
  • Statistic (计算)
  • FacialRecognitionVerify (实人认证)
  • uni-AD
  • Android X5 Webview (腾讯 TBS)

不过需求注意的是,假如没有运用某一些模块功用,请不要勾选,因为你每挑选一个模块,将会增大你的运用体积。切记要按需挑选。

4. 装备运用权限

在 App 权限一栏中,依据运用的需求,勾选对应的权限,一般有一些所必要的权限,下面我进行罗列,其他的依照运用内所设计的权限进行添加即可。

【超详细】从 0 到 1 打包你的 uni-app 运用:安卓篇打包攻略

我总结了一下我现在的一个最简略的 App 常用的权限有:(仅涉及到扫码功用)

  1. <uses-feature android:name="android.hardware.camera"/> 指定了运用需求运用相机功用。用于在运用中拍照照片、录制视频或进行其他与相机相关的操作。

  2. <uses-feature android:name="android.hardware.camera.autofocus"/> 指定了运用需求运用相机的主动对焦功用。用于在运用中完成相机对焦功用,以保证拍照的照片或视频清晰。

  3. <uses-permission:name="android.permission.CAMERA"/> 答应运用拜访设备的相机。用于运用在运转时获取相机的拜访权限,能够进行拍照、录制等操作。

  4. <uses-permission android:name="android.permission.FLASHLIGHT"/> 答应运用操控设备的闪光灯。用于运用在需求时翻开和封闭设备的闪光灯。

  5. <uses-permission android:name="android.permission.INTERNET"/> 答应运用拜访互联网。用于运用在需求联网的功用中完成数据的传输和获取。

  6. <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> 答应运用挂载和卸载文件系统。用于运用在需求读取和写入外部存储设备(如 SD 卡)时进行相关操作。

  7. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 答应运用向外部存储设备写入数据。用于运用在需求保存文件到外部存储设备时进行相关操作。

  8. <uses-permission android:name="android.permission.WRITE_SETTINGS"/> 答应运用修正系统设置。用于运用在需求修正设备设置(如音量、显现亮度等)时进行相关操作。

这些权限在安卓运用开发中常见且常用,依据运用的实际需求,能够在清单文件(manifest.json)中声明和运用这些权限。保证运用以正确、安全的方法运用这些功用和资源,例如相机、闪光灯、互联网拜访、外部存储等。

请注意,在 Android 6.0(API 级别 23)及以上版别,部分权限归于危险权限(Dangerous Permissions)。用户在装置运用时需求授予这些权限,不然运用将无法正常运用对应的功用。在运用这些权限时,应遵从 Android 官方的权限管理原则。

基本上完成上面的几个 App 装备就差不多了,后续能够依据自己对项目的深化程度,定向的做一下删减或增加。

六. 真机调试

在打包引证之前,我们首先要经过真机测验,保证所要打包的代码在真机环境下运转没有问题,才能够发动打包程序,能够采用以下过程进行衔接安卓手机进行真机调试

  1. 首先经过 USB 衔接安卓手机,并翻开开发者选项,答应 USB 调试开关翻开
  2. 挑选运转到 Android App 基座即可挑选你在上一步衔接电脑的安卓手机,承认运转就能够了

【超详细】从 0 到 1 打包你的 uni-app 运用:安卓篇打包攻略

阐明:假如在这个当地检测不到你的真机设备,阐明手机和电脑经过 USB 未真正衔接成功,一般的处理计划是下载一个 360 手机帮手、豌豆荚、运用宝等第三方运用,这些运用会装置一些必备的驱动,从旁边面处理你的衔接调试问题。

真机调试首要是测验你的代码运转状况,防止频频运用云打包带来的延时、功率低下的问题。防止编写一行代码几秒钟,打包一次 5 分钟的尴尬地步,大幅度的降低了开发功率。

七. 云打包

1. 发行

翻开 HBuilderX 的东西栏点击东西栏参数界面的 “发行” 按钮,能够看到有如下的菜单供给挑选,下面分别对 App 发行的选项进行阐明:

【超详细】从 0 到 1 打包你的 uni-app 运用:安卓篇打包攻略

  1. 原生 App – 云打包

这个功用是我们接下来要运用的要点功用,首要用来打包 App 的装备项,包括 Android 装备和 iOS 装备,接下来会进行详细的阐明。

  1. 原生 App – 查看云打包状态

很简略,这个功用首要是用来发布云打包恳求之后,查看现在所恳求的云打包状态,是否打包成功,如下图展示。

【超详细】从 0 到 1 打包你的 uni-app 运用:安卓篇打包攻略

  1. 原生 App – 本地打包

这个功用首要是生成本地打包 App 资源,然后配合 Android Studio 进行离线打包。

【超详细】从 0 到 1 打包你的 uni-app 运用:安卓篇打包攻略

运转该指令,首要会将你的项目生成 一个 www 的文件夹,这是 App 离线 资源,首要包括以下内容。

【超详细】从 0 到 1 打包你的 uni-app 运用:安卓篇打包攻略

这种方法,假如你想要深化了解的话,请参考以下链接: App 离线打包

  1. 原生 App – 制造运用 wgt 包

这个功用其实很有用,其首要生成 H5 的资源包,首要用于运用热更新,处理频频的整包更新。假如你的运用运用了热更新计划,那么这个你将会时常用到。

2. 云打包

点击 “原生 App – 云打包” 按钮,HBuilderX 将翻开打包装备界面,首要填写好下面几个参数,即可完成云打包。首要填写的相关信息如下:

  • Android 包名
  • 证书的相关信息(上文中我们已经生成了相关证书)
    • 证书文件
    • 证书别号
    • 证书暗码
  • 挑选传统打包或快速安心打包
    • 首要差异在于是否上传证书及代码

【超详细】从 0 到 1 打包你的 uni-app 运用:安卓篇打包攻略

八. 总结一些坑

1. 上线 Google Play 运用商场

  1. 保证将 HBulider X 升级到 3.2.15 版别,不然 App 将会出现问题
  2. App 提交云端打包时请勾选“GooglePlay(AAB)”途径,生成.aab 格式的运用
  3. 不能直接下载 apk 方法装置运用,需引导用户到 Google Play 装置
  4. 不能存在动态加载代码行为
  5. “App 常用其它设置”中需求将 targetSdkVersion 设置值大于等于 30
  6. 有必要在 Android11 设备上进行测验,保证运用所有功用能够正常运转
  7. 不能包括装置运用权限,在 App 权限装备中不要勾选 android.permission.INSTALL_PACKAGES、android.permission.REQUEST_INSTALL_PACKAGES 权限

2. 运用商场隐私审核不经过

现在不管是上架任何的运用商场,在首次装置运用或更新高版别的运用时,有必要首要弹出运用隐私弹窗,用户进行阅览和同意,其次会检测运用获取的隐私条目和隐私方针是否匹配,不匹配也会被回绝。以华为运用商场为例,下图是在上架华为运用商场时隐私不匹配被回绝的事例。

【超详细】从 0 到 1 打包你的 uni-app 运用:安卓篇打包攻略

【超详细】从 0 到 1 打包你的 uni-app 运用:安卓篇打包攻略

App运用内隐私弹窗提示事例

3. 不要频频的运用云打包

DCloud 官方为了节省,做了一些打包次数的约束,官方阐明:打包不是为了测验运用,而是为了发布运用。所以频频的打包超出一定约束后(我当时是每天 5 次,不知道现在是否有改变),当天会禁止你再次打包。

为了处理这个问题,你能够“制造自定义调试基座”,然后运转到手机,运用自定义基座运转调试,如下图所示:

【超详细】从 0 到 1 打包你的 uni-app 运用:安卓篇打包攻略

4. 运用包体积特别大

上文已经有提到过,或许是因为打包了第三方模块导致的运用包体积变大,详细能够参考以下过程进行扫除:

  • 取消无用的 App 第三方模块的勾选,上文提到过;
  • 检查代码中是否有引证的相关模块;
  • 说到底是被 uniapp 卡脖子了,云打包的确会打包一些无用的插件,可是官方不处理,没有办法,其次你也能够运用离线打包试一下,可是作用不怎么抱负。

总结

经过以上内容的了解,你应当学习了如何运用 uni-app 框架和 HBuilderX 东西来打包生成安卓运用。还大体了解了一些打包 App 及上架运用商场的注意事项及处理计划。

你能够依照这个过程一步步操作,将你的 uni-app 项目转化为安卓运用,并在安卓设备上运转和测验,祝你成功。

因为我自身不是专业的安卓开发人员,如有不正确的当地,敬请指出。

参考资料

Android 途径签名证书生成攻略

Android 模块装备

App 离线打包