The Emulator supports development in various programming languages. Applications written in different languages are launched in different ways. This section contains a brief discussion of these language-specific issues.
Reference designs vary in their screen size, their look and feel, and in the UI features that they support. Therefore in general Java applications should be written for a particular reference design — although with care simple Java applications can be written that will run successfully on multiple designs. Fortunately creating a variant of a Java application for a different device family is straightforward.
Java applications developed with the aid of a particular SDK and Emulator can be copied straight onto the relevant platform. Because Java is device independent, recompilation is not required.
There are a number of ways that a Java application can be launched, though this will vary between reference designs. See the relevant edition of the Developer Library for details.
C++ developers face a more complex position, as operating system concepts such as processes and threads are directly exposed to the programmer. The Emulator is a single-process environment, unlike the target environments, which are multi-process. For many GUI applications, this difference is transparent, as each process is emulated by a Windows thread. There are, however, issues regarding launching some executables, such as console applications and servers. For more information, see the C++ build tools documentation.