Services Software DevelopmentMobile Applications
Mobile Applications
Mobile application is designed to run on handheld computers, personal digital assistants (PDAs), enterprise digital assistants (EDAs), smart phones and cell phones. The dominant mobile software platform is Java. Java ME runs on a Virtual Machine (called the KVM) which allows reasonable access to the functionality of the phone. The JSR process serves to incrementally increase the functionality that can be made available to Java ME, while providing Carriers and OEMs the ability to prevent access, or limit access to provisioned software. It allows Java software to move freely between different types of phone (and other mobile device) containing radically different electronic components, without modification. In terms of use, Java ME is followed by BREW. BREW can provide complete control of the handset and access to all its functionality. However the power provided by native code with direct access to the handset APIs, has caused the BREW development process to be tailored largely towards recognized 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 themselves. Even then, the software will only work on test enabled devices. To be downloadable on regular phones the software must be checked, tested and given approval. Windows Mobile, Palm OS, Symbian OS and iPhone 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, Windows Mobile, Palm OS and iPhone OS offer free SDKs and Integrated Development Environments to developers. Machine language executables offer considerable performance advantages over Java.