USERNAME PASSWORD LOST PASSWORD? REGISTER
"A Complete Mobile Application Development Environment"
Advertisement

Downloads
Documentation
Forums
Blog
Press
Bug Tracking
Creator IDs
Contact Us




Introducing ACCESS Linux Platform PDF Print E-mail
Documentation »  ACCESS Linux Platform Native Development »  Programming Guide »  Introducing ACCESS Linux Platform

ACCESS Linux Platform is a standards-based Linux platform that is tuned for smart mobile devices such as smartphones and wireless handhelds. ACCESS Linux Platform embraces the openness and flexibility that are a hallmark of Linux, and includes best-in-class open source components. It extends Linux with a number of ACCESS-developed components designed for smart mobile devices, such as the Messaging Framework and the Telephony Framework.

ACCESS Linux Platform builds upon the award-winning Garnet™ OS user experience to bring its legendary ease of use to handheld communications devices.

Principal Features of ACCESS Linux Platform Devices ^TOP^

Like most programmers, you have probably written a desktop application—an application that is run on a desktop computer with an operating system such as Microsoft Windows, Mac OS X, or Linux. Applications written for handheld devices, specifically those running ACCESS Linux Platform, are a bit different from those written for desktop computers because the handheld device is designed differently than a desktop computer. As well, the way in which users interact with a device differs from the way they interact with a desktop computer.

This section describes how these differences affect the design of an ACCESS Linux Platform application.

Powerful, Flexible OS ^TOP^

At its foundation, ACCESS Linux Platform uses an off-the-shelf Linux kernel (the reference version is 2.6.14+) along with a set of open source drivers. ACCESS Linux Platform licensees can easily support additional or different hardware by including or substituting drivers. A licensee can even go further, if they so choose, and swap out the entire kernel; ACCESS Linux Platform is architected to be "kernel-agnostic."

Layered on top of the kernel is a set of software modules that provide high-level functionality of particular interest to application developers. A number of these are open source, including:

GTK+
A multi-platform toolkit for creating graphical user interfaces. GTK+ is based on three libraries developed by the GTK+ team:

GLib is the low-level core library that forms the basis of GTK+. It provides data structure handling for C, portability wrappers, and interfaces for such runtime functionality as an event loop, threads, dynamic loading, and an object system.

Pango is a library for layout and rendering of text, with an emphasis on internationalization. It forms the core of text and font handling for GTK+-2.0.

The ATK library provides a set of interfaces for accessibility. By supporting the ATK interfaces, an application or toolkit can be used with such tools as screen readers, magnifiers, and alternative input devices.

