当前位置: 代码迷 >> Android >> Qt 5.4公布,详解Android特性变化
  详细解决方案

Qt 5.4公布,详解Android特性变化

热度:30   发布时间:2016-04-28 03:24:26.0
Qt 5.4发布,详解Android特性变化

    2014年12月10日, Qt 5.4 终于发布了!官方博客的博文:http://blog.qt.digia.com/blog/2014/12/10/qt-5-4-released/ 。

    下载链接:http://www.qt.io/download/ 。

    版权所有 foruok,转载请注明出处:http://blog.csdn.net/foruok 。

Qt 5.4 有哪些变化

    Qt 5.4 带来了很多变化,比如 Qt Quick 2D renderer 使得 Qt Quick 可以不使用 OpenGL ;又比如 Qt WebEngine,……具体详情看下面的链接:

  • http://blog.qt.digia.com/blog/2014/12/10/qt-5-4-released/
  • http://qt-project.org/wiki/New-Features-in-Qt-5.4
  • http://qt-project.org/wiki/Change-files-in-Qt-5.4.0
    有的同学比较关心 5.4 有哪些问题,看这里吧:http://qt-project.org/wiki/Qt540-KnownIssues 。


对Android的支持有哪些变化

    这是我最关心的,我的书《Qt on Android核心编程》已经上市销售一段时间, 5.4 的发布带来的变化可能导致读者在学习时产生疑问,因此我整理了与 Android 相关的变化供大家参考。

    分两部分来说,一部分是 SDK ,一部分是开发环境 Qt Creator 。

Qt SDK 的变化

    Qt SDK 中与 Android 有关的变化有这些吧。

Android Native Style

    5.3,5.2 ,Qt on Android 开发出来的 APK ,不论是基于 Widgets 还是 Qt Quick ,都不能很好的支持 Android Native Style ,对很多同学来说是一个遗憾喽。好消息是, Qt 5.4 支持了!看下面的链接:

    http://blog.qt.digia.com/blog/2014/12/03/native-android-style-in-qt-5-4/

    关于 Qt Widgets on Android ,在 5.3 里,如果你使用 ministro 服务,有一部分控件已经支持 Android Native Style ,比如 QLineEdit , QMessageBox 等等。而 5.4 带来的变化是:Android Native Style 与 ministro 无关了!你不用 ministro 也一样可以得到 Android 原生风格界面。

    关于 Qt Quick , 5.4 之前是没有 Android Native Style 的,这次是跳变哈,非常棒。

    另外 Android 的版本更新也很快, Android L 正式版发布了一段时间了! Qt 5.3.2 已经支持了 Android L 预览版,可是工作有很多很多了, Android L 的 Material 风格, Qt 5.4 还不支持……变化太大了么,让人怎么 catch up 得及……不过,福音还是有的,这世上就是不缺彪悍的人,看下面的链接,基于 Qt Quick 从零开始实现的 Material 风格:

    https://github.com/7ymekk/qml-material

    还开源!

发行版的变化

    Qt 5.4 是 the Qt Company 成立后的第一个整合版本,在发行版的规划上也有一些变化。我们看下载页面上的说明吧,下面是截图:


                      图1 Qt 5.4 发行版本

    看到没,四个版本,三个收费……我支持这种策略,公司要生存下去才行!

    Community 版本,即社区版本,会少一些特性支持,自己看下面页面的说明喽……下面是安装后开始菜单里的变化:


                   图 2 Qt 5.4 社区版本的快捷方式命名

    对比 5.3.1 和 5.4.0 ,留意一下快捷方式的变化吧。

Qt on Android Known Issues

    好了, SDK 里关于 Android 的变化讲完了,有些值得期待的,比如 基于 Widgets 的视频支持,依然没有到来……有什么问题呢,看下面链接吧:

    http://qt-project.org/wiki/Qt_for_Android_known_issues

    哎呀, Android 5.0 上面不能远程调试了……不过我基本也没怎么用过远程调试,都是在 Windows 上调试界面和逻辑, Android 真机看实际运行效果,这才是 Qt 跨平台带来的大大大大大便利!

