Qt5.15之安卓开发准备

前言:在技术革新如此之快的时代,Qt也在为适应这些变化发生着重大的改变。又一长期(3年)支持版Qt 5.15 LTS在2020年3月发布,重大更新的大版本Qt 6.0也在2020年12月发布。但是,Qt的策略也发生了变化。从Qt 5.15开始,安装Qt需要Qt账户,今后的长期支持版将对只针对商业用户,离线安装包也只针对商业用户开放。这意味着,开源用户已经没法像以前直接下载安装包安装Qt,只能通过在线安装工具安装Qt,而且需要通过升级安装将来发布的小补丁版本来使用该长期支持版。详见.
当然,通过编译的方式来安装Qt仍然可行,不过这显然需要对Qt和编译项目比较熟悉才行,否则将是件十分困难的工作。
回到正题,无论通过在线安装的方式,安装时勾选了Android,还是编译的方式,编译时编译了Qt Android库,想要使用Qt开发安卓应用仍然需要一些其他工作,包括安装编译安卓项目需要的SDK,NDK等。

准备工作-环境配置

究竟需要准备哪些工作,官方当然有指导文档。传送门。 不过实际操作时还是有很多差异的,在此记录一番。但本文不准备做傻瓜式手把手教学,你还得发挥自己的主观能动性。
需要的材料:

  1. java JDK
  2. android SDK
  3. android NDK (通过NDK使Android能使用JNI与C/C++代码或库交互)
  4. android openssl (用来下载SDK工具时验证证书等)
  5. Gradle (安卓的自动化构建工具)

开始配置:
以上所需的工具确实有些繁多,而且如果单独下载又涉及科学上网问题,版本问题十分麻烦,好在Qt Creator 4.12之后已经可以自动下载SDK工具,NDK,基础包,openssl,以及gradle等,十分省心。详见Creator更新日志

我们需要做的其实很简单了。
打开Qt Creator 4.12或更新的版本。进入选项,选择设备,选择Android,进入环境配置。如下图
环境配置

  1. 安装jdk
    如前所述,大多数工具已可以自动下载安装,但jdk还是要自动手动下载。而且要在jdk安装检测通过后sdk才可以自动下载。
    jdk下载链接 或者点击那个下载按钮自动跳转,不同版本界面有所差异,自行区分。

注意: 建议下载JDK 1.8版本。Qt 5.15 只完整兼容JDK 1.8版本。Qt官网指出,事实证明确实如此。jdk高于8的版本,无法使用Android SDK 里的sdkmanager。
安装好,点击"Browse"找到你的安装目录,让Creator自动检测,成功如图所示。

关于安装目录,建议像我图中那样,建立一个文件夹专门存放jdk和后面的sdk, openssl等。

  1. 安装openssl
    如果你的电脑已安装配置好git,点击图中的download openssl,会自动调用git,clone openssl库到设置的目录中,记得提前设置好目录。否则,将会跳转到github,你可以自行下载解压到你设置的目录中,然后Qt会自动检测到。

  2. 下载SDK
    现在可以终于可以下载SDK了。提前建立好目录,并在Creator中设置好,然后找到后面一个自动下载的按钮,点击set up SDK,弹出几个对话框全都选确定,之后就会开始下载。
    将该界面拉到最底下,会看到一个进度条,会显示checking licenses,时间可能会比较久。
    期间,NDK也会被安装适配的版本。如果SDK也检测通过,那么恭喜,至此Android环境搭建完毕。就是这么简单。
    至于Gradle的安装将在下文讲解。

构建你的第一个安卓程序

在首页“示例”中,选择一个有趣的Qt官方安卓示例项目,在接下来的项目配置界面中勾选Android开发套件,如图
在这里插入图片描述
然后点击“Configure Project”让Qt自动配置该项目的编译环境。接着我们可以根据需要自由的构建该项目啦。Qt是跨平台的,可以构建出其他平台的程序。我们点击下图的“计算机”图标切换到安卓的编译环境,如果已经是在这个环境,请忽略。之后点击那个“小锤子”图标就可以执行构建了。

在这里插入图片描述
注意:第一次构建安卓程序时,会因为缺少一个安卓的自动化构建工具Gradle而报错。这就是前面说的那个Gradle的用处。安卓安装包的整个打包流程十分复杂,所以需要一个自动化的构建工具来自动完成。正常情况下(科学上网),只要点击构建,Qt会自动下载安装。否则自己想法科学上网吧。
当你成功构建时,会在编译输出窗口看到最终输出的*.apk文件。

现在,我们想要的程序已经被编译出来了,是不是捉急地想看看效果呢。可是这是安卓程序啊,在你的电脑上是没法直接执行的。
有两种方法可以做到。一个是安卓真机,一个是安卓虚拟机(模拟器)。
真机:
将你的安卓手机连接到电脑,需要打开手机的开发者模式。一般手机如下操作。
如何进入开发者模式:手机打开设置——我的设备——全部参数,找到手机版本,连续点击7次就能进入开发者模式
然后返回,找到更多设置,在最下面有开发者选项,在里面打开USB调试和允许通过USB安装应用。

接着点击“ ”运行程序,会弹出如下的界面:
在这里插入图片描述
其中第一个是手机,第二个是Android虚拟机。

这里要注意一个问题:由于安卓生态更新迭代了很多年,不同的安卓设备使用的处理器不尽相同。尽管安卓设备90%都使用的Arm架构,但该架构也迭代了很多代,包括ARMv5,ARMv7
(从2010年起),ARMv8等,还有intel
的x86,x86_64等,每一种都关联着一个相应的ABI(应用程序二进制接口)定义了二进制文件(尤其是.so文件)如何运行在相应的系统平台上,从使用的指令集,内存对齐到可用的系统函数库等。STM32的MCU就是基于ARMv7-m也即Cortex-M架构的微控制器。
所以编译一个安卓程序,需要清楚该程序所要运行的平台架构,编译出相应的程序才能使其正常运行。
一个经验:目前较新的安卓设备,基本都使用的Arm64-v8a架构,而运行在电脑上的安卓模拟器,一般都是x86架构。

ABI可在项目构建设置中配置
在这里插入图片描述

点击详情(Details):
在这里插入图片描述
选择和将要运行的设备对应的ABI,点击运行后apk程序就会在手机或虚拟机上安装并打开。

如何创建安卓虚拟机
1.点击工具——选项
设备——Android,拉到最下面,点击SDK Manger
在这里插入图片描述

2.在Android6.0中,选择如下两项安装。安装点击apply即可
在这里插入图片描述

在Tools中,找到如下选项并安装。注意,其上面的那个“Intel x86 Emulator
Accelerator”工具最好也安装了,这个是为intel处理器运行安卓模拟器加速的,至少提高10倍的运行速度,不安装的话你懂的。另外,如果你使用的是AMD处理器的话,这里也是有的,自行查找安装吧。
这里还有一个坑,也有可能是软件问题,希望你的版本已经修复。
问题就是虽然选择了安装这个加速器,但其实不然,它只是被下载下来了而已,并没有帮你安装,你需要自己到下载目录里手动点击安装。

在这里插入图片描述

  1. 安装完成后,进入AVD管理器,点击add添加虚拟机
    在这里插入图片描述
    在这里插入图片描述
    因为下载的模拟器镜像是x86,所以这里的ABI是x86。可以在那个设备下拉框中尝试不同的设备,它们具有不同的屏幕尺寸,系统风格,选择一个适合的。
    点击ok稍等一会后完成添加。
    –END–

敝人所言重在引导,并未细致入微,况且细枝末节,难以言表,还请灵活变通。


myAvatar

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值