Google's Android revealed: Component software for the mobile world

Google today released a lot more details on its Android mobile operating system, including the software development kit. It looks like it would be fun to write apps for Android. The most interesting news is that Android puts a heavy emphasis on component software, encouraging developers to create software modules that can be shared with other developers and reused across applications. It's similar in spirit to what happened with mashups in the web apps world, although the technology involved is quite different.

If the developers follow through, this could make Android a very attractive and flexible development environment.

Google is offering $10 million in prizes to the best Android applications. That's an astonishing amount of money for the mobile apps space, where developers are used to living on stale bread with an occasional beef jerky chaser. For comparison, $10 million is probably more than the total marketing program budget in my last year at PalmSource.

It must be nice to work at a company that has limitless financial resources.

The price also says something about Google's business strategy for Android: Collect a lot of compelling applications that will generate user demand for Android phones. I think they can get the apps, but whether those will generate user demand remains to be seen. Having a big apps base didn't help us as much as you'd expect at PalmSource.

The other interesting news is that this is an entirely Java-based development environment, with a lot of extensions provided by Google for things like multimedia and font management. Although Android is based on Linux, as far as I can tell it's being used strictly as plumbing; the applications can't access it directly (at least not in this version). Data exchange between apps, and application access to phone features, can be locked out by the operator or handset manufacturer.

This should make Android a pretty secure operating system, although it won't be much fun for developers who like to mess around with the low levels of an OS.

Can Android become a standalone runtime? The reliance on Java raises the possibility that the Android applications layer could be ported to other operating systems. I think this would be a pretty cool strategy for Google, as it would enable it to drive the applications experience on a lot of different phones. But it wouldn't be a lightweight layer -- Google has built a huge amount of middleware on top of Linux that would probably have to be ported as well. Unless Google designed the Android apps layer to be portable, something they haven't mentioned, I think the port would be pretty difficult.

Some other tidbits about the OS:

--Features supported in the OS include a built-in browser, 2D and 3D graphics, SQLite database, video and audio playback, GSM, Bluetooth, WiFi, 3G wireless, camera, compass, GPS, and accelerometer (if the appropriate hardware is included in the phone). That's a pretty standard feature list.

--There's also a set of optional APIs that can be excluded by an operator or handset manufacturer. They include mapping APIs and peer to peer messaging between phones. Google positioned the peer messaging as a way to let two users play checkers, but you could also use it to create an instant messaging application that bypasses SMS. I'll be interested to see if any operators allow it on their networks.

--The development environment is a plug-in to Eclipse, another standard approach. The SDK includes an emulator so you can test your apps before the hardware ships. That's essential, since Android phones are about a year away.

--Core apps included with the OS include mail, SMS, calendar, browser, contacts, and maps. The mapping app is the only unusual one.

