 |
Wednesday, February 6, 2002 |
 |
|
PalmSource 2002, Day 3
Automated Testing Environment
Record and playback user interaction on device or in POSE. Modify scripts with an editor, allow capturing regressions tests and can work with multiple applications.
Java
PDA Profile, still owned by Palm. PDAp will maintain Palm user experience, and will be a superset of MIDp (the target for phones). Lots of people on committee, Palm is readying specification to submit to community process.
Resources
New text-based resource description format (XML-based). Cross-platform support. Command line support on all platforms, with plug-in for top development environments, and supports multiple languages
Constructor is being phased out. New editor for Mac and Windows. Standalong and plug-in technologies.
Partner Tools
ROM Building tools, flash tools, debugger SDK, file format descriptions, and Palm OS Emulator training. POSE will continue to be developed and will support ARM hardware.
Palm Universal Debugger
Full featured debugger, expandable, flexible, reusable code, cross platform, good user experience. Supports ARM, 68K, and XScale (Intel's ARM chipset). Limited TI OMAP support. Replaces Palm Debugger going forward. Lots of features, making it a nice embedded debugger. Supports lots of data display options and both assembly, source, and mixed-mode debugging.
More on tools
Conduit development kit: key tool for Palm OS platform. COM support, generic conduit for C++, Java under consideration
SDK: headers, libraries, application frameworks, licensee support, ResEdit support, tutorials, documentation, and resource editor
Compilers and Linkers: Targeting ARM 4T architecture, EDG front-end for C/C++, IR optimizer and back end technology from Apogee Software, tools will inexpensive (if not free), stand-alone on Mac and Windows, plugins to VC++ on Win, CW on Macintosh. These will be out this year.
Palm OS Tools Talk
Developer community
- 36% on custom
- 21% on retail
- 1% make tools
40% on Palm OS < 6 months
82% on Windows, 11% on Macintosh, 5% on Linux, 2% on other
Short learning curve and inexpensive tools
On Windows, PalmSource's tools will plugin into Visual Studio. On Macintosh, tools will be based in CodeWarrior. Conduits are built into Visual Studio.
Tools will attempt to be fully integrated into the chosen environment. RAD will be integrated into dev environment. Include context help with API calls. All examples should be buildable on each environment.
End-user developers don't want to pay a lot of money for tools. Is $399 too much? PalmSource's tools will cost money -- not free, but under $100.
PalmSource's tools effort is focused on tools that will apply to all ARM-based devices. No work on optimizing tools for particular device platform.
Information on building tools for the ARM platform will be distributed once its ready to licensees, silicon vendors, and other parties.
Three tiered development environment: Simluator for speed and catching many errors, emulator for final checks, and device as needed.
New Palm OS 5 APIs
High-resolution APIS
For handling high-density screens, display still uses 160x160 corrdinate scheme, but all graphics and fonts are drawn with at the higher resolutions.
SDK 4.0 Update 2 -- shipping in a few months, new glue routines, updated headers for high density, and new version of Constructor that supports high density bitmap families
Hacking and Notifications
Wants:
- Pen action in silk screen
- handling a virtual character
- app launch and quit notification
- idle time notification
- event dequeued
Notifications:
- vchr handling and override
- idle time
- process pen stroke
- application launch & quit
- keyboard dialog override
- event dequeued (could be a major time sink)
Defined in SDK 4.0 update 1, is final, should be online soon
SysGetTrapAddress is still available for compatibility (fast trap code)
New trapping/patching implementation in later OS, more secure, less chance of instability
ARM Code Fragments from 68K Code
Only use for performance-critical code. Check processor type, on 68K chips, call 68K code
- Lock resource with raw ARM opcodes
- Prepare parameter block
- PACE call to jump into the code resource with a single 32-bit parameter
Data in block is not munged by Palm OS, but 68K structures will have reverse endian nature.
Native code can call OS, but it has to call through PACE, so all data structures will be in 68k format.
To call MemPtrNew:
- push parameter onto 68K stack
- call address of PACE API handler with selector for MemPtrNew
Useful reasons to do this:
- compression, decompression
- Encryption and decryption
- Intense graphics (games, multimedia)
- Handwriting recognition engines
- VMs and interpreters
Not pretty, native mode coming later
Don't use without profiling so you can find your real bottlenecks.
PACE trap: JumpToThisRoutineAddress (!!!)
Launch both simulator with attached debugged DLL in CW debugger, then launch 68K application into simulator, step into the PACE call, hit BP on Win debugger.
802.11(a, b, g, x?)
Documented API for licensees to make integrated 802.11b devices
Standard way to learn about connections, 802.11b-specific info'
- Find all access points and MAC addresses
- Get signal strength
- Network preference
- Radio connection
- Radio driver
- Association tables
Sound
Wave sound resource format. Raw sample streaming sound. Playback up to 16 channels at a time. Each channel can be mono/stereo. Recording just 1 channel for now. 8-bit (signed/unsigned), 16-bit (signed). Arbitrary sampling rates. Play, pause, stop, volume controls
Constructor can allow adding of 'wave' to resources. Uncompresses, IMA ADPCM formats. Trivial to play with SndPlayResource(...) API call. Great for games. 64K max due to HotSync manager limits
Synchronous or async playback. Callbacks can be used for playback/recording. Construct your own wave file
Bluetooth
"Hottest" new software technology on Palm OS. Data transmission around 720kbps within 30 feet using the 2.4GHz frequency range. Ad-hoc network to other devices called pico-net.
Key products with Bluetooth are being shipped in late 2001, 2002, including cell phones, printers, laptops, network access points. 10-13 milion units shipped in 2001, and chipset is now in $5 per unit range.
Key Bluetooth functionality:
- Exchange data with other users
- Synchronize with a laptop
- Connect to Internet via cell phone
- Send and receive e-mail
- Access data via corporate network
- Play mulit-player games
- Print easily
- SMS, instant mesaging
- Dial phone numbers
- Run collaborative applications
Designing Compatible Applications
Use latest SDK 4.0 update 1, which is in "strict" mode by default. Be sure to check return values and build defensive code -- its better to "Fatal Error" with a message than crash horribly.
If you use special features, be sure to check to make sure the feature is available. Don't check for a specific device type, instead look for specific features.
Be sure to test applications both in POSE 3.3 or later and the Palm OS Simulator. Be sure to use debug ROM images, and if you see complaints, fix them!
The OS now has opaque structures. You won't be able to directly poke inside a ControlType or FormType and see all the values. This is already the case with 4.0 SDK update 1, and will continue to be true.
Misconceptions: I need to write to the screen directly (use offscreen windows instead). I need to patch traps (use system notifications).
Kyocera
QCP-6035 has 75% of the smartphone market, making big inroads into the enterprise market, case study with GE Medical Systems where QCP-6035 were deployed to field service engineers. $3M investment paying for itself in months.
|