Mobile software
From Wikipedia, the free encyclopedia
Mobile software is designed to run on handheld computers, personal digital assistants (PDAs), smartphones and cellphones. Since the first handheld computers of the 1980s, the popularity of these platforms has risen considerably. Recent model cellphones have included the ability to run user-installed software.
[edit] Platforms
Windows Mobile, Palm OS and Symbian OS support typical application binaries as found on personal computers with code which executes in the native machine format of the processor (the ARM architecture is used on many current models). Windows Mobile also supports the Portable Executable (PE) format associated with the .NET Framework. Both Windows Mobile and Palm OS offer free SDKs and Integrated Development Environments to developers. Machine language executables offer considerable performance advantages over Java.
BREW is another format which gives complete control of the handset and access to all its functionality. However this unchecked power could be dangerous, and for this reason BREW development process is tailored mainly towards recognised software vendors. While the BREW SDK (Software Development Kit) is freely available, running software on real mobile hardware (as opposed to the provided emulator) requires a digital signature which can only be generated with tools issued by a handful of parties, namely mobile content providers and Qualcomm themselves. Even then, the game will only work on test enabled devices. To be downloadable on regular phones the software must be checked, tested and given approval by Qualcomm via their TRUE BREW Testing programme.
Java (in its incarnation as "J2ME" / "Java ME" / "Java 2 Micro Edition") runs atop a Virtual Machine (called the KVM) which allows reasonable, but not complete, access to the functionality of the underlying phone. This extra layer of software provides a solid barrier of protection which seeks to limit damage from erroneous or malicious software. It also allows Java software to move freely between different types of phone (and other mobile device) containing radically different electronic components, without modification. The price that is paid is a modest decrease in the potential speed of the game and the inability to utilise the entire functionality of a phone (as Java software can only do what this middle-man layer supports.)
Because of this extra security and compatibility, it is usually a quite simple process to write and distribute Java mobile applications (including games) to a wide range of phones. Usually all that is needed is a freely available JDK (Java Development Kit) for creating Java software itself, the accompanying Java ME tools (known as the Java Wireless Toolkit) for packaging and testing mobile software, and space on a web server (web site) to host the resulting application once it is ready for public release.