Introduction to Application and Window Management

Application and Window Management describes the process of starting/stopping applications and explains how windows interact with the HMI.

In this release, the QNX CAR platform comes with separate HMI implementations, one of which is built with the Qt framework and the other with HTML5-related technologies. Both HMI versions provide the same screen-switching functionality through their taskbar. The implementations of application and window management provide a useful reference for writing an HMI-based window manager suitable for automotive systems.

Here is the summary of the key differences between the implementations of application and window management:

HTML5 HMI Qt5 HMI
Application and window management is managed by a separate Navigator application. Application and window management is managed by componments (Window manager, Application manager) of the Qt5 HMI.
Each tab on the application and management display area is associated with separate applications. Each tab on the application and management display area is associated with different views of the same process.
Virtual keyboard runs in the Navigator application. Virtual keyboard runs as a separate process external to the Qt5 HMI.

Application and window management uses the Persistent Publish/Subscribe (PPS) service to publish app information and to receive window data from certain apps, which helps it display those apps. To render app windows, applications use the Screen Graphics Subsystem. However, the mechanisms used to access these lower-level services differ between the two HMIs.

Note that you can also write a generic window manager (which might not even render any HMI components), and how to do so is explained in "Creating Your Own Application Window Manager" in the QNX SDK for Apps and Media documentation.

For information about PPS objects that are specific to application and window management (which can be found in /pps/system/navigator/), see the PPS Objects Reference. For details on Screen, see the Screen Graphics Subsystem Developer's Guide.