Libraries - Runtime Libraries

A set of run-time abstraction libraries are supplied within Bedrock to eliminate the need for the developer to concern himself with device-specific problems. These cover a wide scope of issues, and the classes themselves are provided as a hierarchy chain so that (utilising Bedrock's ClassFuse 'class hierarchy collapsing' utility) the developer only ends up with two classes - a Canvas and MIDlet.

Many levels of the run-time classes contain multiple variants from which the relevant one is selected by the handset's profile (e.g. should the root canvas extend Canvas, GameCanvas, FullCanvas or BlackBerryCanvas). However, there are also many variants within the classes themselves, again controlled by profiled settings (e.g. should a piece of audio reset its playback position before starting).

All these features combined mean the best and most reliable run-time code is used for any device, with the developer left to do what his does best - create great applications.

Features

Image DrawingImage Drawing

  • MIDP1 Canvas / MIDP2 GameCanvas / NokiaUI FullCanvas / RIM BlackBerryCanvas support
  • Image loading & caching
  • Optional RLE, or pixel palette index image compression
  • Optional palette swapping
  • Optional run-time transformations (rotations and mirrors) for all platforms stated above
  • Multi-cell animation support
  • Run-time image creation from any palette / pixel definitions

Text and FontsText & Fonts

  • Bitmap font support (includes anti-alias support)
  • Run-time graphical / system font abstraction
  • Proportional and fixed width text displays
  • Multi-language, ANSI and Unicode text file integration
  • Run-time text splitting, including custom hyphenation guidelines for long words

Sound PlaybackSound Playback

  • Sound playback and vibration support
  • JSR-135 (midi, amr, mp3, wav, caf, ogg, vag, smaf) playback
  • NokiaUI (ringtone, wav) playback
  • VSCL (spf, mmf) playback
  • SamsungUtil (midi, mmf, mp3) playback

Menu LayoutMenu Layout

  • An extendable standard templatised way of defining, interpreting, and interacting with any kind of menuing system you may wish to add to your application
  • Both static build-time menu definitions as well as the ability to alter menu contents at run-time

Fixed Point Maths & TrigonometryFixed Point Maths & Trigonometry

  • Fixed Point mathematical functions and conversions
  • Radian / degree conversions
  • Sin / Cos / ArcTan trig methods
  • Squareroot / Cuberoot methods
  • Standard random number functionality

Record Store AccessRecord Store Access

  • Save and load from the phone's recordstore

HTTP ConnectivityHTTP Connectivity

  • Perform basic multi-threaded client / server connectivity

SMS ConnectivitySMS Connectivity

  • Send normal text messages
  • Send / respond to Midlet-Push application launch messages

Core ProcessesCore Processes

  • Interrupt detection
  • Keypress / touchscreen detection (including definition of touch regions corresponding to particular keypress inputs)
  • Softkey detection (LCDUI and graphical)
  • Cheat detection
  • Optional framerate throttling
  • State handling
  • Multi-threading to support animations during loading sequences (via Thread or TimerTask)
  • Debug output
  • Optional fixed-dimension or orientation-detection support