Qt Creator的变化

    随着 Qt 5.4 发布的是 Qt Creator 3.3.0 ,相较于 SDK 引入的 Android 特性变化, Qt Creator 的关于 Android 方便的变化来得更猛烈一些,颤抖吧少年!

项目选项的变化

    5.3 和 5.2 携带的 Qt Creator 版本(3.2.x、3.1.x), Qt on Android 应用的项目选项,比如签名、部署策略、创建 AndroidManifest ,实在运行配置中,其实不那么合理吧,你想想看。

    Qt Creator 3.3.0 这点做了改变。下图是构建配置:


                                图3 Qt on Android 构建配置

    图里面的 Create Templates 按钮,点击它会创建 Android 项目需要的模板文件,比如 AndroidManifest.xml 等。看我的《Qt on Android 核心编程》(基于 Qt 5.2 、 Qt 5.3)时,发现找不到书里介绍的项目设置选项时,注意这里的区别。

    除了位置变化,还有一些新变化,比如 Advanced Actions 里的 Use Gradle ,后面会讲。

    下图是运行配置:


                          图 4  Qt on Android 运行配置

    不用多说了吧……

编译系统的变化

    Qt Creator 实际上是调用构建 Android 的应用的工具链来把 Qt on Android 的 so 和必要的 Android 项目模板文件编译、打包成 APK 。不清楚的参看我的书《Qt on Android 核心编程》。这个过程对于开发者基本上是透明的,原本不需要特别关心。

    Android项目构建有几种方式了,原始人的方式不说了,自动化的有 ant ,有 gradle ,据说都是提高生产率的哈,按我提到的顺序,一个比一个好哦。前几天 Google 发布了 1.0 版本的 Android Studio ,使用 gradle 来编译 Android 项目……

    Qt Creator 3.3.0 也支持使用 gradle 来构建 APK ,同时也保留了对 ant 的支持。我们使用时需要做一些选择。来看看怎么做吧。

  • 使用 Gradle 构建

    两步,第一个创建模版(Create Templates)时(参看图 3 红框内的按钮,点击即可)选择支持 Gradle ,看图 5 吧:


                           图 5 创建Android模板文件时支持 Gradle 

    这样创建之后呢,看图 6 ,项目视图的变化:


                  图6 使用Gradle构建时的项目视图

    OK ,创建了模板,就该配置构建选项了,如图 7 所示:


                 图7 构建配置里选择 Use Gradle 

    好啦啦,现在就可以 Run 了……

    咦,肿么这么慢……原来,看图8:


                       图8 使用Gradle构建的编译输出信息

    原来啊,Qt Creator要自动为我们下载 gradle ,它可能还会自动配置好吧,我上周配置 Gradle 2.2.1 来编译我的 Android 项目时花了不少功夫,后来还是直接安装了 Android Studio ,话说 Android Studio 启动那叫一个慢加载那叫两个慢啊,简直像上个世界的……比 Eclipse 还慢……

    我急性子,取消了,没往下走,决定还是用 ant 吧。

  • 使用 ant 构建

    欢迎回到老路上哦。

    图9是创建模板时的截图:


                     图9 使用Ant构建,创建模板取消对Gradle的支持

    创建模版后的项目视图:


                        图10 使用Ant构建时的项目视图

    看着是不是清爽了一些……我是看着觉得越看越好看……我属于遗老遗少……

    点击 Run ……,看看输出信息:


                 图 11 使用Ant构建时的编译输出信息

    关于构建的变化,就说这么多吧。

部署策略的变化

    因为 Android 5.0 的原因,你懂得……

    看下图:


                 图 12 Android 5 不能使用 Deploy local Qt libraries 

    有点悲剧啊,Android 5,对开发者很友好的 “Deploy local Qt libraries to temporary dirrectory” 这种部署策略,居然不适用了。

    不过, Qt Creator 3.3.0 还是蛮友好的,给了我们提示,之前的版本都很任性,不搭理我们……



    就到这里吧,吧拉啦吧啦吧啦……


  相关解决方案