Vous êtes sur la page 1sur 9

Agenda

Looking Ahead...

Developing Handhelds P General Issues


Targeting Personal Digital Assistant Platforms P Platform Overviews
June 6, 2002 P Development Tools
P Business Summary

Sasmito Adibowo
Arcle Technologies
http://www.arcle.com

General Issues General Issues


Opposite Usage Patterns
People generally use
“... a handheld is not a PC. Bigger is not handhelds in frequent, short
necessarily better. Speed is not bursts; while people work on
measured in megahertz – or MIPS, or PCs for several hours at a Accesses per day
even FLOPS for that matter. Developers time.
will need to shift paradigms when Waiting a few minutes for a PC to boot
and a wordprocessor to load is acceptable
targeting handhelds...” 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 Average session
phone number to call, waits can be time (minutes)
frustrating. Source: Palm, Inc user surveys

General Issues General Issues


User Interface Memory Considerations

P Small screen, – most are 6cm * 7cm, some are P Most handhelds do not carry secondary
smaller. storage – all data are stored in the main
P Limited resolution and color. memory.
P Small or no keyboard. P Out-of-memory situations will occur more
often – applications must degrade gracefully
P Stylus, not mouse – programming will be instead of simply terminating.
slightly different.
P Memory grew from 2MB, 8MB, to 64MB. But
P Less taps is better. as handhelds grew smaller, don’t expect that
trend to continue.
General Issues Platform Overviews
Conserving Power Discussion Scope

P Avoid lengthy computations – leave the


analysis to the desktop machine. P 3Com’s Palm OS.
P Avoid polling, favor blocking. Thus the OS P Microsoft Windows CE.
can suspend the CPU.
P Limit the use of peripheral devices – sounds, 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.

Palm OS Palm OS
Architecture Overview Platform Components

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 .
Source: Palm OS website

Palm OS Palm OS
Application Startup and Stop Memory

P Only one application at a time. P 32-bit physical address


P No exit command – user simply selects another space.
application. P All memory are considered
P Application launch codes: of a part of a card.
< sysAppLaunchCmdNormalLaunch – Normal launch. P Cards may contain RAMs,
< sysAppLaunchCmdCardLaunch – Launch the application ROMs, or a combination of
from an expansion card.
< sysAppLaunchCmdFind – Finds a text string.
both.
< sysAppLaunchCmdInitDatabase – Initialize database prior P Partitions:
to HotSync restore. < Dynamic Heap
P Application stop: appStopEvent – upon receiving this < Storage Heap
event, an application must exit its event loop, close
any open files and forms, and exit.
Palm OS Palm OS
Memory Manager Data Manager

P General memory P Higher-level data


allocation/de-allocation. abstraction, for (more)
P Two types of memory: persistent storage.
< Moveable chunks (handles). P Databases instead of files.
< Fixed chunks (pointers).
P Data divided into discrete
P Heap compaction pieces that the system help
< When allocation request failed. manages.
< Move unlocked moveable chunks down to lower P Two major categories:
addresses. < Record databases
P Memory chunks are marked with their owner < Resource databases
– freed when the application terminates.

Palm OS Palm OS
Data Manager Springboard Expansion

P Record Databases P Used in Handspring Visor


< Most common for data storage. handhelds.
< Indexed records. P Open standard –
< May be maintained in sorted order. documentation available for
< Each record belong to a category. download, no user fees, no
< Backup may be done on a per-record basis. royalties, no proprietary
parts.
P Resource Databases
< Free-form storage. P Low cost – uses the PCMCIA Inserting a module into the
Springboard expansion slot
< Linear search on access. 68-pin block.
P flexible power – built-in
supply of 100mA at 3.3V.

Palm OS Windows CE
Springboard Expansion Architecture Overview

P Includes all necessary


software
P Automatic software
install/de-install – no driver
needed.
P Microphone support in
handheld.
The Springboard expansion slot (below)
and examples of possible Springboard
modules.

Source: MSDN Library


Windows CE Windows CE
Platform Overview Design Goals

P Version 3.0 renamed to Pocket PC. P Small footprint.


