Agenda
General Issues
Looking Ahead...
Developing Handhelds
P General Issues P Platform Overviews P Development Tools P Business Summary
“... a handheld is not a PC. Bigger is not necessarily better. Speed is not measured in megahertz – or MIPS, or even FLOPS for that matter. Developers will need to shift paradigms when targeting handhelds...”
General Issues
General Issues
General Issues
Opposite Usage Patterns
User Interface
Memory Considerations
P Small screen, – most are 6cm * 7cm, some are
P Most handhelds do not carry secondary
P Limited resolution and color. P Small or no keyboard. P Stylus, not mouse – programming will be
P Out-of-memory situations will occur more
P Less taps is better.
P Memory grew from 2MB, 8MB, to 64MB. But
General Issues
Platform Overviews
Palm OS
Conserving Power
Discussion Scope
Architecture Overview
Targeting Personal Digital Assistant Platforms A Sasmito Adibowo 1299000029
People generally use handhelds in frequent, short bursts; while people work on PCs for several hours at a time. Waiting a few minutes for a PC to boot and a wordprocessor to load is acceptable if one’s going to write a paper for two hours. If the sole purpose of turning on the handheld is just to look up somebody’s phone number to call, waits can be frustrating.
smaller.
Accesses per day
slightly different.
Average session time (minutes)
storage – all data are stored in the main memory. often – applications must degrade gracefully instead of simply terminating. as handhelds grew smaller, don’t expect that trend to continue.
Source: Palm, Inc user surveys
P Avoid lengthy computations – leave the analysis to the desktop machine.
P Avoid polling, favor blocking. Thus the OS can suspend the CPU.
P Limit the use of peripheral devices – sounds,
P 3Com’s Palm OS. P Microsoft Windows CE. P Lineo Embedix Plus.
serial, modems, etc.
P Optimize for fast response time. Avoid
background processing. PDAs only have one user to take care of. Source:Palm OS website
Palm OS
Palm OS
Palm OS
Platform Components
Application Startup and Stop
Memory
P Palm OS® software. P Reference hardware design. P HotSync® conduit data synchronization technology.
P Platform component tools including an API
that enables developers to write applications.
P Software interface capabilities to support hardware add-ons .
P Only one application at a time. P No exit command – user simply selects another application.
P Application launch codes: < sysAppLaunchCmdNormalLaunch – Normal launch. < sysAppLaunchCmdCardLaunch – Launch the application from an expansion card. < sysAppLaunchCmdFind – Finds a text string. < sysAppLaunchCmdInitDatabase – Initialize database prior to HotSync restore.
P Application stop: appStopEvent – upon receiving this event, an application must exit its event loop, close any open files and forms, and exit.
P 32-bit physical address space. P All memory are considered of a part of a card.
P Cards may contain RAMs,
ROMs, or a combination of both.
P Partitions: < Dynamic Heap < Storage Heap
Palm OS
Palm OS
Palm OS
Memory Manager
Data Manager
Data Manager
P General memory
P Higher-level data abstraction,
P Two types of memory:
P Databases instead of files. P Data divided into discrete
allocation/de-allocation.
P Record Databases
for (more) persistent storage.
< Moveable chunks (handles). < Fixed chunks (pointers).
P Heap compaction < When allocation request failed. < Move unlocked moveable chunks down to lower addresses.
P Memory chunks are marked with their owner
< Most common for data storage. < Indexed records. < May be maintained in sorted order. < Each record belong to a category. < Backup may be done on a per-record basis.
pieces that the system help manages.
P Resource Databases
P Two major categories:
< Free-form storage. < Linear search on access.
< Record databases < Resource databases
– freed when the application terminates.
Palm OS
Palm OS
Windows CE
Springboard Expansion
Springboard Expansion
Architecture Overview
P Used in Handspring Visor
P Includes all necessary
P Open standard –
P Automatic software
handhelds.
documentation available for download, no user fees, no royalties, no proprietary parts.
software
Inserting a module into the Springboard expansion slot
P Low cost – uses the PCMCIA 68-pin block.
install/de-install – no driver needed.
P Microphone support in handheld.
The Springboard expansion slot (below) and examples of possible Springboard modules.
P flexible power – built-in supply of 100mA at 3.3V.
Source: MSDN Library
Windows CE
Windows CE
Windows CE
Platform Overview
Design Goals
Memory Management
P Small footprint. P High modularity – to build a high range of
P 4GB virtual address space. P Data storage provided as a virtual disk in
P Execute-in-place (XIP) out of ROM. P Use the Win32 API standard. P Portable to different microprocessor familites.
P Familiar Win32 and C memory-management
Windows CE
Windows CE
Lineo Embedix
Driver Architecture
Driver Architecture
Architecture Overview on the Sharp SL-5xxx
P Version 3.0 renamed to Pocket PC. P Available in three form factors: < Handheld PC – touchscreen with keyboard, either PCMCIA or CompactFlash. < Palm PC – touchscreen without keyboard, CompactFlash. < Auto PC – in-car systems.
P Unicode-only character set. P Subset of the Win32 API. P Support for multithreaded applications.
embedded systems.
RAM.
functions.
P Record-based data access are also available via the Object Store.
P Native drivers – no common interface model, loaded by parent processes.
P Stream drivers – exposed to applications through the file system interface.
P Regular IPC to drivers are supported.
Source:SL-5500 / System Architecture Overview Source: MSDN Library
Lineo Embedix
Lineo Embedix
Development Tools
Platform Overview
Memory Information
Discussion Scope
P Mostly standard Linux system with kernel
P Root filesystem
version 2.4.
mounted as RAM disk.
P Busybox provides a subset of POSIX command-line utilities.
P All data are
managed as regular files.
P Qt/Embedded GUI, virtual framebuffer. P PersonalJava 1.2 environment included. P Base applications provided by Qt Palmtop.
PNative-code compilers. PBytecode or source interpreters. PJava environments (VM, libraries, and tools).
P The Java VM is
handled like a regular process.
Source:“SL-Series”Memory Information for JavaTM
Native Code Compilers
Native Code Compilers
Native Code Compilers
CodeWarrior for Palm OS
CodeWarrior for Palm OS
CodeWarrior for Palm OS
P The “official” development tool for the Palm OS.
Editor
Debugger
language, – program directly to the Palm OS API.
P Host platform: Windows or Mac. P C++ Support: < Global stack-based objects. < Namespaces < RTTI < Templates
P IDE features: < GUI Builder. < Integrated debugging – with emulator or ondevice trough serial/USB. < Source or assembly level debugging. < Code highlighting. < Wizards. < Class browser.
P Uses C, C++, or Motorola 68K assembly
Emulator
Project Manager
Wizards Source: CodeWarrior 8 for Palm OS Platform Datasheet
P Retail price: $499 P Contact: http://www.metrowerks.com
Native Code Compilers
Native Code Compilers
Native Code Compilers
Microsoft eMbedded Visual Tools
Microsoft eMbedded Visual Tools
Microsoft eMbedded Visual Tools
P Microsoft’s CE development toolset. P Components:
P Program directly to the Windows CE API for
< eMbedded Visual C++. < eMbedded Visual Basic. < SDK and remote tools.
P Features the familiar Visual Studio user interface.
C/C++.
P C++ offers the option of MFC and ATL for Windows CE.
P Debugging options: < Simulating Windows CE environment under desktop Win32. < Remote debugging through cable.
Native Code Compilers
Native Code Compilers
MobileBuilder
MobileBuilder
P Develop for several platforms from the same code base.
downloads available.
P Contact:
http://msdn.microsoft.com/vstudio/device/p rodinfo.asp
Native Code Compilers MobileBuilder
Visual Programming Environment
P C-language, code to Penright’s proprietary API.
P Over 350 handheld-focused API:
P Supported targets: Palm OS, Windows
CE, Pocket PC, Windows NT, 98, 95, 3.1, MS-DOS, and DPMI. P IDE with drag-and-drop RAD tools. P Host platform: Windows 2000, NT 4.0, 98, 95
P Cost: $14.95 (international shipping) – free
handwriting recognition, signature capture, bar code scanning, etc.
P Separate runtime licenses for each target
Powerful Form Designer
platform.
P Price: $1595 per developer seat. P Contact: http://www.penright.com Source:
Bytecode Interpreters
Bytecode Interpreters
Bytecode Interpreters
PocketC
PocketC
NS Basic/Palm
P Price: $30 (Palm), $38 (Windows CE). P Contact: http://www.orbworks.com
P Uses the BASIC programming language. P Develop on Windows desktop, with RAD tools. P Runtime size: 88K. P Debugging using Palm OS Emulator. P Price: $149.95 P Contact: http://www.nsbasic.com/palm/
P Scripting, C-like language (but not C!). P Cross processor capability on Windows CE. P Able to write code on handheld. P Desktop IDE available; without GUI builder (Windows host).
P Separate (incompatible) versions for Palm OS and Windows CE.
Source: OrbWorks website
Bytecode Interpreters
Bytecode Interpreters
Bytecode Interpreters
NS Basic/Palm
NS Basic/CE
NS Basic/CE
P Uses standard VBScript interpreter engine. P Code directly in handheld. P IDE with RAD tools. P Database support - ADOCE. P Cross-processor support.
P Royalty-free program distributions.
P Price: $149.95 P Contact:
http://www.nsbasic.com/c e/
Source: NS Basic website
Source: NS Basic website
Java Environments
Java Environments
Java Environments
KVM Reference Implementation
Jeode PDA Edition
Waba
P PersonalJava 1.2 compliant – VM certified by
P Strict subset of Java: language, class file,
P Complete JNI support. P Targets: Windows CE, Linux (X11,
P Cross-platform VM: Palm OS, Windows CE,
P Focus on connected devices. P Multithreading support. P VM size: 50K – 80K, working memory: 128K.
P Current target: Palm OS. Desktop: Windows and Solaris.
P No native support. P Contact:
Sun.
Qt/Embedded, QPE).
P Dynamic Adaptive Compilation (DAC). P Contact: http://www.insignia.com
bytecode format.
Newton, TI, even DOS.
P Small footprint < VM+classlib less than 64K on Palm OS and Windows CE. < Working memory less than 10K.
http://java.sun.com/products/cldc/ds/
Java Environments
Business Summary
Waba
Targeting Palm OS
Targeting Windows CE
P Pros
P Pros
P Very limited set of libraries. P No multithreading, no exceptions. P Supports serial and socket communications. P Native interface implemented by modifying VM’s source code.
P No-charge, GPL license. P Contact: http://www.wabasoft.com
< Market share leader – control the market’s directions. < OS built for small, low-powered devices – may appear in wider settings. < Vendor support and connectivity to enterprise products: IBM, Oracle, Sybase, SAP.
P Cons < High learning curve for developers. < Limited capacity of the Motorola Dragonball processor.
Business Summary
< Similarity to other members of the Windows family – simple transition from desktop-based Windows development. < Microsoft efforts for CE to dominate in-car computing. < Availability of familiar applications: Word, Excel, Outlook.
P Cons < Declining market segment – from small to smaller. < Large memory, battery, and user interface requirements.
Business Summary Targeting Linux
P Pros < As expected from Linux: GPL open source. < Interesting possibilities to mix-and-match components. < Most software components can be downloaded at no cost.
P Cons < Very high learning curve. < Most development tools are not mature – usually resorts to command-line gcc. < No established standard – too many GUI toolkits and libraries.
Thank You Any Questions?
References PCampbell, Tom. Programming Windows CE applications on your Windows CE machine. Programming Power. PEpplin, Jerry. A developer's perspective on Sharp's Zaurus SL5000D Linux/Java PDA. Nov. 12, 2001. PPalm, Inc. A Flexible Architecture for Innovative Solutions. 2002. http://www.palmos.com/platform/architecture.html PPalm, Inc. Palm OS Memory Architecture. http://oasis.palm.com/dev/kb/papers/1145.cfm?print=true PPalm, Inc. Zen of Palm. PPalm, Inc. Palm OS Programmer's Companion, Volume I. PPenright. MobileBuilder Spec Sheet. PGregory, Kimberly . Embedded Development with Microsoft Windows CE. April 1998. PHandspring. The Springboard Platform Whitepaper. 1999 PInsignia. Jeode PDA Edition VM. http://www.insignia.com/. 2002.. http://www.insignia.com/. 2002.
References PRichter, Jeffrey. Developing Applications for Microsoft Windows CE: An Overview of the Windows CE SDK and Visual C++ for Windows CE. MSDN Library. March 15, 1997. PMetrowerks. CodeWarrior 8 for Palm OS Platform Datasheet. PMicrosoft Corp. Microsoft Windows CE Technical FAQ. MSDN Library. PMicrosoft Corp. Microsoft Windows CE: The New Choice for Dedicated Systems. MSDN Library. PMicrosoft Corp. Windows CE 2.10: Frequently Asked Questions. July 27, 1998. PMicrosoft Corp. Windows CE Memory Architecture. MSDN Library. PSharp Corporation. “SL-Series” Memory Information for JavaTM & Qt/Embedded Applications. (revision 1.00 2002.4.4) PSun Microsystems. Java 2 Platform Micro Edition (J2ME) Technology for Creating Mobile Devices White Paper. May 19 2000. PWireless Developer Network. WirelessDevNet Online Training. http://www.wirelessdevnet.com