最近注意到我们尚未发布Qt Quick for Android更新。Qt 6.11即将发布,让我们先简单了解一下Qt 6.9和Qt 6.10带来了哪些新功能。
6.10版的新特性可以从 "Qt Quick for Android 6.10 新特性 "章节查看,而 6.9版的新特性则可以从" Qt Quick for Android 6.9 新特性 "章节查看。
但下面这些古怪的术语究竟是什么意思呢?
在Android服务中嵌入多个QML视图
多参数信号
javadoc中的公共Java API
这些术语都是什么呢?您能用它们做什么?
我们从"javadoc中的公共Java API"开始。这意味着所有Qt Quick for Android的Java API(QtQuickView、QtQuickViewContent、QtAbstractItemModel、QtAbstractListModel、QtModelIndex和QtQmlStatusChangeListener)都以Javadoc风格而非QDoc风格记录,就像Qt APIs和Qt 6.8中使用的QtQuickViewAPI一样!
在此之前,它们只有类引用,如QtAbstractItemModel。这符合行业标准,让熟悉Java的开发者能够使用他们习惯的文档形式。
多参数信号允许QML根对象同时发出带有多个参数的信号, 从而简化了通信过程。例如,现在可以通过单个信号发送四个轮胎压力更新,而无需分别发送四个独立信号。新的信号系统设计支持最大1MB的数据传输。
开发人员现在可以在单个Android Activity(上下文)中嵌入多个QML视图。这样就能实现更复杂的布局。例如,当原生屏幕的不同区域需要由独立的QML组件驱动时,此特性就能排上用场。
如何处理部分数据变更?QtAbstractItemModel中新增的API方法setData 和dataChanged,并配合onDataChanged,让在应用程序内部实现局部数据更新成为可能。以往更新模型通常需要删除并重新添加条目,这就迫使用户界面销毁并重建对象,造成很大的性能损失。借助这些新API,您可以直接从界面编辑模型,并通知系统哪些数据已发生变更!
所有这一切都让Android开发人员可以更轻松地将3D等高性能图形功能添加到已有的全新的Java或Kotlin应用程序中。无需重写整个应用程序,就可以嵌入Qt内容,同时保持以原生框架为核心的项目结构。Qt Quick 3D可助您创建炫酷的3D内容,并在单一场景中无缝融合2D(Android)和3D(Qt)元素。与传统的跨平台Qt应用程序不同,这种方法允许Android开发者使用Java或 Kotlin创建和控制在Android Studio中创建和控制主要应用内容,同时仅在特定部分(如3D视图)使用QML即可。
最酷的是,您可以使用Squish测试混合2D(Android)和3D(Qt)用户界面的Android应用程序!我们Qt研发团队也是这么做的。如果您想了解更多,请查看这篇文章:使用Squish测试Qt Quick for Android应用。
如果您希望亲自体验,可以从Qt Academy的《在Android应用程序中嵌入 Qt Quick 3D内容》课程开始。
END
扫码加入Qt官方ima知识库
往期推荐

