Developing Handhelds - Slides 1pp

download Developing Handhelds - Slides 1pp

of 53

Transcript of Developing Handhelds - Slides 1pp

  • 8/14/2019 Developing Handhelds - Slides 1pp

    1/53

  • 8/14/2019 Developing Handhelds - Slides 1pp

    2/53

    AgendaLooking Ahead...

    PGeneral Issues

    PPlatform Overviews

    PDevelopment ToolsPBusiness Summary

  • 8/14/2019 Developing Handhelds - Slides 1pp

    3/53

    General Issues

    ... a handheld is not a PC. Bigger is notnecessarily better. Speed is not

    measured in megahertz or MIPS, oreven FLOPS for that matter. Developerswill need to shift paradigms whentargeting handhelds...

  • 8/14/2019 Developing Handhelds - Slides 1pp

    4/53

    General IssuesOpposite Usage Patterns

    People generally usehandhelds in frequent, shortbursts; while people work on

    PCs for several hours at atime.Accesses per day

    Average sessiontime (minutes)Source: Palm, Inc user surveys

    Waiting a few minutes for a PC to bootand a wordprocessor to load is acceptable

    if ones going to write a paper for twohours.If the sole purpose of turning on thehandheld is just to look up somebodysphone number to call, waits can be

    frustrating.

  • 8/14/2019 Developing Handhelds - Slides 1pp

    5/53

    General IssuesUser Interface

    PSmall screen, most are 6cm * 7cm, some aresmaller.

    PLimited resolution and color.

    PSmall or no keyboard.

    PStylus, not mouse programming will beslightly different.

    PLess taps is better.

  • 8/14/2019 Developing Handhelds - Slides 1pp

    6/53

    General IssuesMemory Considerations

    PMost handhelds do not carry secondarystorage all data are stored in the mainmemory.

    POut-of-memory situations will occur moreoften applications must degrade gracefullyinstead of simply terminating.

    PMemory grew from 2MB, 8MB, to 64MB. Butas handhelds grew smaller, dont expect thattrend to continue.

  • 8/14/2019 Developing Handhelds - Slides 1pp

    7/53

    General IssuesConserving Power

    PAvoid lengthy computations leave theanalysis to the desktop machine.

    P

    Avoid polling, favor blocking. Thus the OScan suspend the CPU.

    PLimit the use of peripheral devices sounds,serial, modems, etc.

    POptimize for fast response time. Avoidbackground processing. PDAs only have oneuser to take care of.

  • 8/14/2019 Developing Handhelds - Slides 1pp

    8/53

    Platform OverviewsDiscussion Scope

    P3Coms Palm OS.

    PMicrosoft Windows CE.

    PLineo Embedix Plus.

  • 8/14/2019 Developing Handhelds - Slides 1pp

    9/53

    Palm OSArchitecture Overview

    Source: Palm OS website

  • 8/14/2019 Developing Handhelds - Slides 1pp

    10/53

    Palm OSPlatform Components

    PPalm OS software.

    PReference hardware design.

    PHotSync conduit data synchronizationtechnology.

    PPlatform component tools including an API

    that enables developers to write applications.PSoftware interface capabilities to supporthardware add-ons .

  • 8/14/2019 Developing Handhelds - Slides 1pp

    11/53

    Palm OSApplication Startup and Stop

    POnly one application at a time.

    PNo exit command user simply selects anotherapplication.

    PApplication 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.

    PApplication stop: appStopEvent upon receiving thisevent, an application must exit its event loop, close

    any open files and forms, and exit.

  • 8/14/2019 Developing Handhelds - Slides 1pp

    12/53

    Palm OSMemory

    P32-bit physical address space.

    PAll memory are considered of a

    part of a card.PCards may contain RAMs,ROMs, or a combination ofboth.

    PPartitions:< Dynamic Heap< Storage Heap

  • 8/14/2019 Developing Handhelds - Slides 1pp

    13/53

    Palm OSMemory Manager

    PGeneral memoryallocation/de-allocation.

    PTwo types of memory:< Moveable chunks (handles).< Fixed chunks (pointers).

    PHeap compaction< When allocation request failed.< Move unlocked moveable chunks down to lower

    addresses.

    PMemory chunks are marked with their owner

    freed when the application terminates.

  • 8/14/2019 Developing Handhelds - Slides 1pp

    14/53

    Palm OSData Manager

    PHigher-level data abstraction,for (more) persistent storage.

    PDatabases instead of files.

    PData divided into discretepieces that the system helpmanages.

    PTwo major categories:< Record databases< Resource databases

  • 8/14/2019 Developing Handhelds - Slides 1pp

    15/53

    Palm OSData Manager

    PRecord Databases< 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.

    P

    Resource Databases< Free-form storage.< Linear search on access.

  • 8/14/2019 Developing Handhelds - Slides 1pp

    16/53

    Palm OSSpringboard Expansion

    PUsed in Handspring Visorhandhelds.

    P

    Open standard documentation available fordownload, no user fees, noroyalties, no proprietary parts.

    PLow cost uses the PCMCIA68-pin block.

    P flexible power built-in supply

    of 100mA at 3.3V.

    Inserting a module into theSpringboard expansion slot

  • 8/14/2019 Developing Handhelds - Slides 1pp

    17/53

    Palm OSSpringboard Expansion

    P Includes all necessarysoftware

    P

    Automatic softwareinstall/de-install no driverneeded.

    PMicrophone support inhandheld. The Springboard expansion slot (below)and examples of possible Springboard

    modules.

  • 8/14/2019 Developing Handhelds - Slides 1pp

    18/53

    Windows CEArchitecture Overview

    Source: MSDN Library

  • 8/14/2019 Developing Handhelds - Slides 1pp

    19/53

    Windows CEPlatform Overview

    PVersion 3.0 renamed to Pocket PC.PAvailable in three form factors:< Handheld PC touchscreen with keyboard, either

    PCMCIA or CompactFlash.< Palm PC touchscreen without keyboard,

    CompactFlash.< Auto PC in-car systems.

    PUnicode-only character set.PSubset of the Win32 API.

    PSupport for multithreaded applications.

  • 8/14/2019 Developing Handhelds - Slides 1pp

    20/53

    Windows CEDesign Goals

    PSmall footprint.

    PHigh modularity to build a high range of

    embedded systems.PExecute-in-place (XIP) out of ROM.

    PUse the Win32 API standard.

    PPortable to different microprocessor familites.

  • 8/14/2019 Developing Handhelds - Slides 1pp

    21/53

    Windows CEMemory Management

    P4GB virtual address space.

    PData storage provided as a virtual disk in

    RAM.PFamiliar Win32 and C memory-managementfunctions.

    P

    Record-based data access are also availablevia the Object Store.

  • 8/14/2019 Developing Handhelds - Slides 1pp

    22/53

    Windows CEDriver Architecture

    PNative drivers no common interface model,loaded by parent processes.

    PStream drivers exposed to applications

    through the file system interface.PRegular IPC to drivers are supported.

  • 8/14/2019 Developing Handhelds - Slides 1pp

    23/53

    Windows CEDriver Architecture

    Source: MSDN Library

  • 8/14/2019 Developing Handhelds - Slides 1pp

    24/53

    Lineo EmbedixArchitecture Overview on the Sharp SL-5xxx

    Source: SL-5500 / System Architecture Overview

  • 8/14/2019 Developing Handhelds - Slides 1pp

    25/53

    Lineo EmbedixPlatform Overview

    PMostly standard Linux system with kernelversion 2.4.

    P

    Busybox provides a subset of POSIXcommand-line utilities.

    PQt/Embedded GUI, virtual framebuffer.

    P

    PersonalJava 1.2 environment included.PBase applications provided by Qt Palmtop.

  • 8/14/2019 Developing Handhelds - Slides 1pp

    26/53

  • 8/14/2019 Developing Handhelds - Slides 1pp

    27/53

    Development ToolsDiscussion Scope

    PNative-code compilers.

    PBytecode or source interpreters.

    PJava environments (VM, libraries,and tools).

  • 8/14/2019 Developing Handhelds - Slides 1pp

    28/53

    Native Code CompilersCodeWarrior for Palm OS

    P

    The official development tool for the PalmOS.

    PUses C, C++, or Motorola 68K assemblylanguage, program directly to the Palm OSAPI.

    PHost platform: Windows or Mac.

    P

    C++ Support:

  • 8/14/2019 Developing Handhelds - Slides 1pp

    29/53

    Native Code CompilersCodeWarrior for Palm OS

    Source: CodeWarrior 8 for Palm OS Platform Datasheet

    Emulator

    Debugger

    ProjectManager

    Editor

    Wizards

  • 8/14/2019 Developing Handhelds - Slides 1pp

    30/53

    Native Code CompilersCodeWarrior for Palm OS

    P IDE features:< GUI Builder.< Integrated debugging with emulator or on-

    device trough serial/USB.< Source or assembly level debugging.< Code highlighting.< Wizards.< Class browser.

    PRetail price: $499

    P

    Contact: http://www.metrowerks.com

  • 8/14/2019 Developing Handhelds - Slides 1pp

    31/53

    Native Code CompilersMicrosoft eMbedded Visual Tools

    PMicrosofts CE development toolset.

    PComponents:< eMbedded Visual C++.< eMbedded Visual Basic.< SDK and remote tools.

    PFeatures the familiar Visual Studio user

    interface.

  • 8/14/2019 Developing Handhelds - Slides 1pp

    32/53

    Native Code CompilersMicrosoft eMbedded Visual Tools

    PProgram directly to the Windows CE API forC/C++.

    PC++ offers the option of MFC and ATL for

    Windows CE.PDebugging options:< Simulating Windows CE environment under

    desktop Win32.< Remote debugging through cable.

  • 8/14/2019 Developing Handhelds - Slides 1pp

    33/53

    Native Code CompilersMicrosoft eMbedded Visual Tools

    PCost: $14.95 (international shipping) freedownloads available.

    P

    Contact:http://msdn.microsoft.com/vstudio/device/prodinfo.asp

  • 8/14/2019 Developing Handhelds - Slides 1pp

    34/53

    Native Code CompilersMobileBuilder

    PDevelop for several platforms from thesame code base.

    PSupported targets: Palm OS, WindowsCE, Pocket PC, Windows NT, 98, 95, 3.1,MS-DOS, and DPMI.

    P IDE with drag-and-drop RAD tools.

    PHost platform: Windows 2000, NT 4.0,98, 95

  • 8/14/2019 Developing Handhelds - Slides 1pp

    35/53

    Native Code CompilersMobileBuilder

    Visual

    ProgrammingEnvironment

    Powerful Form

    Designer

    Source: MobileBuilder Spec Sheet.

  • 8/14/2019 Developing Handhelds - Slides 1pp

    36/53

    Native Code CompilersMobileBuilder

    PC-language, code to Penrights proprietaryAPI.

    POver 350 handheld-focused API:

    handwriting recognition, signature capture,bar code scanning, etc.

    PSeparate runtime licenses for each target

    platform.PPrice: $1595 per developer seat.

    PContact: http://www.penright.com

  • 8/14/2019 Developing Handhelds - Slides 1pp

    37/53

    Bytecode InterpretersPocketC

    PScripting, C-like language (but notC!).

    PCross processor capability on Windows CE.

    PAble to write code on handheld.

    PDesktop IDE available; without GUI builder(Windows host).

    PSeparate (incompatible) versions for Palm OSand Windows CE.

  • 8/14/2019 Developing Handhelds - Slides 1pp

    38/53

    Bytecode InterpretersPocketC

    PPrice: $30 (Palm), $38 (Windows CE).

    PContact: http://www.orbworks.com

    Source: OrbWorks website

  • 8/14/2019 Developing Handhelds - Slides 1pp

    39/53

    Bytecode InterpretersNS Basic/Palm

    PUses the BASIC programming language.

    PDevelop on Windows desktop, with RAD tools.

    P

    Runtime size: 88K.PDebugging using Palm OS Emulator.

    PPrice: $149.95

    PContact: http://www.nsbasic.com/palm/

  • 8/14/2019 Developing Handhelds - Slides 1pp

    40/53

    Bytecode InterpretersNS Basic/Palm

    Source: NS Basic website

  • 8/14/2019 Developing Handhelds - Slides 1pp

    41/53

    Bytecode InterpretersNS Basic/CE

    PUses standard VBScript interpreter engine.

    PCode directly in handheld.

    P

    IDE with RAD tools.PDatabase support - ADOCE.

    PCross-processor support.

  • 8/14/2019 Developing Handhelds - Slides 1pp

    42/53

    Bytecode InterpretersNS Basic/CE

    PRoyalty-free programdistributions.

    PPrice: $149.95

    PContact:http://www.nsbasic.com/ce/

    Source: NS Basic website

  • 8/14/2019 Developing Handhelds - Slides 1pp

    43/53

    Java EnvironmentsKVM Reference Implementation

    P

    Focus on connected devices.PMultithreading support.

    PVM size: 50K 80K, working memory:

    128K.PCurrent target: Palm OS. Desktop:Windows and Solaris.

    PNo native support.

    PContact:

    http://java.sun.com/products/cldc/ds/

  • 8/14/2019 Developing Handhelds - Slides 1pp

    44/53

    Java EnvironmentsJeode PDA Edition

    PPersonalJava 1.2 compliant VM certified bySun.

    PComplete JNI support.

    PTargets: Windows CE, Linux (X11,Qt/Embedded, QPE).

    PDynamic Adaptive Compilation (DAC).

    PContact: http://www.insignia.com

  • 8/14/2019 Developing Handhelds - Slides 1pp

    45/53

    Java EnvironmentsWaba

    PStrict subset of Java: language, class file,bytecode format.

    PCross-platform VM: Palm OS, Windows CE,

    Newton, TI, even DOS.PSmall footprint< VM+classlib less than 64K on Palm OS and

    Windows CE.< Working memory less than 10K.

  • 8/14/2019 Developing Handhelds - Slides 1pp

    46/53

    Java EnvironmentsWaba

    PVery limited set of libraries.

    PNo multithreading, no exceptions.

    PSupports serial and socket communications.

    PNative interface implemented by modifyingVMs source code.

    P

    No-charge, GPL license.PContact: http://www.wabasoft.com

  • 8/14/2019 Developing Handhelds - Slides 1pp

    47/53

    Business SummaryTargeting Palm OS

    PPros< Market share leader control the markets

    directions.< OS built for small, low-powered devices may

    appear in wider settings.< Vendor support and connectivity to enterprise

    products: IBM, Oracle, Sybase, SAP.

    PCons< High learning curve for developers.< Limited capacity of the Motorola Dragonball

    processor.

  • 8/14/2019 Developing Handhelds - Slides 1pp

    48/53

    Business SummaryTargeting Windows CE

    P

    Pros< Similarity to other members of the Windows family simple transition from desktop-based Windowsdevelopment.