Forgot your password?
typodupeerror
Google Open Source News

Android Compatibility and Fragmentation 211

Posted by kdawson
from the don't-frag-me-bro dept.
tbray writes "Here are the details on the Android Compatibility Program — which combines the source, a formal compatibility spec, an open-source test suite, and access to the Android Market as reward for good behavior (program page). People like to rant about the subject of fragmentation, so here's TFM that they should be R'ing first."
This discussion has been archived. No new comments can be posted.

Android Compatibility and Fragmentation

Comments Filter:
  • by phantomfive (622387) on Tuesday June 01, 2010 @05:53PM (#32424584) Journal
    This wasn't his point, but the author of the article described the android fragmentation perfectly. Quote:

    * Bugs - devices might simply have bugs, such as a buggy Bluetooth driver or an incorrectly implemented GPS API.
    * Missing components - devices might omit hardware (such as a camera) that apps expect, and attempt to "fake" or stub out the corresponding API.
    * Added or altered APIs - devices might add or alter APIs that aren't part of standard Android. Done correctly this is innovation; done poorly and it's "embrace and extend".

    Each of these is an example of something that can make an app not run properly on a device. They might run, but they won't run properly. These are the things that I spend my time preventing.

    The only thing I might add is that devices of different resolutions can be annoying, especially if your app has static images or custom widgets.

  • Re:Screen res (Score:4, Insightful)

    by tlhIngan (30335) <(ten.frow) (ta) (todhsals)> on Tuesday June 01, 2010 @06:02PM (#32424704)

    Are the screen sizes a big deal? Application and web developers have dealt with this problem for decades now.

    I think there's only two right now - HVGA (320x480), and WVGA (480x800), though there may also be VGA sized screens as well.

    The big issue is that the density increases but the screen size remains the same, so if your app isn't DPI aware things get small and hard to control. Desktop app developers tend to be fixed DPI - a larger window lets you show more information. Ditto web developers. But high-DPI displays means you don't want to show more information, but you should scale everything up. Even pictures if it makes the picture grow from literal thumbnail to larger blob.

    DPI-awareness is a difficult thing and many apps still get it wrong on the desktop, if you switch your Windows desktop to high-DPI mode.

  • by DavidR1991 (1047748) on Tuesday June 01, 2010 @06:04PM (#32424728) Homepage

    "The thing is, nobody ever defined “fragmentation”"

    Let me try: You have several different versions of Android 'in the wild' on different phones, different carriers, etc. There are different stances on whether these version of Android can be updated (based on manufacturer) etc. yadda yadda

    Now, looking at that situation, I would say 'fragmentation' is more along the lines of 'Is it going to remain easy for to target Android phones in general considering how many versions currently exist [/not obsolete] concurrently?'

    So yes, it is mainly about compatibility. But it also means (much like any other platform) if the version leaping continues (and so many versions exist concurrently all the time) playing to the 'lowest common denominator' of supported features will be required

  • by h4rr4r (612664) on Tuesday June 01, 2010 @06:16PM (#32424850)

    The hardware vs onscreen keyboard does not require two apps.

    The iphone is not one platform, there are 3 different phones and there is about to be a forth.

  • Re:Screen res (Score:3, Insightful)

    by h4rr4r (612664) on Tuesday June 01, 2010 @06:19PM (#32424872)

    Which you can just treat as 480x800, who will really notice the missing 54 pixels?

  • by Sycraft-fu (314770) on Tuesday June 01, 2010 @06:21PM (#32424894)

    You will have either fragmentation, or stagnation as the device gets older. Even something totally controlled like the iPhone. As time goes on, one of three things will happen:

    1) Apple will introduce new iPhones with features the old ones do not, and cannot, have such as higher rez screens, faster CPUs, etc. Software for these new phones will not run properly, if at all on the old ones. The phones will fragment along the lines of new and old.

    2) Apple will refuse to introduce any features that would break compatibility with older phones. They maintain total compatibility through keeping various things at one spec. This leads to stagnation of increasing proportions as time goes on, such that new iPhones are literally years behind competing products.

    3) Apple discontinues all support for older iPhones. They have the service providers remotely kill the hardware so you are required to purchase new hardware.

    There's just no way around it. If you want new devices to have new capabilities, well it will lead to fragmentation. There are plenty of things you can do to help, particularly in making sure newer devices can seamlessly run older software, but you can't have all sorts of new stuff and have everything work just like it did before.

  • by hitmark (640295) on Tuesday June 01, 2010 @06:25PM (#32424946) Journal

    3b) apple makes sure to plan for a "incompatible" hardware upgrade when most of the early adopter contracts about to expire, and therefor they will be looking around for a replacement anyways.

    planned obsolescence is a "wonderful" thing.

  • Re:Screen res (Score:4, Insightful)

    by hedwards (940851) on Tuesday June 01, 2010 @06:30PM (#32424986)
    It's not 54, it's 54*480 which is 25920. Which is a non trivial amount on a device that small.
  • by Anonymous Coward on Tuesday June 01, 2010 @06:31PM (#32425000)

    Aren't the newer versions of iPhoneOS not available for older ipods (and possibly iphones)? If that's true, I think the change in features between the versions is much less 'backward-compatible' than the change between Android 1.5 and Android 2.0, at least from an app's perspective.

    For instance I doubt we'd find an iPhone developer willing to write their app for the iPhone OS 2.0 so that it'd work on older devices (and miss out on the cool multitasking of OS 4), whereas I'm sure that unless an Android developer had a specific new feature (such as contact integration), they'd stick their app as compatible for Android 1.5 and be available for the vast majority of phones.

    Furthermore, having a little bit of experience writing an android app everywhere I looked they were trying to get you into good compatibility practices. Simply designing a different layout for a different screen size (which was just the layout itself, it still interacted with the same code) and checking that a feature was present on the device before using it.

    I've seen iPhone developers stressing about their app running smoothly on both the 3G and 3GS due to the different specs; the problem is not Android's alone.

  • by sortius_nod (1080919) on Tuesday June 01, 2010 @06:40PM (#32425108) Homepage

    It's funny, I saw this article on my RSS and knew that the first post would be this. You don't give any reason as to why the fragmentation stories are FUD.

    I am personally very hesitant to look at any android device due to the fragmentation. Hell, you have 1.6 devices being released alongside 2.1 devices. If this isn't fragmentation then what is?

    As has been posted, read some comments from users about how pissed they are that their 1.6 device won't run certain apps or is lacking features that could be implemented by a 2.x release but their carrier won't deploy any updates.

    While the fragmentation can't be squarely put at Google's feet, there's a shared responsibility between the hardware manufacturers, the carriers and Google to ensure that this doesn't happen. Unfortunately this hasn't happened and Android is headed squarely toward a cluster fuck.

  • by WrongSizeGlass (838941) on Tuesday June 01, 2010 @06:47PM (#32425202)

    I don't think every piece of hardware should be supported forever, but I think a year of official support for the latest version releases after the last date you sold the product is a minimum

    If the contract period is 2 years, and the early termination fee is based on the contract period, they better support the phones for 2 years.

  • by Dr.Dubious DDQ (11968) on Tuesday June 01, 2010 @06:53PM (#32425258) Homepage

    Even now lots of web developers want to treat the browser view like a physical sheet of paper, demanding iron-fisted control over placement of everything on the page. This leads to all kinds of work to maintain the control. I keep wishing more web developers would get over this. Not only would I find it a lot easier to actually make use of their work on smaller screens (my Android phone, my netbook...), I think in the end it would be a lot easier for the developers, too.

    It sounds like mobile application developers often have the same problem...

  • by ducomputergeek (595742) on Tuesday June 01, 2010 @06:58PM (#32425292)

    Android Market makes sure your app is only visible to those devices where it will run correctly, by filtering your app from devices which don't have the features you listed.

    I've seen this a lot with friends who have different android phones. Friend A with HTC: "Hey try this really cool app". Friend B with Motorola: "What App? I can't find it anywhere in the market place." My understanding is that the app doesn't even show up if their phone is not compatible, it's invisible. I guess they don't want a bunch of apps that when you bring up the page says, "Sorry your phone is not compatible".

    I also know from the QA side of the house that you can have the same phone hardware with 2 different OSs depending on the carrier. Usually we don't have major problems, but there can be glitches and bugs that are introduced. And then there is the speed of the upgrades. With the iPhone we looked at one major update per year. When we started working with Android last year it was 1.5 (which had been our for a while on the G1) and 1.6. Then suddenly it was 2.0, then 2.1, now 2.2 all the last 9 months or so. Apple has generally release a new OS every year with a minor .1 release shortly there after. Same with blackberry.

  • by Sancho (17056) * on Tuesday June 01, 2010 @07:07PM (#32425412) Homepage

    The stories just say that fragmentation is killing Android, but they provide no evidence. They are making the claims, here. I have found no evidence that there's a fragmentation problem. There are apps that don't work for all devices, but iPhone OS has that issue, too, and it's only going to get worse.

  • by sortius_nod (1080919) on Tuesday June 01, 2010 @07:19PM (#32425550) Homepage

    Agreed, however the killing of the platform has started in minor ways, unless there's collaboration between carrier/manufacturer/Google it will end up as a platform that users don't want a bar of.

    Let's face it, we're not talking about techies who can handle that some apps don't work, we're talking about users. They don't know the difference between a 1.6 & 2.1 device, they just see a phone with Android across the box. If it doesn't work they'll never buy another Android phone.

    Sometimes it is difficult to step back and ask "What would a user do in this situation?". It's something that the IT industry seems to forget, that the users are what matters for a consumer device.

  • by ekhben (628371) on Tuesday June 01, 2010 @08:38PM (#32426186)

    1) 3GS has better processor, graphics, and more memory than 3G. iPhone has better location and a camera, iPod Touch does not. These differences exist, they just don't currently impact more than a few niches of applications.

    2) Clearly not happening.

    3) If you ignore the hyperbolic nonsense about remotely killing devices, this is happening. The original iPhone and iPod Touch devices are not supported by iPhone OS 4.0. The iPhone 3G is no longer available for sale, on the same trajectory as the original iPhone was a year ago. Apple have shown that they won't hang on to old hardware forever - OS X 10.6 doesn't support PPC, for example.

    One thing is highly in Apple's favour right now: all devices can upgrade to the most recent OS without the carrier being involved. There's very limited OS-level fragmentation in the App Store; users who never sync very rarely purchase, and users too cheap to spend $10 on their iPod Touch are generally too cheap to buy many apps. Developers can target the most recent OS version quite happily. When the original iPhone is no longer supported by the current OS, there will be a lost market segment for people still happy with their device but unable to keep up.

    A higher resolution on the new iPhone will probably increase fragmentation, though many apps should not need any work at all, if they followed the UI guidelines and used auto-resizing and system fonts. Unless they specifically need to use the higher resolution, new apps going forward should have very little trouble targeting the whole family (less the two out of support originals).

  • by ergo98 (9391) on Tuesday June 01, 2010 @10:13PM (#32426894) Homepage Journal

    Or do I give up the 25% of the market that is Android 1.5?

    Most of the phones that run 1.5 right now are terribly underpowered -- OpenGL on a G1 is almost a sick joke.

    If you're targeting OpenGL, you probably should cut your losses and cut them.

    If you look at a recent app produced by Google, the Twitter app, you'll see that it is unavailable to a huge percentage of the market because they don't support older versions of Android with it.

    The Twitter application is an Android showpiece app, which is why it targets 2.1. They wanted to use animated wallpaper, quick contact bars, and so on, to highlight the best of the contemporary platform. Aside from the fact that about 50% of Android phones are running 2.1 right now, most other phones are going to see a 2.1 upgrade in the relatively short term. I suspect Google intentionally targets 2.1 to try to motivate the vendors to expedite their upgrades.

  • by Anonymous Coward on Tuesday June 01, 2010 @11:09PM (#32427312)
    Engadget has been stoking the FUD fire for a long time. Do you own research and find out which devices are slated for upgrade. Practically the only one not slated for upgrade is the G1.

    Engadget is toeing that sycophant line dutifully. I think I have seen 3 articles with them calling Android horribly hopelessly fragmented in just the past two or three months. It's ridiculous. They are sensationalizing and anger mongering.
  • by Namarrgon (105036) on Wednesday June 02, 2010 @01:04AM (#32427996) Homepage

    Oh for.. look, how do you propose to make e.g. a GPS tracking app run on a device that doesn't have GPS? (yes, I'm aware all Android devices must have GPS) How is allowing apps to use specialised hardware on Android any worse than allowing apps to use the compass on an iPhone 3GS, but not on a 3G? or camera apps on an iPhone but not an iPod?

    The only way to avoid fragmentation as you define it is to have one unchanging, stagnant piece of hardware that only runs one version of the OS, on one network from one vendor. Even Apple doesn't do that.

  • by Mr2001 (90979) on Wednesday June 02, 2010 @01:45AM (#32428214) Homepage Journal

    if you read your own post - point 1 applies to android just the same. the version differences only impact a few niches of applications.

    Same with the screen resolution issue. "If [the developer] followed the UI guidelines and used auto-resizing and system fonts", an Android app will fit whatever size screen it's running on.

  • by adolf (21054) <flodadolf@gmail.com> on Wednesday June 02, 2010 @02:04AM (#32428344) Journal

    And of course if you have to target a newer API, presumably because it has a feature that you can't live without, you limit your app to that version and above

    Indeed. There have been several occasions on which I was forced to upgrade the OS on my iPod Touch, just to use a new app. ("Forced" as in: The app would not bloody install on the software version I was running.)

    And, of course: On the iPod Touch, OS upgrades sometimes cost actual money.

    So. If we assume that fragmentation is a problem, then it is very plain that it is not an Android-specific problem.

  • by Xest (935314) on Wednesday June 02, 2010 @04:30AM (#32428940)

    "It's funny, I saw this article on my RSS and knew that the first post would be this. You don't give any reason as to why the fragmentation stories are FUD."

    It's actually been explained, and I have to question the motive for your posting, because it takes a certain selective ignorance to not see the given reasons. All the same, to give you the benefit of the doubt, here are the reasons they are FUD:

    1) There's a choice between fragmentation and stagnation, if a set of devices does not change over time to avoid fragmentation, they rapidly become outdated.

    2) Fragmentation has been fundamental to the most successful computing platform of all time- the PC. Without fragmentation there would've not been such rapid development or adoption.

    3) Because of the above, fragmentation has allowed the likes of PC to be extremely versatile, and software developers have coped with it for decades without any real problems.

    4) Because fragmentation has been so fundamental to the development of the PC, and dealing with it is so well understood, Android has been able to be designed with the issue of fragmentation in mind, and hence handles it in an extremely graceful manner- more so than most other platforms.

    5) Because of point 4, the supposed issue of fragmentation hasn't actually really caused any problems, hence why the Android marketplace has some of the most innovative apps on the market (particularly those from Google such as Skymap, Translate, as well as the likes of Layar) which work perfectly fine even on my old HTC Magic running Android 1.6.

    So in other words, despite all the fragmentation FUD being talked about, there's no actual evidence being produced of it causing any real life problems. The only whines seem to be from those who simply don't have the first clue about software development because professional developers understand concepts like abstraction layers and how they help you deal with differences in platforms.

    I hope this answers it for you once and for all, but judging by your tone it sounds like your mind is made up, to you it sounds like Android has a fragmentation problem because a few blog posts told you so, even though they provided no evidence at all to back up that theory, let alone any "evidence" that can't easily and demonstrably be refuted as being FUD in itself.

  • I'm not sure what you want Google to do about this. Do you want Google to dictate a certain hardware spec to all the vendors? If you favor a consistent platform (more or less) from a well-known set of hardware on a single carrier, you should go with Apple.

    This is simply software engineering - taking one set of trade-offs for others. If you want newer features, you target the later API, at the cost of a smaller audience. These are all very straight-forward cost/benefit decisions, that YOU get to make, not Google. This is the strength of the open platform.

    This is my thoughts exactly.

    You're gaining a huge install base by having Android compatible with multiple handsets. People like choosing different feature sets, not everyone wants a keyboard for example, but some wouldn't live without one. Some people will pay extra for a phone with excellent gaming performance, others won't care.

    This is akin to figuring out if a hypothetical game will run on User X's computer. Ship the game for a console if you don't want to deal with it.

    To be fair, for the wide variety of devices Android supports, there are very very few compatibility glitches.

"The value of marriage is not that adults produce children, but that children produce adults." -- Peter De Vries

Working...