P Available in three form factors: P High modularity – to build a high range of
< Handheld PC – touchscreen with keyboard, either embedded systems.
PCMCIA or CompactFlash.
< Palm PC – touchscreen without keyboard,
P Execute-in-place (XIP) out of ROM.
CompactFlash. P Use the Win32 API standard.
< Auto PC – in-car systems.
P Portable to different microprocessor familites.
P Unicode-only character set.
P Subset of the Win32 API.
P Support for multithreaded applications.

Windows CE Windows CE
Memory Management Driver Architecture

P 4GB virtual address space. P Native drivers – no common interface model,


P Data storage provided as a virtual disk in loaded by parent processes.
RAM. P Stream drivers – exposed to applications
P Familiar Win32 and C memory-management through the file system interface.
functions. P Regular IPC to drivers are supported.
P Record-based data access are also available
via the Object Store.

Windows CE Lineo Embedix


Driver Architecture Architecture Overview on the Sharp SL-5xxx

Source: SL-5500 / System Architecture Overview


Source: MSDN Library
Lineo Embedix Lineo Embedix
Platform Overview Memory Information

P Mostly standard Linux system with kernel P Root filesystem mounted as


version 2.4. RAM disk.
P Busybox provides a subset of POSIX P All data are managed as
regular files.
command-line utilities.
P The Java VM is handled like
P Qt/Embedded GUI, virtual framebuffer. a regular process.
P PersonalJava 1.2 environment included.
P Base applications provided by Qt Palmtop.

Source: “SL-Series” Memory Information for


JavaTM & Qt/Embedded Applications

Development Tools Native Code Compilers


Discussion Scope CodeWarrior for Palm OS

P Native-code compilers. P The “official” development tool for the Palm


OS.
P Bytecode or source interpreters. P Uses C, C++, or Motorola 68K assembly
language, – program directly to the Palm OS
P Java environments (VM, libraries, API.
and tools). P Host platform: Windows or Mac.
P C++ Support:
< Global stack-based objects.
< Namespaces
< RTTI
< Templates

Native Code Compilers Native Code Compilers


CodeWarrior for Palm OS CodeWarrior for Palm OS

Editor P IDE features:


Debugger
< GUI Builder.
< Integrated debugging – with emulator or on-device
Emulator
trough serial/USB.
< Source or assembly level debugging.
< Code highlighting.
< Wizards.
Project < Class browser.
Manager
P Retail price: $499
Wizards
P Contact: http://www.metrowerks.com
Source: CodeWarrior 8 for Palm OS Platform Datasheet
Native Code Compilers Native Code Compilers
Microsoft eMbedded Visual Tools Microsoft eMbedded Visual Tools

P Microsoft’s CE development toolset. P Program directly to the Windows CE API for


P Components: C/C++.
< eMbedded Visual C++. P C++ offers the option of MFC and ATL for
< eMbedded Visual Basic. Windows CE.
< SDK and remote tools.
P Debugging options:
P Features the familiar Visual Studio user < Simulating Windows CE environment under
interface. desktop Win32.
< Remote debugging through cable.

Native Code Compilers Native Code Compilers


Microsoft eMbedded Visual Tools MobileBuilder

P Cost: $14.95 (international shipping) – free P Develop for several platforms from the same
downloads available. code base.
P Contact: P Supported targets: Palm OS, Windows CE,
http://msdn.microsoft.com/vstudio/device/p Pocket PC, Windows NT, 98, 95, 3.1, MS-
rodinfo.asp DOS, and DPMI.
P IDE with drag-and-drop RAD tools.
P Host platform: Windows 2000, NT 4.0, 98, 95

Native Code Compilers Native Code Compilers


MobileBuilder MobileBuilder
Visual
Programming
Environment P C-language, code to Penright’s proprietary
API.
P Over 350 handheld-focused API: handwriting
recognition, signature capture, bar code
scanning, etc.
Powerful Form P Separate runtime licenses for each target
Designer
platform.
P Price: $1595 per developer seat.
P Contact: http://www.penright.com
Source: MobileBuilder Spec Sheet.
Bytecode Interpreters Bytecode Interpreters
PocketC PocketC

P Scripting, C-like language (but not C!). P Price: $30 (Palm), $38 (Windows CE).
P Cross processor capability on Windows CE. P Contact: http://www.orbworks.com
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


NS Basic/Palm NS Basic/Palm

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/

Source: NS Basic website

Bytecode Interpreters Bytecode Interpreters


NS Basic/CE NS Basic/CE

P Uses standard VBScript interpreter engine. P Royalty-free program


distributions.
P Code directly in handheld.
P Price: $149.95
P IDE with RAD tools. P Contact:
P Database support - ADOCE. http://www.nsbasic.com/ce
P Cross-processor support.

Source: NS Basic website


Java Environments Java Environments
KVM Reference Implementation Jeode PDA Edition

P Focus on connected devices. P PersonalJava 1.2 compliant – VM certified by


P Multithreading support. Sun.
P VM size: 50K – 80K, working memory: 128K. P Complete JNI support.
P Current target: Palm OS. Desktop: Windows P Targets: Windows CE, Linux (X11,
and Solaris. Qt/Embedded, QPE).
P No native support. P Dynamic Adaptive Compilation (DAC).
P Contact: P Contact: http://www.insignia.com
http://java.sun.com/products/cldc/ds/

Java Environments Java Environments


Waba Waba

P Strict subset of Java: language, class file, P Very limited set of libraries.
bytecode format. P No multithreading, no exceptions.
P Cross-platform VM: Palm OS, Windows CE, P Supports serial and socket communications.
Newton, TI, even DOS.
P Native interface implemented by modifying
P Small footprint VM’s source code.
< VM+classlib less than 64K on Palm OS and
Windows CE. P No-charge, GPL license.
< Working memory less than 10K.
P Contact: http://www.wabasoft.com

Business Summary Business Summary


Targeting Palm OS Targeting Windows CE

P Pros P Pros
< Market share leader – control the market’s < Similarity to other members of the Windows family
directions. – simple transition from desktop-based Windows
< OS built for small, low-powered devices – may development.
appear in wider settings. < Microsoft efforts for CE to dominate in-car
< Vendor support and connectivity to enterprise computing.
products: IBM, Oracle, Sybase, SAP. < Availability of familiar applications: Word, Excel,
Outlook.
P Cons
< High learning curve for developers. P Cons
< Limited capacity of the Motorola Dragonball < Declining market segment – from small to smaller.
processor. < Large memory, battery, and user interface
requirements.
Business Summary References
Targeting Linux P Campbell, Tom. Programming Windows CE applications on your
Windows CE machine. Programming Power.
P Epplin, Jerry. A developer's perspective on Sharp's Zaurus SL-5000D
P Pros Linux/Java PDA. Nov. 12, 2001.
< As expected from Linux: GPL open source. P Palm, Inc. A Flexible Architecture for Innovative Solutions . 2002.
http://www.palmos.com/platform/architecture.html
< Interesting possibilities to mix-and-match P Palm, Inc. Palm OS Memory Architecture.
components. http://oasis.palm.com/dev/kb/papers/1145.cfm?print=true
< Most software components can be downloaded at P Palm, Inc. Zen of Palm.
no cost. P Palm, Inc. Palm OS Programmer's Companion, Volume I.
P Cons P Penright. MobileBuilder Spec Sheet.
< Very high learning curve. P Gregory, Kimberly . Embedded Development with Microsoft Windows
CE. April 1998.
< Most development tools are not mature – usually
P Handspring. The Springboard Platform Whitepaper. 1999
resorts to command-line gcc.
P Insignia. Jeode PDA Edition VM. http://www.insignia.com/. 2002..
< No established standard – too many GUI toolkits http://www.insignia.com/. 2002.
and libraries.

References
P Richter, 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.
P Metrowerks. CodeWarrior 8 for Palm OS Platform Datasheet.
Thank You
P Microsoft Corp. Microsoft Windows CE Technical FAQ. MSDN Library.
P Microsoft Corp. Microsoft Windows CE: The New Choice for Dedicated Any Questions?
Systems. MSDN Library.
P Microsoft Corp. Windows CE 2.10: Frequently Asked Questions. July
27, 1998.
P Microsoft Corp. Windows CE Memory Architecture. MSDN Library.
P Sharp Corporation. “SL-Series” Memory Information for JavaTM &
Qt/Embedded Applications. (revision 1.00 2002.4.4)
P Sun Microsystems. Java 2 Platform Micro Edition (J2ME) Technology for
Creating Mobile Devices White Paper. May 19 2000.
P Wireless Developer Network. WirelessDevNet Online Training.
http://www.wirelessdevnet.com

Vous aimerez peut-être aussi