The Application management capability (also known as UI Core) provides control of the application lifecycle: starting, switching, activating, sleeping, and terminating. It also provides a means of restricting the services that applications can use to a preselected set. UI Core includes Screen, a component that allows multiple applications built with disparate technologies to share the same physical display real estate.
As shown in the figure below, the main components of UI Core are the application installer, the authorization manager (Authman), Screen, and the Launcher.
The application installer unpackages the application, validates its signature, and installs the application on the QNX CAR platform.
Launcher enables any application to launch any other application in any UI environment (subject to system permissions).
Authman controls which APIs and system services can be used by each application, enforcing the security model defined by the system developers. This authorization ensures that downloaded applications can't use interfaces they aren't authorized to use. See the HMI Developer's Guide for details.
Screen integrates multiple graphics and UI technologies into a single scene that can be rendered on the display. For example, Screen can combine HTML5, Elektrobit GUIDE, Crank Storyboard, Android, Qt, and native (OpenGL ES) rendered content. Developers can create a separate pane for the output of each rendering engine (such as HTML5, Qt, Video, or OpenGL ES). Each frame buffer can be transformed (scaling, translation, rotation, alpha blend, etc.) to build the final display. Whenever possible, Screen uses GPU-accelerated operations to build the display as optimally as possible, falling back on software only when the hardware can't satisfy a request.
As an example, consider the screenshot of the Torch browser application below:
What appears to be a single homogeneous display is actually made up of the following:
This approach has also been used by the TCS navigation engine (HTML5 borders and buttons with Open GL ES navigation).
Screen provides a lightweight composited windowing system. Unlike traditional windowing systems that arbitrate access to a single buffer associated with a display, a composited windowing system combines individual off-screen buffers holding window contents into one image, which is associated with a display.
Directing all rendering to off-screen buffers allows a more flexible use of window contents without involving the apps that are rendering this content. Windows can be moved around, zoomed in, zoomed out, rotated, or have transparency effects applied to them without requiring the app to redraw anything or to be aware that such effects are taking place.
Screen's display management technology consists of the following principal constructs: