一. 介绍
在当前移动运用开发的大环境下,uni-app 作为一种运用 Vue.js 开发多途径运用的框架,为开发者供给了快速构建跨途径运用的才能。本文将为你介绍如何将 uni-app 项目打包成安卓运用,让你的运用在安卓设备上运转并上架运用商场。
二. 准备环境
在开端之前,保证你已经装置了以下软件和东西
假如你想要完成本地版离线打包,你还需求装置安卓的环境。不过假如你之前对开发安卓没有老练的经历,你将会非常痛苦。
离线打包需求装置以下东西
-
App离线SDK下载:最新android途径SDK下载
本文不对离线打包做详细的阐明,非特殊状况下,非专业的安卓开发人员,真的不主张运用离线打包。
三. 创立运用
在 HBuilderX 中建新的 uni-app 项目或翻开已有的项目。
- 在 HBuilderX 中,点击 “文件” -> “新建” -> “uni-app 项目” 或者选中已有的项目。
- 输入项目的名称和存放途径,并挑选恰当的模板。
- 点击“创立”来生成项目文件。
四. 生成签名证书
生成 Android 途径签名证书(.keystore)是用于对运用进行数字签名以保证运用的安全性和完整性。下面是一个简略的 Android 途径签名证书生成攻略,请参考:
过程一:装置 JDK(Java Development Kit)
- 拜访 Oracle 官方网站,并下载适用于你的操作系统的 JDK 装置程序。
- 履行装置程序,并依照提示进行装置。
过程二:翻开终端或指令提示符
- 在 Windows 上,按下 Win R,输入 cmd,然后按回车键翻开指令提示符。
- 在 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. 装备运用根底信息
在根底装备页签,填写运用名称、运用描绘、运用版别及运用版别号等基本信息,如下图所示:
阐明:
运用版别号称为一个字符串,例如:1.0.0,一般代表同一个运用不同的版别号称;
运用版别号是一个 number 类型的数字,一般从 1 开端依次累加,从根本上用来差异不同版别,首要用来版别更新掩盖等。
2. 装备运用图标
首要用来装备运用在桌面上的图标显现,这里需求装备不同分辨率的图标,首要是为了在不同屏幕分辨率的手机下防止失真作用。
小技巧:
我一般是让 UI同学 出一张大分辨率尺度的图片,运用 HBuilderX 东西一键生成所需求的各种不同分辨率的图片,如上图所示,主动生成图标功用,方便快捷。
3. 装备运用模块
运用模块首要会涉及到一些真机的才能,比方:运用照相机、蓝牙、相册、定位等功用,也能够装备一些 uniapp 已经支撑的第三方插件装备,比方:第三方地图(高德、百度等)、第三方共享、友盟计算等。如下图所示进行按需挑选。
现在在 uni-app 中所涉及的 Android 模块装备模块及三方 SDK 首要有以下几个,均能够在 HBuilderX 中进行挑选装备
- Geolocation (定位)
- Push (消息推送)
- Share (共享)
- Oauth (登录鉴权)
- Map (地图)
- Payment (支付)
- Speech (语音输入)
- Statistic (计算)
- FacialRecognitionVerify (实人认证)
- uni-AD
- Android X5 Webview (腾讯 TBS)
不过需求注意的是,假如没有运用某一些模块功用,请不要勾选,因为你每挑选一个模块,将会增大你的运用体积。切记要按需挑选。
4. 装备运用权限
在 App 权限一栏中,依据运用的需求,勾选对应的权限,一般有一些所必要的权限,下面我进行罗列,其他的依照运用内所设计的权限进行添加即可。
我总结了一下我现在的一个最简略的 App 常用的权限有:(仅涉及到扫码功用)
-
<uses-feature android:name="android.hardware.camera"/>
指定了运用需求运用相机功用。用于在运用中拍照照片、录制视频或进行其他与相机相关的操作。 -
<uses-feature android:name="android.hardware.camera.autofocus"/>
指定了运用需求运用相机的主动对焦功用。用于在运用中完成相机对焦功用,以保证拍照的照片或视频清晰。 -
<uses-permission:name="android.permission.CAMERA"/>
答应运用拜访设备的相机。用于运用在运转时获取相机的拜访权限,能够进行拍照、录制等操作。 -
<uses-permission android:name="android.permission.FLASHLIGHT"/>
答应运用操控设备的闪光灯。用于运用在需求时翻开和封闭设备的闪光灯。 -
<uses-permission android:name="android.permission.INTERNET"/>
答应运用拜访互联网。用于运用在需求联网的功用中完成数据的传输和获取。 -
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
答应运用挂载和卸载文件系统。用于运用在需求读取和写入外部存储设备(如 SD 卡)时进行相关操作。 -
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
答应运用向外部存储设备写入数据。用于运用在需求保存文件到外部存储设备时进行相关操作。 -
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
答应运用修正系统设置。用于运用在需求修正设备设置(如音量、显现亮度等)时进行相关操作。
这些权限在安卓运用开发中常见且常用,依据运用的实际需求,能够在清单文件(manifest.json)中声明和运用这些权限。保证运用以正确、安全的方法运用这些功用和资源,例如相机、闪光灯、互联网拜访、外部存储等。
请注意,在 Android 6.0(API 级别 23)及以上版别,部分权限归于危险权限(Dangerous Permissions)。用户在装置运用时需求授予这些权限,不然运用将无法正常运用对应的功用。在运用这些权限时,应遵从 Android 官方的权限管理原则。
基本上完成上面的几个 App 装备就差不多了,后续能够依据自己对项目的深化程度,定向的做一下删减或增加。
六. 真机调试
在打包引证之前,我们首先要经过真机测验,保证所要打包的代码在真机环境下运转没有问题,才能够发动打包程序,能够采用以下过程进行衔接安卓手机进行真机调试
- 首先经过 USB 衔接安卓手机,并翻开开发者选项,答应 USB 调试开关翻开
- 挑选运转到 Android App 基座即可挑选你在上一步衔接电脑的安卓手机,承认运转就能够了
阐明:假如在这个当地检测不到你的真机设备,阐明手机和电脑经过 USB 未真正衔接成功,一般的处理计划是下载一个 360 手机帮手、豌豆荚、运用宝等第三方运用,这些运用会装置一些必备的驱动,从旁边面处理你的衔接调试问题。
真机调试首要是测验你的代码运转状况,防止频频运用云打包带来的延时、功率低下的问题。防止编写一行代码几秒钟,打包一次 5 分钟的尴尬地步,大幅度的降低了开发功率。
七. 云打包
1. 发行
翻开 HBuilderX 的东西栏点击东西栏参数界面的 “发行” 按钮,能够看到有如下的菜单供给挑选,下面分别对 App 发行的选项进行阐明:
- 原生 App – 云打包
这个功用是我们接下来要运用的要点功用,首要用来打包 App 的装备项,包括 Android 装备和 iOS 装备,接下来会进行详细的阐明。
- 原生 App – 查看云打包状态
很简略,这个功用首要是用来发布云打包恳求之后,查看现在所恳求的云打包状态,是否打包成功,如下图展示。
- 原生 App – 本地打包
这个功用首要是生成本地打包 App 资源,然后配合 Android Studio 进行离线打包。
运转该指令,首要会将你的项目生成 一个 www 的文件夹,这是 App 离线 资源,首要包括以下内容。
这种方法,假如你想要深化了解的话,请参考以下链接: App 离线打包
- 原生 App – 制造运用 wgt 包
这个功用其实很有用,其首要生成 H5 的资源包,首要用于运用热更新,处理频频的整包更新。假如你的运用运用了热更新计划,那么这个你将会时常用到。
2. 云打包
点击 “原生 App – 云打包” 按钮,HBuilderX 将翻开打包装备界面,首要填写好下面几个参数,即可完成云打包。首要填写的相关信息如下:
- Android 包名
- 证书的相关信息(上文中我们已经生成了相关证书)
- 证书文件
- 证书别号
- 证书暗码
- 挑选传统打包或快速安心打包
- 首要差异在于是否上传证书及代码
八. 总结一些坑
1. 上线 Google Play 运用商场
- 保证将 HBulider X 升级到 3.2.15 版别,不然 App 将会出现问题
- App 提交云端打包时请勾选“GooglePlay(AAB)”途径,生成.aab 格式的运用
- 不能直接下载 apk 方法装置运用,需引导用户到 Google Play 装置
- 不能存在动态加载代码行为
- “App 常用其它设置”中需求将 targetSdkVersion 设置值大于等于 30
- 有必要在 Android11 设备上进行测验,保证运用所有功用能够正常运转
- 不能包括装置运用权限,在 App 权限装备中不要勾选 android.permission.INSTALL_PACKAGES、android.permission.REQUEST_INSTALL_PACKAGES 权限
2. 运用商场隐私审核不经过
现在不管是上架任何的运用商场,在首次装置运用或更新高版别的运用时,有必要首要弹出运用隐私弹窗,用户进行阅览和同意,其次会检测运用获取的隐私条目和隐私方针是否匹配,不匹配也会被回绝。以华为运用商场为例,下图是在上架华为运用商场时隐私不匹配被回绝的事例。
App运用内隐私弹窗提示事例
3. 不要频频的运用云打包
DCloud 官方为了节省,做了一些打包次数的约束,官方阐明:打包不是为了测验运用,而是为了发布运用。所以频频的打包超出一定约束后(我当时是每天 5 次,不知道现在是否有改变),当天会禁止你再次打包。
为了处理这个问题,你能够“制造自定义调试基座”,然后运转到手机,运用自定义基座运转调试,如下图所示:
4. 运用包体积特别大
上文已经有提到过,或许是因为打包了第三方模块导致的运用包体积变大,详细能够参考以下过程进行扫除:
- 取消无用的 App 第三方模块的勾选,上文提到过;
- 检查代码中是否有引证的相关模块;
- 说到底是被 uniapp 卡脖子了,云打包的确会打包一些无用的插件,可是官方不处理,没有办法,其次你也能够运用离线打包试一下,可是作用不怎么抱负。
总结
经过以上内容的了解,你应当学习了如何运用 uni-app 框架和 HBuilderX 东西来打包生成安卓运用。还大体了解了一些打包 App 及上架运用商场的注意事项及处理计划。
你能够依照这个过程一步步操作,将你的 uni-app 项目转化为安卓运用,并在安卓设备上运转和测验,祝你成功。
因为我自身不是专业的安卓开发人员,如有不正确的当地,敬请指出。