Programming Tutorials Browser Tutorials Articles Struts Tutorials Hibernate Tutorials

  Tutorial: Program your Palm in Java, Part 1: The PalmOS Emulator - JavaWorld November 1999

Program your Palm in Java, Part 1: The PalmOS Emulator - JavaWorld November 1999

Tutorial Details:

Program your Palm in Java: The PalmOS Emulator
Program your Palm in Java: The PalmOS Emulator
By: By Bill Day
The basics of the Palm platform and the PalmOS Emulator
alm 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.
Developers are proposing that configurations become a part of the Java Community Process (JCP). As of early October 1999, two J2ME configurations were under consideration:
The J2ME Connected Device Configuration, for applications requiring moderate amounts of memory and a midrange CPU, such as those for digital TV set-top boxes, Internet screenphones, and automotive entertainment and navigation systems.
The J2ME Connected, Limited Device Configuration, for applications used by memory-, CPU-, and bandwidth-constrained networked devices such as mobile phones, pagers, mobile point-of-sale (POS) terminals, and PDAs.
The JCP site has recently posted the first J2ME application profile: the Mobile Information Device Profile, which Motorola and several other community members are beginning to work on. This profile will center on mobile phones and wireless application APIs. The APIs will be specified so that they can be implemented on devices built to include support for the J2ME Connected, Limited Device Configuration. (See Resources at the end of this article for more information on J2ME configurations and profiles, as well as a link to the JCP site.)
Always remember that for consumer devices, every hardware and software decision involves resource considerations and compromises. Configurations and profiles are an attempt to engineer reasonable sets of compromises for related families of devices and end user applications.
Keep these Java Specification Requests for configurations and profiles in mind as we discuss Palm devices. Palms are exactly the sorts of devices, along with Net-enabled mobile phones, on which you will begin to see widespread Java application deployment in the months ahead.
Related note: Free briefing on J2ME for Mobile Devices
I am a big believer in free things. I love those T-shirts thrown at you from every direction at development conferences. But cool as T-shirts can be, I think free development tools and inside information are even better! I try to write about technologies that are available under open source or SCSL (Sun Community Source Licensing) or at least for some sort of free trialware period.
In keeping with that philosophy, I would like to share one more resource I have been working on over the last couple of months: A Sun-hosted briefing on the J2ME. This is an all-day event meant to give developers access to Sun engineers working on the APIs and implementations enabling J2ME-based devices and services.
If you can be in the San Francisco Bay Area on November 3, you might want to check out the Sun Headquarter Briefing on the Java 2 Platform, Micro Edition for Mobile Devices. Motorola and Nokia will make technical presentations on their involvement with Java and J2ME-enabled devices. In addition, you can hear Sun's technical presentations on the J2ME, the KVM, configurations and profiles, and related subjects. If you are interested in attending, visit the Sun Headquarter Briefings page for the working agenda and registration information.
Now let's turn our attention to this article's main focus.
The Palm platform
The Palm platform consists of the core PalmOS, a set of applications included with each Palm device, and related hardware and software tools. For this series of articles, I assume that readers are either already familiar with the device, its HotSync cradle, and so on, or willing to browse through the numerous Web sites dedicated to Palm devices to learn the lingo and read up on Palm-related gadgets. (If you need to take the latter approach, a good place to start is the Palm Computing homepage, which is listed in the Resources .)
No discussion of Palm would be complete, however, without a brief rundown of the Palm devices in use and an attempt to alleviate some of the confusion over the names of the various generations of devices. Why has Palm Computing used Pilot, then PalmPilot, and now simply Palm for its devices? What do other manufacturers of PalmOS-based devices use?
The short of it is this: Palm Computing has released several generations of devices. Because of some legal issues, first with the Pilot Pen company and then with Microsoft, Palm Computing has had to carefully position and reposition their naming structure. (For more information, please refer to the "What's in a Name -- Is It a Pilot or a Palm?" in the preface of Palm Programming: The Developer's Guide, available online for free from the URL in Resources .)
In any event, I will refer to all of Palm Computing's devices, as well as those of the various other companies that have licensed and used the PalmOS to build their own devices, as Palm devices. I will refer to the PalmOS and its related tools collectively as the Palm platform.
The generations of Palm Computing's own devices have so far included:
Pilot 1000, Pilot 5000
PalmPilot Personal, PalmPilot Professional
Palm III (in many variations, such as III, IIIe, and so on)
Palm V (with a sleeker case than those of previous generations, plus -- finally -- a rechargeable battery and recharger built into docking station)
Palm VII (similar in form to the Palm III, but with hardware and software to access Palm.net wireless Web clipping services)
One gotcha to note here is that the release of a new generation of Palm devices does not preclude the continuing sale of previous generations. Palm III, V, and VII series devices are all currently available from Palm Computing. Users pick the model they want based on features and of course cost. In general, each new generation of Palm Computing devices has brought an increase in retail price for the new device along with steadily decreasing prices for previous generations (bless the economics of the computer industry!).
Some other Palm platform-based devices on the market:
IBM Workpads
Symbol barcode-scanning PDAs
QUALCOMM's pdQ smartphone (which includes a built-in Palm connected organizer and some custom applications that link the organizer functionality to the phone; you can tap on phone number to dial a contact, for instance)
Handspring's new line of Visor devices, including the Springboard expansion modules
Handspring is the newest entrant in the Palm arena. Cofounded by the creator of the Palm platform, Jeff Hawkins, Handspring announced new PalmOS-based devices, named Visor, in September 1999. I have included some Resources for more information on Handspring's devices and, in particular, the Springboard expansion modules. Springboard promises to offer interesting opportunities for enterprising developers of both hardware and software in the coming months; stay tuned for more.
One of


 

Read Tutorial at: Click here to view the tutorial

Rate Tutorial:
Program your Palm in Java, Part 1: The PalmOS Emulator - JavaWorld November 1999

View Tutorial:
Program your Palm in Java, Part 1: The PalmOS Emulator - JavaWorld November 1999

Related Tutorials:

XSLT blooms with Java
XSLT blooms with Java
 
A birds-eye view of Web services
A birds-eye view of Web services
 
Master J2ME for live data delivery
Master J2ME for live data delivery
 
Jini's relevance emerges, Part 1
Jini's relevance emerges, Part 1
 
J2SE 1.4 breathes new life into the CORBA community, Part 1
J2SE 1.4 breathes new life into the CORBA community, Part 1
 
Best tools for mobile application development
Best tools for mobile application development
 
J2ME devices: Real-world performance
J2ME devices: Real-world performance
 
Create client-side user interfaces in HTML, Part 2
Create client-side user interfaces in HTML, Part 2
 
To my mind, of few interest
To my mind, of few interest
 
Impressive !
Impressive !
 
Very interesting
Very interesting
 
Using Java Classes in Windows Batch Files
Using Java Classes in Windows Batch Files - a simple approach for system admin Although Java is an ideal language for implementing rich GUI applications, it is equally well-suited for the development of small console-based programs that, in turn, are p
 
The HTML Renderer Shootout, Part 1
The HTML Renderer Shootout, Part 1 In this article, we will review 11 different HTML renderers, comparing their features, compliance, and speed; searching for the best one for any project.
 
FindBugs, Part 1: Improve the quality of your code
FindBugs, Part 1: Improve the quality of your code One of the problems with code quality tools is that they tend to overwhelm developers with problems that aren't really problems -- that is, false positives. When false positives occur, developers learn
 
Taming Tiger
Taming Tiger, Part 2 Understanding generics Welcome to the second part of this three-part series on Sun Microsystems' latest release of the Java 2 Platform, Standard Edition (J2SE). To refresh your memory, Part 1 was a quick introduction to J2SE 1.5
 
J2ME Technology Turns 5!
In 2004 the Java 2 Platform, Micro Edition (J2ME) celebrated its fifth anniversary. This article presents where J2ME is today.
 
J2ME Wireless Toolkit 2.2
Now available.This version of the toolkit is fully compatible with the Java Technology for the Wireless Industry (JTWI) specification (JSR 185).
 
Very simple `Hello world' java program that prints HelloWorld
Very simple `Hello world' java program that prints HelloWorld Hello World Java Simple Java Program for beginners (The HelloWorld.java) Java is powerful programming language and it is used to develop robust applications. Writing a simple Hello
 
WAP Toolkits Motorola - Mobile ADK 1.1 Nokia - WAP Toolkit
WAP Toolkits Motorola - Mobile ADK 1.1 Nokia - WAP Toolkit Tutorial WAP Toolkits T o develop any WAP application you have to download software essential for development. Although you can write and test your codes through our site for learning
 
Easy Emulation With New NetBeans Mobility Pack 4.0
With the click of a button, switch back and forth between different emulation environments while developing one set of code. It's never been this easy to take advantage of Java technology's cross-platform capabilities.
 
Site navigation
 

 

Send your comments, Suggestions or Queries regarding this site at roseindia_net@yahoo.com.

Copyright © 2006. All rights reserved.