您的位置:首页 > 移动开发 > Android开发

Windows下Qt 5.2 for Android开发入门

2013-12-13 18:23 411 查看
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安装 》。
安装完成后需要设置一些环境变量:

J***A_HOME,我的是 C:\Program Files (x86)\Java\jdk1.6.0_18
CLASSPATH,内容 .;%J***A_HOME%\lib\dt.jar;%J***A_HOME%\lib\toos.jar
修改 Path 环境变量,添加 %J***A_HOME%\bin

接下来需要在 Qt Creator 中针对 Android 做一些设置,打开“工具”菜单下的“选项”子菜单。下图是我的设置:


loc

其中 JDK location 是 Qt Creator 通过 J***A_HOME 自己找到的。
看上面的图片中有 ***D 设备,是我自己创建的,通过 Qt Creator 可以启动 Android ***D 管理器,创建自己想要的虚拟设备。
完成了这些,就可以开始构建示例程序了。
新建项目,选择 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 Episode 1(翻译)
Qt on Android Episode 2(翻译)
Qt on Android Episode 3(翻译)
Qt on Android Episode 4(翻译)

我的关于 Qt on Android 的系列文章:

Qt for Android 部署流程分析
Qt for Android 编译纯C工程
Windows下Qt for Android 编译安卓C语言可执行程序
Qt on Android:图文详解Hello World全过程

Qt on Android: Android SDK安装

Qt on Android: http下载与Json解析

Qt on Android:Qt Quick 简介

Qt on Android:QML 语言基础

Qt on Android: Qt Quick 之 Hello World 图文详解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: