Nov 26

As soon as Android was released people got to work delving into the native side of things and now Macrobug has posted about how you can use Scratchpad to build ARM binaries for Android:

Benno explains how to build simple native programs for Android. But any significant pre-existing Linux software package uses a complex array of libraries and a correspondingly complicated build process, typically based around GNU Autoconf. That build process usually involves a “configure” script whose purpose is to run tiny programs to experiment with the system, to find out its capabilities and set up the code appropriately.

Terrific, except it doesn’t work if, say, you’re building on an Intel x86 box, but trying to build for Android, which is based around Linux and an entirely different CPU. Fortunately, the Scratchbox project exists to solve this problem. It provides you with a special Linux universe, which uses the QEMU emulator to run ARM binaries. Hence: autoconf can run its experiments and all will be well.

It worked surprisingly well and surprisingly simply. Good work by the Scratchbox team.

Maybe this is how Benno produced his strace binary which he used to dig up some interesting stuff from Android. I’m not sure. Either way, I’m going to be building strace here as an example of how to get this stuff to work.

Nov 23

Marius Milner and Ben Collins-Sussman have released Twisty, a z-machine interpreter for Android:

The ‘z-machine’ is a virtual machine designed in 1979 by Infocom for playing text adventures, and has been re-implemented on nearly every computer and PDA since then.

This application allows Android users to play Infocom classics just as ‘Zork’, as well hundreds of newer text adventures written in the last ten years or so. The package comes bundled with a few built-in games, but also allows you to load games from your sdcard.

It is fantastic to see all of the porting work going on to get stuff running on Android, which means on your phone at some point! I have been amazed at how fast people are churning solid code out there.

Nov 22

Ever since I learned about the QR codes initiated in Asia, I have wanted them to take off over here. I was hoping that QR code support would be in Android, and maybe that could bootstrap the system. I am all ready to print a QR code on my business card that points to my website etc. Great stuff.

Then, ZXing was released on Google Code which gives me exactly what I want:

ZXing (pronounced “zebra crossing”) is an open-source, multi-format 1D/2D barcode reader library implemented in Java. Our goal is to support decoding of QR Codes, Data Matrix, and the UPC family of 1D barcodes. It will provide clients for J2ME, J2SE, and Android.

Why? There are several great readers out there, and there are bits of open-source code already for decoding, but not both at the same time. We want everyone to have access to some great source code to play with, so we decided we’d try an experiment, and open up our in-progress effort. Maybe some of it will be useful to you — maybe you can help improve it.

Will this be the best reader ever? Well we hope it gets quite good. Things are far from perfect, and it’s hard to top some of the great (native-code) readers out there. No, we primarily hope to provide a solid base of code from which people can derive other implementations, and to which people can submit new, better code. If this helps raise the quality of readers everywhere we’ve all done our job.

You know it is serious when you see a trial over in the adwords side of the house!

Nov 22

Ray Cromwell and the Timepedia team have released Chronoscope, a charting and visualization platform for Google Web Toolkit, as open source.

When Android came out, they quickly realized that the same charting library that is written in the Java programming language, compiled to JavaScript, could also work on other platforms. So, they tried to get it working on Android:

It required about 8 hours to get this working. Most of the time was spent finding the Android equivalents of Java2D calls, and writing 6 Java classes (the Chronoscope Canvas abstraction layered over Android Graphics API).

Nov 21

Kimmo Kinnunen of Nokia did a preliminary port of Google Gears to Nokia’s Linux-based Internet Tablet platform, Maemo. This port allows you to install the Gears extension to devices like Nokia’s N800 and N810.

The code is in a SVN repository with vendor branches. The changes should be relatively easy to spot (svn diff). The changes are not well- engineered, rather they just indicate the difference between gecko 1.8 and 1.9. This is to keep the delta as small as possible. In practice, if these modifications are wanted in the main codebase, the changes should be done a bit differently (==build abstractions around thread queues).

For further info, see: Issue 292: Support for Maemo platform

We have seen a lot of interest from the mobile community on getting Gears enabled on phone platforms. It is an obvious win on a system with the latency constraints that we have. I hope to see Gears preinstalled on devices in the near future.

Nov 13

Android is fully open source, which is a challenge as it requires every last bit to be open. Device drivers can often be a pain, but it is testimony to Linux that we have so many open drivers.

A really important new donation is providing kernel support for the QualcommMSM7K:

This release means that support in the Linux kernel is now available for the on board serial, i2c, timer, NAND flash controller, MDP/MDDI framebuffer, gpio controller, and high speed USB client controller. This code also provides access to the baseband features of the chip. The announcement to the kernel developer community can be found on the ARM Linux mailing list. Like all proper Linux kernel code, these patches were released under v2 of the GNU GPL. Stay tuned for more open source related details.

Nov 13

Volantis

Volantis, maker of the Volantis Mobility Server has done what all of the cool kids are doing, and has started down an open source strategy.

Today, they released a “community” version of their mobility server for free, and it will shortly become GPLv3.

The Volantis Mobility Server, both as a free download and, ultimately, an open source product, includes all the features necessary to deliver corporate content to mobile phones, including:

  • a multi channel server, which automatically adapts web markup for mobile and other devices
  • the XDIME markup interpreter, which implements the emergent DIAL standard
  • development tools, delivered as plugins to the Eclipse open source developers toolkit
  • a client side mobile AJAX widget library
  • a device database, providing information necessary to render content for specific devices, and including information about more than 4600 devices

Of course, the devil is often in the details of what they opened up, and what is still in the professional version.

You can see the comparison of the products yourself.