View page as slide show

Mobile environment used at course

Nokia N810 Internet Tablet

  • Processor: Texas Instruments OMAP 24200 CPU running at 400 MHz
    • ARM architecture
  • Memory: 128 MB of RAM (DDR) memory and 256MB Flash
  • Storage: up to 2GB internal memory
    • expandable with miniSD and microSD (with expander) cards of up to 8GB (SD cards over 2GB must be SDHC compatible.)
  • Display: 4.13” WVGA display resolution 800 x 480 pixels with up to 65,000 colors
  • Battery:Nokia Battery BP-4L 1500 mAh
    • Continuous usage (display on, wireless LAN active): up to 4 hours
  • Connectivity
    • USB, Bluetooth v.2.0 +EDR, WLAN – 802.11b/g
    • Supported Bluetooth profiles: HID, FTP, DUN, GAP, SPP, HSP, SAP and OPP
  • Input method: Stylus (handwriting recognition, qwerty keayboard)
  • Other: camera, Built-in GPS receiver, Ambient light sensor

Operating system

  • Maemo 4: Internet Tablet OS: maemo Linux based OS2008
  • Kernel: Linux 2.6
    • Debian packaging
  • Window server:
  • Window manager: Matchbox
  • Desktop framework: Gnome
    • GUI widgets: GTK+ with Hildon extensions
    • Multimedia: Gstreamer
    • Configuration: Gconf
  • Message bus: D-BUS

What is Maemo?

  • Development platform for applications to handheld devices.
    • Developed by Nokia for the Nokia 770 Internet Tablet
    • Only hardware supported by Maemo as of now
    • Open source
  • Current version 2.0 was released July 2006
    • Targeted for Internet Tablet OS 2006
  • It brings to developers an easy to use development environment and a new optimized end user interface customized for handheld screen size and usage. developer website

  • Extensive developer documentation
    • Tutorials
    • Sample applications
  • Mailing lists
  • Wiki
  • Planet for discussion, announcements and support
  • Garage for hosting various software projects related to the maemo developer platform
  • Bug reporting system for maemo
  • tools
    • Test and debug environment on x86
    • Flashing tools
    • Developer root filesystem

Maemo architecture

Maemo application development process

Hildon UI

  • Hildon Widget set is Gtk extension/replacement for mobile platform.
    • Different views
    • Menus
    • Dialogs
    • Notifications
    • Drag and drop
  • Interaction methods
    • Touch screen
    • Mandatory hardware keys
    • Optional hardware keys
  • Input methods
    • Virtual keyboard
    • Thumb keyboard
    • qwerty keyboard
    • Handwriting recognition
  • Maemo website provides a good Hildon UI Style guide document


  • Remote procedure calls between applications (uses D-BUS)
  • Application control
    • launching
    • moving on top
    • guarantee that only one instance of application is running.
    • state saving: application parameters saved when application closed.
  • Reaction to hardware events
    • autosave when battery is low and device starts to shutdown.
  • Support for statusbar
  • hardware control
    • setting system time
  • System notifications
    • note boxes for UIless applications
  • Mime types

Maemo development environment

  • Scratchox (
  • Xephyr
    • X-server for a window in host
    • used for showing UI
    • Xnest can be used as alternative
  • Gazpacho
    • UI development tool that supports Hildon widgets
    • Similar to glade.
  • Maemo API for C (good community support for C++ and python.)
  • Maemo development tools
  • Many of the development tools in linux can be used for helping the application creation process.

What is Scratchbox?

  • Cross-compilation toolkit for linux operating system (debian distribution recommended)
    • Designed to make embedded Linux application development easier
  • Provides a full set of tools to integrate and cross-compile an entire Linux distribution
  • Supports ARM and x86 targets (PowerPC, MIPS and CRIS targets are experimental)
    • Own rootstraps for different targets
    • switching from one rootstrap to another with one command
    • Create your own rootstrap
  • sandbox approach
    • own environment for different architectures and compilers inside sb
    • contains variety of rootstraps and emulators for different processors and environments
  • Debian based package management
  • Esbox → plugin for eclipse for maemo and scratchbox application development
  • Compiled code can be tested
    • Locally on desktop computer with Qemu (emulator)
    • Remotely on a real target hardware
Last modified: 2013/07/01 14:41