(http://www.gtk.org/)
GStreamer
A library that allows the construction of graphs of media-handling components, ranging from simple Ogg/Vorbis playback to complex audio (mixing) and video (non-linear editing) processing.
(http://gstreamer.freedesktop.org/)
GNet
A simple network library built upon GLib.
(http://www.gnetlibrary.org/)
D-Bus
Offers a simple way for applications to communicate with one another. D-Bus allows programs that offer services to others to register with it. Client programs can then look up which services are available. Using D-Bus, programs can also register as waiting for kernel events.
(http://www.freedesktop.org/wiki/Software/dbus)
OpenSSL
A robust, commercial-grade, full-featured, and open source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a full-strength general purpose cryptography library. (http://www.openssl.org/)
SQLite
A small C library that implements a self-contained, embeddable, zero-configuration SQL database engine. (http://www.sqlite.org/)
BlueZ
An implementation of the Bluetooth™ wireless standards specifications for Linux. (http://www.bluez.org/)

Other user-space modules add support for desktop synchronization, simplified data exchange, messaging and connectivity, and global settings (preferences). ALP further adds:

  • The Hiker Application Framework, which supports the distribution and execution of native applications. It provides an application execution model that is task-based rather than document-oriented.
  • A set of GTK+ widgets that enhance the small form-factor user experience.
  • An optional Java VM.
  • An optional module that emulates Palm OS Garnet and allows the user to install and run most well-written Palm OS applications. This module is referred to as Garnet VM.
  • Desktop synchronization support using SyncML, an existing open standard for platform-independent information synchronization.
  • Modules that layer on top of many of the open-source modules and that provide higher-level services and a simplified programming interface. Areas such as multimedia, security, and communications benefit from such enhancements.

The modular aspect of ACCESS Linux Platform gives it a great deal of flexibility. It is made up of a set of open source components that were carefully chosen for their degree of power and robustness.

Supported Application Types

ACCESS Linux Platform, because it is based upon Linux, runs a wide variety of Linux applications. So-called "native applications," which are simply Linux applications that follow the ACCESS Linux Platform programming model and take advantage of one or more platform-specific features, are also supported on every device that runs the platform. If the device contains the optional Java VM, users can install and run Java applications as well. Finally, if the device includes the optional GHost component, the user can install and run most well-written Palm OS applications.

This wide range of application types supported by ACCESS Linux Platform is one of many benefits for both application developers as well as to end users. End users get a wider range of applications to choose from, while developers get to choose the development strategy (ACCESS Linux Platform, Linux, Java, or Palm OS) that best suits them.

Small Screen ^TOP^

Devices that run ACCESS Linux Platform have screens that are much smaller than are found even on a laptop computer, in both physical size and resolution. Because of this, the amount of information you can display at one time is limited.

On such a device you must design your user interface carefully with different priorities and goals than are used for large screens. Strive for a balance between providing enough information and overcrowding the screen.

Applications generally occupy the entire screen1 on ACCESS Linux Platform; only one "main UI application" runs at one time, and background applications are limited to displaying the occasional pop-up dialog. But although your application doesn't have to compete for screen real estate with other applications, that doesn't mean that the display size is fixed. The size of the screen can vary from device to device. As well, some devices allow the user to rotate the display or to expand and collapse an input area. Because of this, applications need to be ready to alter their UI based upon requests from the operating system.

Input Methods ^TOP^

Most users of ACCESS Linux Platform devices don't have a full-sized keyboard or mouse. When entering data directly into the device, depending on the design of the device most users either use a miniature "thumb board" or an on-screen keyboard. While these are useful ways of entering data, they are not as convenient as using the full-sized desktop computer with its keyboard and mouse. Therefore, you should not require users to enter a lot of data on the device itself.

Although external keyboards for ACCESS Linux Platform devices may be available, do not rely on your users having an external keyboard.

Power ^TOP^

Handheld devices run on batteries and thus do not have the same processing power as a desktop PC. If your application needs to perform a computationally-intensive task, see if there isn't a way to perform that task in a desktop application instead of the device application. As well, be sensitive to the amount of power the various hardware components consume: the screen, the radios, and the like. Turn the display off if it is not needed (an MP3 player, for instance, might do this after some preset interval). Whenever possible close down communication channels, allowing the operating system to shut down the radios.

Storage ^TOP^

Compared to a desktop computer, devices running ACCESS Linux Platform have limited RAM and limited long-term storage space. Although the operating system is capable of dealing with huge amounts of storage, the physical limitations of a handheld device mean that long-term storage, in particular, is going to be implemented using flash memory and/or a small hard drive. Removable media is limited to devices such as SD or MMC cards.

ACCESS Linux Platform supports a standard filesystem: applications can use standard file I/O calls to interact with long-term storage. Also, the included SQL database engine (SQLite) provides a different way that applications can store and retrieve data.

PC Connectivity ^TOP^

Like with Garnet™ OS, ACCESS Linux Platform provides a standard mechanism to synchronize data between the ACCESS Linux Platform device and a desktop PC or server. This allows your Platform applications to quickly and easily backup and synchronize their data with a corresponding application on the desktop. Many applications are designed with just such a corresponding desktop application, enabling the user to take advantage of the desktop computer's large screen, keyboard, and relatively large data store for some operations.

Unlike Garnet OS, which uses an entirely proprietary format to transfer the data, ACCESS Linux Platform uses SyncML: a platform-independent information synchronization standard. ACCESS Linux Platform includes Sync Services, a Platform/Windows framework for creating data stores that can be synchronized via HotSync's implementation of SyncML. The data stores contain logical content objects that can be represented in standard MIME type format.

In ACCESS Linux Platform, there is no proprietary Data Manager. Instead, applications are free to store data however and wherever they wish (even to the extent of allowing a single syncable object to be assembled from multiple physical locations). The penalty for this freedom is the loss of automation. Since HotSync does not understand how or where objects are stored, it cannot automatically read and write modified objects. Instead HotSync uses a proprietary DataStore API to read and write objects. The DataStore provider, often the application developer, must implement this API.

Prior to ACCESS Linux Platform, HotSync could not synchronize references between logical objects. On ACCESS Linux Platform, HotSync can correctly sync references expressed via globally unique ids. This is vital for the correct synchronization of category information because categories include a many-to-many relation to content objects.

See http://www.openmobilealliance.org/tech/affiliates/syncml/syncmlindex.html for more information on SyncML.

Options for Application Development ^TOP^

Depending upon which optional components the manufacturer has chosen to include, an ACCESS Linux Platform device can run native Linux applications, Java applets, or "well-behaved" Garnet OS applications.

All applications supported by a particular device are shown together in the Launcher and are launched in the same way. The end user is not necessarily aware of the type of application they are running. This allows you, the application developer, to choose the development strategy that works best for your situation without having to be concerned that some application types appear to be "second-class citizens."

Each of the supported approaches to application development—native Linux, Garnet VM, or Java—has pluses and minus that you should weigh carefully when considering how to approach a given development project.

Native Linux ^TOP^

The ACCESS Linux Platform is based on a Linux kernel. Thus applications written in a language such as C or C++ for a Linux kernel are considered to be "native" applications on the Platform.

Little if anything needs to be done to tailor a generic Linux application so that it runs on the ACCESS Linux Platform. However, there are a number of Platform-specific APIs that not only make the application look and act better on the ACCESS Linux Platform, but also simplify the application's code. The remainder of this book is dedicated to an explanation of how to create native ACCESS Linux Platform applications. Along the way it walks you through the APIs and tools you'd use to create applications of this type.

Pros:

  • A properly written native Linux application will outperform a comparable Garnet VM or Java application.
  • Native Linux applications have full access to exposed features of the underlying operating system.
  • It is relatively easy to port existing Linux applications.
  • There is a large number of tools and a great deal of existing Linux code available for use when creating your applications.
  • The ACCESS Linux Platform Simulator makes application testing and debugging easy (and fun!).

Cons:

  • Native Linux applications written for ACCESS Linux Platform will only run on ACCESS Linux Platform devices.
  • Past experience writing applications for Garnet OS does not apply when writing native Linux applications.

Garnet VM ^TOP^

Garnet VM is a virtual machine that runs "well behaved"

applications originally written for Garnet OS2 on ACCESS Linux Platform. Note that the Garnet VM is an optional component that will not necessarily be present on every ACCESS Linux Platform device.

For the licensee, Garnet VM allows a broader range of applications to run on an ACCESS Linux Platform device and provides a ready base of third-party applications upon device introduction. For the Garnet OS application developer, it not only enlarges the pool of devices that can potentially run their application, but also provides a smooth migration path from the world of Garnet OS to the world of ACCESS Linux Platform.


NOTE: Garnet VM provides compatibility with Garnet 5.x platforms as developed by ACCESS (formerly, PalmSource, Inc.). It does not support extensions developed by individual Garnet licensees.

Pros:

  • Applications written for Garnet OS are compatible with the huge installed base of devices running Garnet OS and Palm OS, in addition to those running ACCESS Linux Platform.
  • You can continue to use the tools and APIs with which you as a Garnet OS application developer are already familiar.
  • If you choose to migrate your application to native Linux, while you are rewriting your application your customers can continue to use the existing Garnet OS-compatible version of your application.
  • The ACCESS Linux Platform Simulator lets you test your Garnet OS applications for compatibility with Garnet VM.

Cons:

  • Performance, while good, is not up to the level of a native Linux application.
  • The Garnet VM only supports Garnet OS APIs; ACCESS Linux Platform functionality not historically supported by Garnet OS is not made available to your applications.
  • Garnet VM only supports "well-behaved" applications. As well, while Garnet VM implements the vast majority of Garnet OS APIs, not all are supported.

Java ^TOP^

ACCESS Linux Platform supports the JV-Lite2 Wireless Edition for Java Virtual Machine (VM) applications. JV-Lite2 ensures compatibility with J2ME and manages all Java MIDlet or MIDlet Suite applications for mobile devices.

The Java VM is a virtual machine that runs J2ME™ (Java2 Platform, Micro Edition) applications on the ACCESS Linux Platform. These applications must be "well behaved" in that they must conform to the J2ME specifications.

JV-Lite2 is a Java platform developed by ACCESS that includes solutions for both mobile devices and Internet appliances. JV-Lite2 supports the latest standard Java specifications and includes a Java Virtual Machine developed and provided by Sun Microsystems™. The modular structure of JV-Lite2 is highly portable to resource-limited mobile devices. It is an ideal Java solution for next-generation mobile phones.

Note that the Java VM is an optional component that will not necessarily be present on every ACCESS Linux Platform device. If the device contains the optional Java VM, users can install and run Java applications. ACCESS Linux Platform supports Java applications in the existing .jar file format.


IMPORTANT: The Java VM is an optional component that may not be present on every device running the ACCESS Linux platform.

The JV-Lite2 Wireless Edition supports the following JSRs:

  • JSR75 Final PDA package for PIM and File access
  • JSR 82 Release 2 Bluetooth API Optional Package and Obex
  • JSR 118 MIDP 2.0 Mobile Information Device Profile
  • JSR 120 WMA 1.1 Mobile Wireless Messaging API
  • JSR 135 MMAPI 1.1 Mobile Multimedia for audio playback and control (getDuration, getMediaTime, setMediaTime)
  • JSR 139 CLDC 1.1 Connected, Limited Device Configuration
  • JSR 172 Final Web Services package

As with native Linux and Garnet OS applications, there are both advantages and disadvantages to developing your ACCESS Linux Platform applications in Java:

Pros:

  • There is a huge installed base of devices that can potentially run your Java application, in addition to devices running ACCESS Linux Platform.
  • A large set of supported JSRs means that you can write very powerful and sophisticated applications.
  • Getting an existing Java application to run on ACCESS Linux Platform, if it doesn't already, is likely to be a fairly simple process.
  • You can continue to use the tools and APIs with which you as a Java application developer are already familiar.
  • If you choose to migrate your Java application to native Linux, while you are rewriting your application your customers can continue to use the existing Java version of your application.
  • The ACCESS Linux Platform Simulator lets you easily test your Java applications for compatibility with the ACCESS Linux PlatformJava VM.

Cons:

  • Performance, while good, is not up to the level of a native Linux application.
  • ACCESS Linux Platform functionality not supported by the Java language or by the above-listed JSRs is not otherwise made available to your Java applications.
  • The physical limitations of the device (small screen, varying and somewhat limited input methods, etc.) may make the user experience with some existing Java applications less than optimal, perhaps requiring an update to your application.


1. Except for the area occupied by the status bar.

2. Palm® OS 5 is based upon Garnet OS.

 

Add as favourites (49) | Quote this article on your site | Views: 948

Be first to comment this article
RSS comments

Write Comment
  • Please keep the topic of messages relevant to the subject of the article.
  • Personal verbal attacks will be deleted.
  • Please don't use comments to plug your web site. Such material will be removed.
  • Just ensure to *Refresh* your browser for a new security code to be displayed prior to clicking on the 'Send' button.
  • Keep in mind that the above process only applies if you simply entered the wrong security code.
Name:
E-mail
Homepage
Title:
BBCode:Web AddressEmail AddressBold TextItalic TextUnderlined TextQuoteCodeOpen ListList ItemClose List
Comment:



Code:* Code
I wish to be contacted by email regarding additional comments

Powered by AkoComment Tweaked Special Edition v.1.4.6
AkoComment © Copyright 2004 by Arthur Konze - www.mamboportal.com
All right reserved

 


© 2008 ACCESS Developer Network    |    Joomla! is Free Software released under the GNU/GPL License.    |    ACCESS Global Website
Events Support Community Platforms Home