|
本帖最后由 tcm123 于 2015-11-27 16:31 编辑
几个月以来,我们一直都在忙于一个代号为Boot to Qt的新项目,今天就来推出它的技术预览。
Boot to Qt是商业版产品,它为在嵌入式设备之上创建流畅的用户界面提供了一套完整的集成方案。该产品包括:
基于Qt框架为嵌入式Linux提供了一套轻量级的UI栈 - 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 and Qt Quick
Qt Quick Controls
Qt Graphical Effects
Boot to Qt相关的附加功能,包括虚拟键盘、屏幕亮度控制和电源开关/重启等功能
本次技术预览所支持的硬件包括:
Google Nexus 7 - 1.2 GHz Quad-Core ARM Cortex A9, Tegra 3 GPU, 1GB RAM
Beagle Board xM - 1GHz ARM Cortex A8, PowerVR SGX530 GPU, 512MB RAM
Boundary Devices SabreLite (Freescale i.MX 6) – 1 GHz Quad-Core ARM Cortex A9, Vivante GC2000 GPU, 1GB RAM
这个硬件列表不是定局,随后我们还会在该列表中添加新设备。如果你想建议我们支持其它的什么设备,请予以告知。本版的软件还可以运行于x86硬件之上。
目前本版软件还是单进程的。软件的启动器是一个QML应用程序,它负责在同一个进程内启动其它的QML应用。我们已对使用Android的Gralloc API实现在多进程间对硬件缓冲区进行共享做了初步的调查工作,了解到该方案的确可行,但我们不准备在1.0的范围内考虑实现这个方案。
我们还对Multimedia和Webkit进行了类似的讨论,也想把它们采纳进来,但可能不会在最初的版本中纳入它们。当前版本的软件功能已经非常强大,可用于多种不同的目的了。
性能
Qt 5引入了新的基于场景图的OpenGL ES 2.0,它为Qt Quick 2提供了支持。这就使得Qt Quick非常适宜于运行在嵌入式硬件之上,即使这些硬件的配置一般运行它也没有问题。比如,我们的安装包中自带的演示启动器中Velvet在我们所列的硬件设备之上运行起来后,屏幕刷新频率可达60FPS。
我们还在Nexus 7上运行我们的应用程序启动器时对CPU占用率进行了详细查看。在空闲状态下,该应用会使用一个着色器为当前处于选中状态的项目增加一个发光效果,另外还会在角上的Qt徽标上显示一个比较小的粒子系统。我们发现在这种状态下,CPU的利用率大约是50%作用。当我们轻击该应用时,利用率降到了30%;当按下手指并拖动列表时,进一步降到了20%之下。这样看来,事情干的越多,CPU占用率会越低。我们所观察到的其实是CPU在动态调整自己的频率。 Nexus 7的CPU是四核的,其主频为1.2GHz(该CPU具有一个特殊的1.3Ghz的单核运行模式),但当在空闲状态下的时候,它会关闭其中的3个核心并将剩下的那个核的频率调整到102Mhz。由此可见,我们能够做到在一个主频为102Mhz的CPU之上,分辨率为1280×800的屏幕中的一个比较大的分区域中进行动画显示,而且此时CPU占用率才刚到一半而已。
对比一下,相同的动画显示在i.MX6和Beagle之上运行时CPU占用率分步为2%和15%,这两个设备的CPU不具备主频自动调整功能。
我们的应用程序的启动时间也相当快。下面就是Boot to Qt应用同原生Android启动时间的一个对比图。当然,目前完整的Android提供了比我们要多的东西,但这也很能说明问题了。绝大多数嵌入式设备并不需要Android提供的那些更多的东西。
启动时间,以秒为单位,表示的是从打开电源后到设备显示出B2Qt的启动器或者是Android的主屏幕。
时间越短越好。
这样的启动时间应该不算太差了,但我们相信,我们还能够更进一步大量对其进行缩减。尤其是我们开始对各自不同的嵌入式Linux设备进行考察时我们更加有信息了。比如, Raspberry Pi之上的Qt 5的启动时间仅需3秒中。 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
|