Android tunes into OSGi
Mechanized, mobile modularity
OSGi on mobile was one area that generated particular interest at EclipseCon. And not just any mobile: we're talking Google's Linux-based Android.
Getting Android to run on Concierge and Equinox was the subject of one packed session. Concierge is an optimized OSGi R3 implementation, and Equinox, a lightweight OSGi-based runtime that serves as the core of the Eclipse Framework and is a key component of the new Eclipse runtime.
OSGi defines an architecture for developing and deploying modular applications and libraries. It's used for mobile and embedded devices, desktop applications, and server applications hosted on a range of operating systems. It's also an enabler of the Eclipse plug-in model.
Why the interest in Android on OSGi, though? The specification provides a common model for writing and deploying applications to local or remote computers in modularized form. Instead of forcing developers to create monolithic apps, the spec potentially enables smaller components to work together.
An OSGi framework on Android allows for the possibility that code developed elsewhere can run unmodified on the Android environment. And that makes it possible for developers to build Android apps as small bundles that provide little more than the GUI code, with all the other work carried out by bundles that can run on any Java platform that supports an OSGi framework.
Session presenters BJ Hargrave, IBM lead architect for OSGi technologies, and independent Java developer and consultant specializing in the Eclipse Rich Client Platform and OSGi Neil Bartlett, credited the work of software engineers Karl Pauls and Marcel Offermans for developing techniques they used on their project. Pauls and Offermans managed to get Apache Felix, the OSGi R4 Service Platform implementation, running on Android.
One technique in particular, which Bartlett called "dexification", takes advantage of a utility within the Android virtual machine (called Dalvik). The utility can convert Java class files to the native Dalvik format - into what are known as DEX files.
In another session, meanwhile, AOL, Cloudsmith and Bug Labs demonstrated an OSGi-based mobile application that linked a group of "virtual distributions" delivered as a service bundle for deployment on OSGi-enabled Android and Bug Labs' mobile devices.
Cloudsmith's web-based component aggregation service was used to publish and consume the OSGi bundles. Cloudsmith also served as an assembly mechanism for separate developer distros of Android/Felix and Bug's Dragonfly SDK.
AOL's Xdrive was used as an infrastructure provider for Eclipse Spaces and as an OSGi bundle providing virtual storage for the demonstration application. Eclipse Spaces was incorporated as a publishing mechanism for newly developed components.®