Boot to Qt 技术预览

jopen 6年前

        英文原文: Gunnar Sletta – Introducing Boot to Qt – A Technology Preview

        之前的几个月中,Qt 团队一直忙于一个新的项目,该项目的内部名称是 Boot to Qt。近日该团队发布了该项目的一个技术预览版本。开发者 Gunnar Sletta 在博客中介绍了该技术,原文内容由 Liang Qi 翻译如下。 

        Boot to Qt 是一个商业产品,为用户在嵌入式设备上创建灵巧的用户界面提供了一个完整的集成解决方案。其中包括: 

  • 基于 Qt 框架的用于嵌入式 Linux 的轻型 UI 软件栈(software stack)——Boot to Qt 构建于 Android 内核/基础层之上,为开发优美和高效的嵌入式设备提供了简洁的方案。
  • 现成的镜像文件——我们为几种不同的设备提供了包含 Boot to Qt 软件栈的镜像文件,这样你就可以在第一天直接让它在你的设备上跑起来,用不了多少工作。
  • 完整的 Qt Creator 集成——一键部署并且在硬件上运行,一套特性齐全的开发环境。
  • 模拟器——一个基于 VirtualBox 的模拟器,可以让你在没有硬件的情况下进行开发,它甚至还可以模拟硬件输入,例如 GPS 和网络连接等。

这次技术预览主要聚焦在基于 Android 的基础层之上构建整个软件栈。同时我们也想为传统的嵌入式 Linux 提供一个相似的软件栈,现成的镜像文件和 IDE 集成,希望这个夏天的某个时候发布的下一个预览版中可以实现这个愿望。 

        我们期望在今年年底提供正式发布版。 

        现在你可通过这个视频来了解 Boot to Qt 在我们的参考硬件平台上的表现。可以通过这个视频来了解 Boot to Qt SDK 是如何工作的。 

        Boot to Qt 的范围 

        这个软件栈包含了 Qt 框架中的绝大部分: 

  • Qt Core、Qt Gui、Qt Network、Qt Widgets、Qt Xml
  • Qt QML 和 Qt Quick
  • Qt Quick Controls
  • Qt Graphical Effects
  • Boot to Qt 特定内容,包括虚拟键盘、亮度控制和电源关闭/重启功能。

在这一次的技术预览中支持的设备有: 

这不是一个固定组合,只是我们的一个起点。如果你对于设备方面有什么建议的话,请告知我们。这个软件栈还可以在 x86 的硬件上运行。 

        目前,这个软件栈是单进程的。启动器(launcher)是一个 QML 应用程序,它会在同一个进程内启动其它 QML 应用程序。我们已经开始查看如何使用 Android Gralloc API 进行跨进程共享硬件缓存,我们知道这是可以完成的,但我们将不会在 1.0 包含这个特性。 

        我们还收到了一些关于多媒体和 WebKit 的反馈,我们也希望能够提供这些内容,但也许不会是在最初的版本中。目前的软件栈已经很强大了,已经可以为大量不同的用户案例进行服务了。 

        性能 

        Qt 5 中使用了一个崭新的基于 OpenGL ES 2.0 的场景图像(scene graph)来加强 Qt Quick。这使得 Qt Quick 非常适合于运行在嵌入式设备上,甚至于是在一些配置中等的设备上。例如我们在镜像文件中提供的演示启动器,在我们所有的硬件设备上都可以很好地跑到 60 FPS。 

        在应用程序启动器运行在 Nexus 7 上的时候,我们查看了 CPU 的使用情况。在空闲(idle)的情况下,它使用一个着色器(shader)在当前选中的项上添加发光(glow)效果并且在角落上显示一个有 Qt logo 的小粒子(particle)系统。我们发现当启动程序正在激活项上显示发光动画,并且运行 Qt logo 粒子的时候,CPU 负载大约在 50%。当我们摇动(flick)它的时候,下降到 30%,当手指按下并且按压来移动一个列表的时候,它会下降到 20%。好像看起来,我们做得越多,CPU 负载就会越小。我们是通过观察 CPU 频率调整(frequency scaling)得 知这些情况的。这是一个主频为 1.2GHz 的 4 核 CPU (具有一个特定的 1.3GHz 单核模式),但是当空闲的时候,它会禁用其它 3 个核并且把剩下的一个核切换到 102MHz。所以我们可以在一个运行在 102MHz 的 CPU 上完成在 1280x800 的屏幕上显示 60 FPS 的动画,并且还只用了它的一小半。 

        作为参考,同样的动画在i.MX6 和 Beagle 上的 CPU 占用率大约为2% 和 15%,这两个板子都没有提供频率调整功能。 

        同样,在启动时间上,我们做得也不错。下面这个图表中,对比了 Boot to Qt 和本地的 Android。当然,完成的 Android 中附加了很多东西,但是这也是一个值得注意的部分。绝大多数嵌入式设备不需要那些东西。 

Boot to Qt 技术预览
 

启动时间,以秒为单位,从开启电源到设备可以显示 B2Qt 启动器或者 Android 的主屏幕。越小越好

        上述的比较结果不算太糟糕,但是我们相信我们可以做得更好一些,至少是在我们开始探索不同的嵌入式 Linux 配置的时候。这里有一个例子,在 Raspberry Pi 上运行 Qt5项目中可以在 3 秒之后开始渲染。 

        更多信息 

        更多信息请访问产品页面。请填写试用请求,你就可以得到 Boot to Qt。如果你想试用或者对这个软件感兴趣,请使用上述产品页面中的联系表格并且我们很高兴你能开始试用。请慢慢享用!

来自: www.iteye.com