--There is support for multitasking threads, and an application can run in the background (this should enable things like MP3 playback while you're browsing).

--Each application runs in a separate Linux process. This helps with security. Apps remain running until they're no longer needed and the system decides that it wants their memory. This feature seemed slightly weird. Windows Mobile also tends to leave code running until the space is needed, and that has resulted in performance and stability problems. Presumably Android will handle things better.

The other thing Google warns you about is that if your application doesn't use the proper calls to explain what it's doing, the OS may assume it's not important and shut it off arbitrarily. That can also happen to a properly-written application if the system runs low on memory. This is kind of spooky, and could result in lost user data, especially if the user loads up a lot of applications.

Call me old fashioned, but I prefer applications that quit only when I push the quit button.

--The security model is heavily sandboxed (meaning applications are isolated from each other). To reach outside the sandbox (to exchange data with another app, read the address book, or access the phone's features), applications have to ask permission at the time they are installed. Permissions are based on "trusted authorities and interaction with the user." In other words, an operator or handset vendor can lock them down, and if not then the user will be asked to grant permission. Users will not be asked again when the application is run; if permission was not granted at install, the app will just fail. I believe this is going to be a serious support problem -- it means the same application may work on a phone when it's on one network, but may not work on that same phone on another network. Good luck explaining that to the user.

Google may be counting on user complaints to force the operators to turn on permissions.

--The user interface needs work. Google says it's still working on the final user interface for Android, and that's a good thing. Engadget nicely posted a bunch of screen shots from the current interface today, and they have problems (link).

The first thing that bothers me is the icon carousel at the bottom of the screen.



I think it's a great design, but it's awfully reminiscent of the interface in Yahoo Go. Maybe that's just a coincidence, but Google lately has shown a disturbingly Microsoftian tendency to borrow ideas from others.

The overall interface design is relatively clean, at least compared to the overdesigned clutter that you see on a lot of smartphones. But it's optimized to look pretty on a computer screen rather than be usable on a real-world phone.

The giveaway is contrast. Most computers are used indoors, in a room with moderate lighting. By comparison, mobile phones are used in all sorts of settings, including outdoors in bright sunlight. In those conditions, subtle differences in contrast between text and background can easily be lost. For a good example, check out the screen shot below:



Looks nice on your computer, huh? But let's reduce that screen image to about what it would be on a real phone:



Already the text gets hard to read. Now take your computer outside into the direct sunlight. Go ahead, I'll wait for you to get back...

Done already? What you saw is that the words "Call Back," "Done," and so on pretty much disappeared because they're written in dark gray on a black background. You can find a lot of other examples like this in the Google screen shots.

A recommendation to everyone who creates phone interfaces: White on black. Black on white. Large fonts. It may not be the most beautiful design, but at least people will be able to use it.


What it means to the industry. I continue to think that the ultimate success of Android will depend on the creativity of the devices built on it, and we can't judge that until those devices ship. But in the meantime, I'll be very interested to see what sort of applications appear. Google can definitely excite developers, especially when it shovels money at them. This is an immediate challenge to Microsoft and especially Symbian, which has struggled to get developers to work with its very complex native APIs. The more that Android sucks up developer activity, the harder it will be for other platforms to get developer support. Android is a much cleaner design than older platforms like Symbian, and the component development model might drive the rapid creation of a lot of interesting applications.

Will Android be limited to the mobile space? That's the other key question. There's nothing in the Android development model that limits it to mobile phones, and in fact Google says openly that it's appropriate for use on all sorts of devices. Let's wait a few years for the Android applications base to mature. If it does well, we might eventually see Android devices that seek to directly challenge PCs.

=====

PS: Thanks to Ubiquitous Thoughts for featuring last week's post on the Android announcement in the latest Carnival of the Mobilists.

8 comments:

Anonymous said...

To put this in perspective - $10mil is the same amount as the Ansari X-Prize that birthed Spaceship One, Virgin Galactic, hundreds of millions of dollars in private investment, and the emergent non-governmental space industry.

Throwing that amount of money around can generate a LOT of motivation.

Cherie and I have been pondering things we should focus our time and energy on over the next few months - and guess what just jumped WAY up in contention…

I am still thoroughly excited about iPhone application development, but you can be certain we’ll be brainstorming a few ideas for Android now.

The relatively feeble funding for the Buckminster Fuller Challenge provides an interesting contrast on our priorities as a society:

"Launched in July, The Buckminster Fuller Challenge is an international design science competition which will award a prize of $100,000 to a single winning solution that has significant potential to solve humanity’s most pressing problems in the shortest possible time while enhancing the Earth’s ecological integrity."

Save the world for $100k, or build great next generation mobile applications for a slice of $10mil… Tough choice.

I've just posted some of these thoughts as the inaugural entry on TwoStepsBeyond.com.

I've been meaning for a while to start an industry-centric blog sepperate from my personal blog, and this seems like a good excuse to launch it.

For the first time in a long time, the future of mobile application development is looking bright again.

- Chris

Anonymous said...

very interesting.

i am wondering how often this will end up in 'phone like' wifi devices that can be used as phones without any contract on any open hotspot.

i am also quite interested in how the operator 'lock down' will work. can it be comminicated via the network or programed into the SIM card? or will simply be programmed into phones sold by that operator? if the later I expect this to intensify the trend already taking off in europe and asia of purchasing GSM phones and than shopping for the contract to go with them. i find it unlikely that if an application works while using one operator that it will be cut off the change of a SIM card.

if we start to see 'phone like' wifi devices that are completely open this could also put more consumwer pressure on operators to keep there phones open.

Elia said...

Well, I'm glad your excited, Chris, because I'm sick of this. The key to building revenue is constant improvement and sales/marketing. We as developers have been caught up in the porting game and I'm tired of it. It's neither fun nor interesting. This mobile development world is set up to ensure that we stay small. How do you break through two or three layers of bureaucracy (carriers, device manufacturers, software resellers) to generate significant revenue?

Don't get me wrong, I applaud Google for trying to bring some consistency and sanity for software developers by creating an OPENLY available platform that anyone can license. But it will be years before this mess of OS' and development platforms sorts itself out.

Elia Freedman
http://mobilesuccess.infinitysw.com

Michael Mace said...

Anonymous wrote:

>>i am also quite interested in how the operator 'lock down' will work...i find it unlikely that if an application works while using one operator that it will be cut off the change of a SIM card.

I was wondering about the same thing. Reading between the lines, I don't think the Android architecture would support this. Permissions are set when the application is installed, not when it's run.

As for how the permissions will be granted, Google hasn't made that clear yet. My guess is it might vary by operator or handset manufacturer.

Anonymous said...

i was just reading about speculation that google could be giving out subsidies for android handsets. it makes me think that it would be nice if they base these subsidies on how open the manufacture/carier's leave android.

if they offer a $50 subsidy;but only for a completely open handset it could have an impact. the carrier may very well think the $50 is worth it and lock down the handset anyway. but if that same handset get a $50 subsidy and ends up for sale unconnected to any contract it could momentum in that part of the market.

i wil ad that it is my opiniom that the single biggest issue that would spur a large in increase in mobile data usage is getting the handsets sold seperate from the contracts. its mostly psycological but I do believe that individuals see there handset as something very different if it is not a gift from the phone company.

Michael Mace said...

Anonymous wrote:

>>it is my opiniom that the single biggest issue that would spur a large in increase in mobile data usage is getting the handsets sold seperate from the contracts

I agree, the thing to do would be to apply the subsidy to the handset when it's sold at retail separately from the contract. That would help encourage an off-contract market for mobile phones (something that exists in Europe but is very small in the US because of the subsidies you get with contracts).

Anonymous said...

I can't see the networks in the UK allowing the android security model without locking out developers who don't go through some testing/signing procedure first (think Java Verified but network specific?)

It's a shame but at the moment most people still buy their subsidized handset with their network contract and there is no where near enough consumer knowledge to cause the networks any concern in requiring elaborate signing procedures or just making certain types of apps forbidden completely.

Unlocking your phone and changing your SIM probably won't change the root certificates installed by the network either but I could be wrong.

Anonymous said...

The big question looks like it might come down to whether a battle royal will develop between Google and Microsoft, as I saw hinted at http://www.androidvswindowsmobile.com. If that happens, it could be a big boon for us consumers. But it will take some time to shake down.