Android is going to completely change mobile computing. It is based on activities interacting, rather than on stand-alone applications. But in order for our applications to work together, we also have to work together. In order to facilitate our Components working together better I'm founding the Android Standards Workgroup. Anyone interested should join the AndroidStandards google group or email me at email@example.com for more information.
As I'm sure you all know, Android is going to completely change mobile computing. Because the OHA is backing up Android, we can finally write an application once and without any extra work it'll run on phones made by different manufacturers, phones on different service providers, phones with different processor types, phones with completely different hardware capabilities. Android is smashing down walls.
Android is smashing down more than just one type of wall. It's moving us from this world where applications were held in these containers called windows that only rarely talked to each other, to this world where applications are chunked into small portions called Activities that do nothing but talk to each other. Here's an example of what's now possible because of Android.
Say you want to show a picture to your friends. There are several ways this can be done, but let's say you just open up a special activity made for selecting a pictures. This Activity asks the system for a content provider that can give it a list of all the pictures on the phone. After the list is obtained the activity shows it to the user who selects the correct photo. Then the activity starts a VIEW intent that opens up another activity made just for viewing photos. This is a very common day example, and already we've involved three components. I want to point out that when these different components were written, their respective programmers had never met. This is what's possible with Android. Instead of seeing a phone full of different applications, the user sees a phone full of many functions, all of which can be mixed and matched as much as you want.
But there's a catch. In order for our applications to work together, we have to work together. Let me illustrate what I mean. In the previous example, a few URIs were passed around behind the scenes, mainly content://media/pictures which stands for the list of pictures on the device. What if the content provider had used content://media/pictures but the viewer activity had been written to use content://media/images, or even content://media/photos? Complete Incompatibility. In this case you would have all these wonderful components, that couldn't communicate at all. On their own these components are a little useless.
Besides URI naming there are a few other issues stopping our activities from co-operating, and we need standards to be decided to solve these issues. In order to create these standards, I'm hereby founding the Android Standards Workgroup. This group will, among other things, decide on naming conventions for URIs we should all follow, decide on a package manager all components should write meta-data for, decide on how components will be hosted for download to the device. I want to point out that writing words is not the only thing this group will do. If we decide as a community that a decent package manager doesn't exist, this work-group will write one. Because for this to be successful we all have to participate, this group is open for anybody to join. Let's band together and turn Android into something truly amazing.
If you are interested, please join the AndroidStandards google group. For more information please e-mail me, firstname.lastname@example.org