Google Android — a Universe of Incompatible Devices 636
snydeq writes "Galen Gruman writes about the dark side of the recent flood of Android smartphones: versions run amok. 'That flood of options should be a good thing — but it's not. In fact, it's a self-destruction derby in action, as phones come out with different versions of the Android OS, with no clear upgrade strategy for either the operating system or the applications users have installed, and with inconsistent deployment of core features. In short, the Android platform is turning out not to be a platform at all, but merely a starting point for a universe of incompatible devices,' Gruman writes. 'This mess leaves developers and users in an unstable position, as each new Android device adds another variation and compatibility question.' In the end, Google's naive approach to open sourcing Android may in fact be precipitating this free-for-all — one that might ultimately turn off both end-users and developers alike."
As reader donberryman points out, you can even put Android onto some Windows Mobile phones, now.
no upgrades?? (Score:5, Informative)
Yep. Android's cool, BUT (Score:4, Informative)
I just got a Samsung Galaxy this month, because my old WinMo 6.0 phone was crap and needed to be put down. It runs Android 1.5. There's no plans to upgrade it to 2.0. I knew this when I got it, and if I could have, I'd have waited until I could have gotten a 2.0 phone. But the platform fragments even within forks just because manufacturers don't bother to update the system. I figure in a year or so, I won't be able to find any new apps that work with my phone because they'll all be written for the newest version. Say what you will about Windows Mobile (it sucks), but at least you can rest assured that you'll be on a level playing field with other phones, app-wise. Hell, I probably could have upgraded my old phone to 6.5, if it wasn't busted. Platform solidarity and longevity are important if you want it to be a success.
Re:Just like desktop linux. (Score:3, Informative)
Perhaps I'm confused, but how are Windows phones locked down? I can download any Windows Mobile application and install it on my phone...there is a little warning that pops up if it is "unsigned", but all you have to do is hit ok or yes and it installs...there is nothing preventing you from installing whatever you want on there.
Are you just referring to Windows Phone 7...?
Re:Just like desktop linux. (Score:5, Informative)
No it isn't. The "problem" the author is talking about is no different than the "problem" with developing for Windows, desktop Linux, server Linux, Windows Mobile, BREW, J2ME, BlackBerry, etc... Basically its a "problem" with *every* platform - including the iPhone now that iPhone apps are supposed to work on the iPad (different form factor, screen size, features, etc...)
However, unlike all those other platform, Android supports some *very* powerful tools in resource selection and defining what API you are targeting. Target the 1.5 SDK, and it will work on 1.6, 2.0, and 2.1 because Android *knows* what SDK you are targeting. You can also specify that the "bg_image" resource be different based upon various criteria like screen DPI, whether it is in portrait or landscape mode, etc... and Android will pick the right resource without the developer needing to do anything in code. It is a very powerful system that works very well. You can also define what features your app requires. Require a trackball? You can tell Android that you require one. Require a tilt sensor? Tell Android you require one.
The real problem is that developers go into Android thinking that its development model is the same as every other platform and it just isn't. Google solved so many of the problems that these journalists are writing about and they solved it so elegantly. Spend 10 minutes reading through the Android SDK documentation and you will quickly see how incredibly non-issue many of these "developer complaints" are.
Re:no upgrades?? (Score:5, Informative)
So... yeah, the article raises a good point. It also highlights one of the benefits of rooting your phone- the *real* open source community behind Android is the modders, which try their best to keep your phone at the highest level of Android the hardware can take. I think the Android OS has incredible potential at the end of the day to really be something special, but standardization may be one of its biggest roadblocks. The steadily loosening death-grip of the carriers needs to completely go away, though.
Re:Just like desktop linux. (Score:2, Informative)
What the hell is kdenlive?
Seriously.
No, I can't be bothered to google it. My point is exactly the GP's point.
80-90% of the population has no idea what the hell you just said.
And it's clearly obvious you just don't get that.
This sounds actually exactly like (Score:3, Informative)
early mobile Windows platforms (CE, HPC, HPC Pro, PPC, etc.)
For any given device, you could find the 5-6 apps released by the manufacturer, a few old scattered apps by a shareware dev that happened to have the same device as you, and a whole universe of apps for "mobile Windows" platforms, each of which supported only one or two very specific devices in one or two very specific embedded Windows versions.
As a result of this, millions of these were sold in the '90s only to fall into disuse within a year or so in each case as technology and connectivity needs moved on, but only the very latest devices were supported by the latest developments in software to fulfill consumer needs. Consumers got smart and decided it was a generally bad deal to buy these devices because they'd be totally unsupported within a year, essentially a wasted $400-$800 investment on a device that would simply be left incompatible with the ecosystem before very long.
You can now find lots of these devices on eBay for less than $100 (various PDAs, handheld PCs, etc.) that are worthless because they only sync to Windows 95 or 98, have only rudimentary built-in tools, and are blessed in each case with a paucity of compatible applications.
Hopefully this doesn't happen to Android, too. I'm an iPhone user and am very satisfied, but it's always nice to think there are alternatives, and I like the Android platform, in concept, an awful lot.
Re:no upgrades?? (Score:2, Informative)
My Sprint Samsung Moment is supposed to get an upgrade from 1.6 to 2.1 in the "first half" of this year. Granted that the carrier is the gate keeper for this upgrade, but there IS a path for upgrade. I look forward to the upgrade for many reasons. I chose the Moment over the Hero because I felt that the hardware was better, and I knew the software would be upgraded. That's why I bought an Android phone, because it will be upgraded.
Re:Just like desktop linux. (Score:4, Informative)
No, but it's a problem if your Honda engine can't accept the Honda after market kit you bought that fits that engine, just not in your car's model, and when there's no documentation either way that's the case, and a strict no refund policy.
Re:J2ME again (Score:5, Informative)
As somebody who has written an app for both J2ME and Android, that comparison is really far out.
There are some key differences between J2ME and Android:
Android is an implementation, J2ME is a spec. Developing for J2ME is a nightmare because practically every phone has a unique combination of serious bugs. This isn't true of Android because every phone is working off the same core code. If manufacturers want to modify that code, that's OK, there's a test suite they have to pass if they want certain things.
Androids "fragmentation" is actually simply that not everyone has upgraded yet - no different to any other platform (including the iPhone). But Android manufacturers have a history of upgrading versions, and I don't see much reason for them to change this: customers demand it and because Android is open source, doing the upgrade is effectively "free" by mobile development standards, even for things like Sense UI (the APIs are backwards compatible).
You can see what versions are in use. [android.com] So there's no guessing about what you can or cannot use, API wise, it's easy to see.
Android explicitly supports writing apps that run on multiple platform versions, where as J2ME never really did. For instance you can hide your app from earlier devices (in the market), or you can make your app gracefully degrade on older devices.
Android does actually standardise hardware, it just doesn't standardise on exactly one set. For instance, you can assume all Android devices have a decent touch screen, a display that uses one of a handful of resolutions and so on.
Google only lets manufacturers distribute certain closed source apps (like Market) if they meet certain conditions. Google has every incentive to keep as many people on the latest version of Android as possible. They have the leverage needed.
In short, it's a slow news day and InfoWorld know how to stir up a story.
Re:Just like desktop linux. (Score:4, Informative)
Where is the problem? (Score:3, Informative)
Where is this incompatibility? Specific examples please? This is all speculation. I work an on unreleased Android smart phone and download apps all the time from the market and don't see any compatibility issues. Yes there is a lot of variation in phone, but the framework has methods to deal with that. Incompatibilities are more likely the programmer's fault rather then the phone's fault.
The only place this could be a problem is cutting edge new features or sensors, usually a ODM will implement it in an incompatible way the first generation, but then Google will standardize the interface in the next release (i.e. multitouch)
Re:No. A phone is not a phone. (Score:3, Informative)
This became true for me as well after I got my G1.
My phone used to be just a phone. I wanted it to be small and have good reception.
Then they started making phones with good cameras (Nokia N95), and my phone became a camera that I could talk to.
Then I actually started using SMS. Suddenly a keyboard became very attractive.
The value in the G1 is the data connection, and a solid OS to make use of it. I make phone calls only a couple times a day. The data connection is used constantly.
Re:Just like desktop linux. (Score:5, Informative)
The idea that MacOS will magically banish all of your problems forever is just mindless nonsense.
If you start responding to what people actually said, you might have a meaningful conversation, rather than tilting at windmills.
As it is, your statement that :
This is in stark contrast to a Mac where you will first download your app and then be told to manually sort out dependencies.
Is laughably incorrect for anyone who has used OS X - if you have a mac or three you really should know that by now. Dependencies are either bundled with the OS, bundled inside the app, or (in very rare cases like Adobe) bundled inside an installer. Typically installation means drag the app to Applications, and typical users of OS X have no idea what 'dependency' means; because they don't need to.
That's not to say that Linux is necessarily worse, just different - there you use package managers to handle such things.
Re:Just like desktop linux. (Score:3, Informative)
Anyone could point out small apps like PuTTY with little or no dependencies that still work, on pretty much any platform.
Re:Just like desktop linux. (Score:4, Informative)
No. You really don't. Each Mac application is actually a directory (Mail.app is actually /Applications/Mail.app/...), which contains the executable and (assuming the programmer did what they were supposed to) any relevant libraries and so forth that the executable needs to run. Since each .app folder is self-contained, you don't have to worry about what version of libfoo is installed on your system (each app carries a copy of the one it needs). More information on this can be found here [apple.com].
Re:Just like desktop linux. (Score:3, Informative)
Re:You have never had to write a installer have yo (Score:2, Informative)
It's not that hard. Only depend on APIs present in the base version you target. If you can take advantage of more recent ones then use GetProcAddress. People have been doing this for years.
Actually Win32 has been a perfectly capable API since the NT days so it's possible to write pretty much anything and have it working on NT and up.