Boot to Qt技术预览介绍

作者:Liang Qi | May 22, 2013 11:35:21 AM

原文链接: Gunnar Sletta - Introducing Boot to Qt – A Technology Preview

之前的几个月中,我们一直忙于一个新的项目,该项目的内部名称是Boot to Qt,今天我们发布一个技术预览版。

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在我们的参考硬件平台上的表现:

(译者注:某些地区的朋友也许无法观看上述视频,可以点击这里,谢谢Good网友将视频上传)

这个视频展示了Boot to Qt SDK是如何工作的:

(译者注:某些地区的朋友也许无法观看上述视频,可以点击这里,谢谢Good网友将视频上传)

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中附加了很多东西,但是这也是一个值得注意的部分。绝大多数嵌入式设备不需要那些东西。

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

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

获得访问

更多信息,请访问产品页面

请填写试用请求,您就可以得到Boot to Qt。如果您想试用或者对这个软件感兴趣,请使用上述产品页面中的联系表格并且我们很高兴您能开始试用。当然,欢迎对本博文进行评论和提问。

请慢慢享用!