Manual for PDA Application Development

By Dustin Felton

05/08/05

Requirements

The first step in building any application is to determine the requirements for the application. Once this is done you can use the requirements to determine what type of hardware is required to execute the application correctly and reliably. Given the state of current technology it is rare that a Real-Time critical system would be designed, built and implemented on a PDA.

Hardware

In most cases the PDA application will be utilized in parallel with secondary systems and so therefore would require a high level of compatibility with these secondary systems. Though research should be done to ensure compatibility for the purposes of this manual the most popular chip architecture and operating system will be used.

The test PDA is a Dell AXIM x50v ( operating on an Intel xScale processor, which is based on the ARM architecture. This PDA runs Microsoft Windows Mobile Edition 2003 also known as Windows CE 4.x. The test PDA has 154 MB of usable memory and a 65k color TFT screen. It has built in 802.11b, BlueTooth and IrDA. In addition it has two expansion slots, one Secure Digital (SD) and one Compact Flash (CF).

Language Selection

Now that you have selected your hardware you need a language and a specification within that language to develop the application for your PDA since most languages are only partially supported on PDA’s. On the test PDA we went with a Java Virtual Machine, specifically NSIcom’s CrEme 4.0 ( This VM was chosen due to its compatibility with our Hardware and its support for several key Java libraries such as Corba, SQL and Swing. It should be said that if you choose to use a Java Virtual Machine and develop the application in Java you may want to choose your Language in conjunction with choosing your Hardware since there are few if any VM’s for certain types of operating systems and chip structures and those that do exist are limited. provides a good, although somewhat outdated, table to VM’s for Pocket PC’s.

Coding

Once you have chosen you have your application requirements, chosen your hardware and chosen a language it is time to begin programming the application. Important things to remember when programming is to remain in the specification for the chosen language and cross-reference your libraries and function calls to those supported in the specification and then actually test it to ensure functionality. Often you attempt to implement a coding solution that would normally work but find later after hours of troubleshooting that the specification or library isn’t supported by your VM or PDA.

Executing

Once you have some code written you may want to attempt to execute it for testing purposes and of course you’ll want to execute your application once you have finished coding it. To do this you’re going to need Java installed on a computer, usually the one you’re coding on, your PDA and some way of connecting your PDA to your computer to transfer files. For the purposes of this manual Microsoft ActiveSync 3.5 was used with the docking cradle that came with the Dell AXIM to transfer files to and from the PDA. With ActiveSync installed a “Pocket PC” device shows up under “My Computer” of Microsoft Windows XP. You can access the file system of the PDA through this icon and then drag and drop files into it as you normally would. Executing java code on a PDA using CrEme is quite easy. All you need to do is create an executable JAR file and copy that to the PDA and then click on it to run it.

Creating an executable JAR file

Below is a step-by-step process for creating a JAR file to be executed on the PDA.

  1. You need a simple text file containing two, and only two lines in it. This is your Manifest file. The first line should be “Main-Class: ClassWithMain” where ClassWithMain is the name of the Java file containing your “main” method. The second line is empty.
  2. Move your Java files and your Manifest file into a separate directory by themselves.
  3. Execute the command “jar –cmf Manifest.txt App.jar *.java” where Manifest.txt is the name of your Manifest file and App.jar is the name you want your new executable JAR file to be. You should have a new file in that directory named App.jar.
  4. Copy this file to your PDA and then just click on it to execute it.

Glossary

PDA –Personal Digital Assistant. Handheld computer or personal organizer device.

VM – Virtual Machine usually referring to the popular Java Virtual Machine. This is an operating system specific interpreter for a specific language, in the case of the Java Virtual Machine it would be Java.

IrDA -- Infrared Data Association. Standard for wireless infrared data transmission from 115 kbits/s (Serial IR or SIR) up to 4Mbits/s (Fast IR or FIR).

Corba -- Common Object Request Broker Architecture is a language-independent object model and specification for a distributed applications development environment.

SQL -- Structured Query Language. A specialized language for sending queries to databases.

TFT -- Thin Film Transistor LCD panel. A type of LCD flat panel display screen in which each pixel is controlled by one to four transistors.

Pocket PC – Name given for PDA’s running the Microsoft Windows operating system. However, PDA’s running Linux are often referred to the same way.