Program your Palm in Java: The PalmOS Emulator
The basics of the Palm platform and the PalmOS Emulator
By Bill Day, JavaWorld.com, 11/20/99
- Digg
- Reddit
- SlashDot
- Stumble
- del.icio.us
- Technorati
- dzone
Palm connected organizers have proven successful beyond the dreams of even their most devoted followers. In a few short years,
Palm Computing and licensees such as IBM, Symbol Technologies, QUALCOMM, and Handspring have gone through several generations
of devices and built a loyal following of users and programmers alike.
With the thousands of programmers and millions of deployed devices have come tools and emulators of all sorts. The richness
of the development-tool ecosystem for the PalmOS makes the devices prime candidates for introducing Java-device programming
capabilities. That is why Sun has chosen PalmOS as the reference platform for the K Virtual Machine, and why I choose to launch
the technical discussion of Java Device Programming with a strong focus on Palm tools and the use of Java with PalmOS.
KVM's development cycles and the extreme velocity on the J2ME fronts being what they are, I've let far too much time pass
since the last installment of Java Device Programming: I pledge not to let that happen again. Luckily, Chuck McManis, a fellow JavaWorld columnist, has in the interim written a nice article on the JavaOne preview of the KVM for PalmOS, so readers have not had
to go completely wanting for Java-device programming information. I will refer to and expound on much of the material in Chuck's
article in this series, particularly when I get to a more in-depth discussion of the first public release of the KVM for PalmOS.
(For Chuck's KVM article, see "The K virtual machine and the Palm V, Part 1.")
Since my own last column I have been working frantically to put together several device-programming resources that I hope
will be useful for Java programmers. These resources include a Java-device programming FAQ and mailing list, as well as the KVM Archive, a list of public domain applications, tools, and related information on J2ME and KVM development.
I shall make liberal use of these resources in the Palm-programming series and will refer to many of them this month and again
in the coming months, so please bookmark the URLs.
Let's get started!
Major Java-device APIs and initiatives, take 2
A lot has transpired on the Java 2 Platform, Micro Edition (J2ME) front even in the few short months since JavaOne 1999. Therefore,
before we dive deep into the Palm platform and Java, I would like to update my July column -- "Program Java devices -- An overview."
Profiles and configurations
What I wrote then about J2ME profiles is still correct. These API groupings sit on top of underlying Java runtimes and provide a certain level of portability and
interoperability within classes of devices targeted at specific markets or vertical industries.
In addition, however, Sun and the J2ME development community have also seen fit to carefully specify the underlying core technologies
for families of Java-enabled devices in profiles known as configurations. Configurations are meant to specify the memory and CPU requirements for target devices as well as for one or more virtual
machines (such as the KVM, PersonalJava VM, Classic VM, and so on) and for core J2ME APIs that may be used to implement the
base J2ME functionality on these devices.
- Digg
- Reddit
- SlashDot
- Stumble
- del.icio.us
- Technorati
- dzone
Resources
- Related JavaWorld articles
- "Program Java devices -- An overview," Bill Day (JavaWorld, July 1999). For a recap of where we left off, please visit the first Java Device Programming article. http://www.javaworld.com/jw-07-1999/jw-07-device.html
- "The K virtual machine and the Palm V, Part 1," Chuck McManis (JavaWorld, September 1999) outlines the JavaOne preview of the KVM for PalmOS. http://www.javaworld.com/jw-09-1999/jw-09-kvm.html
- Downloads for this article, including POSE, alternate emulators, and the KVM
- Palm Computing provides a Win32 PalmOS Emulator, nicknamed POSE. Read about and download POSE. http://www.palm.com/devzone/pose/pose.html
- Alternatively, there are emulators available for several other platforms. Palm Computing lists the ones of which it is aware.
http://www.palm.com/devzone/pose/pose_thirdparty.html
- The KVM Archive provides information on apps and tools written to take advantage of J2ME and the KVM. Download the JavaOne
preview of KVM for PalmOS as well as public domain KVM applications, many of which include source code. http://www.billday.com/KVMArchive/
- Download various real and fanciful Palm device faceplates. (Search for PalmOS Emu in the right-hand margin of the Skins listing.)
http://www.skinz.org
- Palm Computing's DevZone is the metasite for Palm developers. From there you can link to just about anywhere of interest in
the Palm-development universe. http://www.palm.com/devzone
- Palm Computing provides an online version of the O'Reilly and Associates book Palm ProgrammingThe Developer's Guide, by Neil Rhodes and Julie McKeehan, for free on its developer site. It's an outstanding resource for Java developers and
anyone else targeting PalmOS applications. http://www.palm.com/devzone/docs/pptdg/TableOfContents.htm
- Read about Handspring's Visor devices in CNN's "Son of Palm" feature. http://cnn.com/TECH/ptech/9909/13/visor.main
- A related CNN article focuses on the Springboard, describing its use as a software delivery mechanism as well as the more
obvious hardware upgrade capability. I cannot wait for those first Springboard Bluetooth modules to being shipping! http://cnn.com/TECH/ptech/9909/14/visor.springboard
- Intrigued by Springboard? Read up on it in Handspring's developer site. http://216.35.16.11/developers.html
- Other POSE and KVM information
- Scott Hommel provides a basic set of instructions for getting started with POSE and the KVM. http://java.sun.com/people/shommel/KVM/index.html
- The J2ME Connected, Limited Device Configuration (JSR-000030) documents the resources requirements for small Java-enabled
networked consumer devices. This proposal would specify interfaces and VM features for the J2ME core for such devices. One
or more profiles would then be implemented on top of this configuration to build a Java-enabled device such as a PDA or the
pdQ smartphone. http://java.sun.com/jcp/jsr/jsr_030_j2melc.html
- The J2ME Connected Device Configuration (JSR-000036) proposes a similar specification for consumer devices with somewhat more
memory, a bigger CPU, and related resources. The larger footprints are targeted at different applications such as digital
television and automobile entertainment. http://java.sun.com/jcp/jsr/jsr_036_j2mecd.html
- Mobile Information Device Profile for J2ME (JSR-000037) proposes a specification for wireless-device APIs. It is expected
that this profile will be implemented on top of the Connected, Limited Device Configuration. http://java.sun.com/jcp/jsr/jsr_037_mid.html
- Watch the Java Community Process site for J2ME-related configurations and profiles. http://java.sun.com/jcp/
- Still not clear on the various components of the J2ME? Please refer to my technical overview. It describes how configurations
and profiles relate to the J2ME and discusses the KVM, PersonalJava, Java in several prominent vertical markets (telephony,
digital television, and automotive), Java Card, and Embedded Java. http://www.billday.com/Work/J2ME/
- Bill Day's Java Device Programming resources
- The Java Device Programming FAQ has answers to many of your nagging questions. Not in the FAQ? Please email Bill your questions. http://www.billday.com/Work/devicefaq.txt
- Want to join an ongoing discussion about consumer devices and Java Device Programming? Sign up for my free mailing list. Any and all device-programming discussion is fair game. In addition, from time to time
I will publish tips, tricks, conference info, and other URLs and material related to consumer-device programming to the list.
Let the discussion begin! http://deviceprog.listbot.com/
- Download the complete Device and Media Programming code archive from the Resources section of Bill's Web site. Also contains
links to previous columns and related materials. http://www.billday.com/Work/index.html#Column