Home · All Namespaces · All Classes · Grouped Classes · Modules · Functions codeless banner

Quicklauncher

Issues affecting application startup times

Early Qtopia versions suffered from slow startup times primarily for the following reasons:

The quicklauncher functionality aims to eliminate 1, 2, and some of 3. Further information about speeding up application startup times can be found in Writing Applications that Start Quickly.

Quicklauncher Stub Application

To eliminate loading/linking and QtopiaApplication construction, a stub application (called quicklauncher) will be run in advance of an application being requested. When the quicklauncher is started, it will:

When quicklauncher is requested to run an application, it will:

At this point, quicklauncher appears and should behave exactly as if the app had been started normally.

SXE Issues

The use of static global initializers in quicklaunch applications should be avoided where possible. The problem is that these fire before quicklauncher can confirm and switch to the identity of the application. A typical symptom is SXE errors reported for the quicklauncher process or for an invalid process.

Static global initalizers can be used as long as they do not cause code that interacts with LIDS/SXE to be run. It is suggested to limit static global initializers to registration-type functions and to perform any further actions required once the main widget has been constructed.

Launcher integration

The QuickExeApplicationLauncher server task is responsible for ensuring enough instances of quicklauncher are running.

When a request to launch an application is made:

If the server is running as root, it will set the priority of quicklauncher to low while it is being started to ensure that it does not take processor cycles needed by foreground processes. It will be given normal priority when a request to load a new application is received.

Making Applications quicklauncher Enabled

To enable an application for quicklauncher, use the macros described in Applications.

Initial Results

The initial results of the design described above are:

ApplicationQtopia 1.6.0 (sec)+ quicklauncher (sec)
Calendar1.90.8
Contacts2.21.1
Email2.41.2
Image Viewer1.40.9
Media Player2.30.4/1.3*
Tasks2.01.1
Today1.80.8
Clock1.60.6

* The Media Player delays its main GUI construction, so the initial window displays in 0.4 seconds and the full GUI is displayed in 1.3 seconds


Copyright © 2009 Trolltech Trademarks
Qt Extended 4.4.3