The difference between a U3 smart application and a standard Windows application is that a U3 smart application is mobile. The U3 smart application, it's configuration/preference files, and user data files produced, managed, or modified by the U3 smart application are almost always resident on the U3 smart drive itself. This U3 smart drive centric nature of U3 smart applications is what creates the truly mobile computing platform combination of applications and data.
There are 3 issues affecting mobile applications deployed on U3 smart drives:
1. The location of files and directories change from machine to machine. For example, the drive letter assigned to the U3 smart drive may be [E:] on one machine and [F:] on another machine. The user name may be different, or the user's home directory may reside on a different local hard drive or even on a network drive. Even on the same machine, the drive letter assignment could be different day to day affected by the order with which you plug in your USB devices.
2. The host operating system or user permissions may vary from machine to machine. Even two machines with the same operating system may have different versions of core libraries and services.
3. The device may be ejected while it is still being used by applications that are running.
To enable mobility, U3 creates a runtime environment for each U3 smart application. The runtime environment is a set of directories and runtime variables managed by the U3 Launchpad that shields the U3 smart application from the dynamic nature of directory and file locations. The U3 smart application is therefore independent of drive letters and paths assigned by the host machine to the U3 smart drive.
In addition to the runtime environment that insulates the U3 smart application from dynamic factors associated with running from a mobile platform, the U3 framework also manages the runtime phases of the U3 smart application's lifecycle.
The lifecycle management architecture provides hooks where a U3 smart application can customize its behavior at each of the 6 principle lifecycle phases of a U3 smart application. U3 smart applications can customize the user experience at any of the installation, startup, shutdown, upgrade, and uninstall runtime phases.
This lifecycle management architecture means that the U3 smart application doesn't have to implement modules to detect device connect and disconnect events, for example. How a U3 smart application manages its behavior in the presence of other U3 instances of the same application running from other U3 smart drives or in the presence of a host machine based version is completely customizable by the developer using the U3 framework.
Through its design, documented best practices, and certification compliance criteria, the U3 framework provides the means for all U3 smart applications to deliver on 3 core U3 values:
1. U3 smart applications will run on any U3 smart device from any USB manufacturer.
2. U3 smart applications leave no un-intended traces (files and folders) or system modifications on the host machine without express permission from the person using your U3 smart application.
3. U3 smart applications don't leave behind any confidential user data on the host computer.