Digia has recently announced Boot to Qt Technology Preview, a commercial offering that provides a solution for the creation of user interfaces on embedded systems. For the first version, they stripped out Android of Java, or other unnecessary parts (Zygote, SurfaceFlinger), added Qt/QML, and tested it on on ARM and x86 hardware.
Boot to Qt includes the following main features:
- A light-weight UI stack for embedded Linux, based on the Qt Framework – Boot to Qt is built on an Android kernel/baselayer and offers an elegant means of developing beautiful and performant embedded devices.
- Ready-made images – We have images for several different devices which include the Boot to Qt software stack, making it possible to get up and running with minimal effort from day one.
- Full Qt Creator Integration – One-click deploy and run on hardware and a fully featured development environment.
- Simulator – A VirtualBox based simulator which allows device development without hardware and opens up for simulating hardware input, such as GPS and connectivity.
The software stack includes most of the Qt Framework:
- Qt Core, Qt Gui, Qt Network, Qt Widgets, Qt Xml
- Qt QML and Qt Quick
- Qt Quick Controls
- Qt Graphical Effects
- Boot to Qt specific additions, including virtual keyboard, brightness control and power off/reboot functionality
However, it currently excludes Qt multimedia and webkit.
The demo below shows Boot to Qt running on Nexus 7, Beagleboard-XM, and Boundary device SABRE Lite showing Qt Quick 2.0 apps, including Qt Cinematic Experience rendered at 55 to 60fps on all three platforms.
The application launcher uses 2% CPU on Freescale i.MX6, 15% of Beagleboard-XM on a 1280×800 screen, most of which is animated. On Tegra 3, CPU usage was 50%, the reason behind it was CPU frequency scaling, as the Tegra 3 just needs to run one core @ 102 Mhz to achieve 60fps in the Qt launcher.
Digia also published a diagram comparing boot times of Boot to Qt (to B2Qt Launcher) and Android (to Home Screen) showing considerable improvement. The company acknowledges Android adds lots of additional stuff, but for embedded systems you don’t need those, and you can optimize boot time.
They still expect to improve boot time, as for example, Qt 5 on Raspberry Pi can start rendering after as little as 3 seconds.
They used Android kernel and baselayer in this preview because of better drivers support, but they are also working on ready-made images and IDE integration for traditional embedded Linux, possibly with a preview coming some time this summer. The official release is expected for the end of the year.
You can find more information and/or request an evaluation on Digia’s Boot to Qt page.