Qt 5.2 发布了,支持 Android 平台,太好了。
之前公司项目,为了移植一个依赖 Qt 的程序到安卓平台上,我自己交叉编译了 Qt Embedded 4.5.2,费了老大劲儿,还修改了源码(只把 QtCore、QtNetwork、QtXml、QtNetwork 编译过了)。现在终于有官方版本了。
今天试验了一下,在 Windows 7 下把开发环境搭建完成,跑了一个 helloAndroid 示例。
环境搭建其实很简单,首先下载 Qt 5.2.0 for Android(Windows 32-bit) ,安装,注意选中 Tools 里面的 MinGW。安装完成后打开 Qt Creator(版本是 3.0.0 ),打开“帮助”菜单,选择“索引”子菜单,输入 Android,选择“Getting Started with Qt for Android”,里面有详细的步骤,指导我们完成接下来的操作。下图是 Qt Creator里的帮助:
我使用的 ndk 版本是 r8d ,到 这里(点我)下载,zip包,解压即可。
apache ant 是1.8.4,到官网(点我)下载,zip包,解压即可。
jdk 是 6,到 oracle 官网(点我)下载,安装包,跟着向导安装即可。
Android SDK 安装参考:《Qt on Android: Android SDK安装 》。
安装完成后需要设置一些环境变量:
接下来需要在 Qt Creator 中针对 Android 做一些设置,打开“工具”菜单下的“选项”子菜单。下图是我的设置:
其中 JDK location 是 Qt Creator 通过 JAVA_HOME 自己找到的。
看上面的图片中有 AVD 设备,是我自己创建的,通过 Qt Creator 可以启动 Android AVD 管理器,创建自己想要的虚拟设备。
完成了这些,就可以开始构建示例程序了。
新建项目,选择 Qt Widget Application。向导会让选择平台,如下图:
我选择了 Andorid for armeabi-v7a ,接下来就很简单了,编码,构建,运行,选择目标设备。
程序运行结果截图:
针对一个项目,可以做一些设置,有构建的,有运行的,和其它版本 Qt Creator 类似,不同的是有一些 Android 相关的设置,比方说签名、SDK 版本、Qt 库的部署方式等,如下图所示:
我连接上我的手机 XT882 ,运行时也可以找到设备,选择手机,启动比虚拟机快多了,OK ,GOOD。建议直接在真机上调试。
好了,尝鲜到此为止。进一步的开发可以参考 Qt 的文档。
美中不足的是,如果选择 Bundle Qt libraries in APK ,那么 APK 就会变得比较大,我的示例程序 APK 有 6MB,部署到模拟器后通过设置查看,20MB。 Qt 提供了其它两种部署方式,可以弥补这一缺点。除此之外,还有另一个途径,自己编译 Qt 源码,通过裁减来缩小 Qt 库的体积,参考 Qt 5 For Android Building。
翻译了大神 BogDan Vatra 的几篇关于 Qt on Android 的文章(原出处 http://www.kdab.com/category/blogs/ ),列出来参考一下:
我的关于 Qt on Android 的系列文章: