• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

"Dear Android Vendors...."

Fragmentation on Android is misunderstood. Here's why.

1. Some say the problem is that huge variances in hardware as compared to the iPhone. This isn't true. When you develop for iPhone hardware, what CPU's do you account for? You account for the ARMv6 and ARMv7 Instruction sets using the ARM11 and ARM Cortex A8 MPCores (yes, the iPhone 3G is still supported, which uses VERY old technology). As for graphics chips, you account for 2 different GPUs right now, both of which support Open GL ES 1.0, the latter also supporting 1.1 and 2.0. Not sure if the original supports 1.1. Android has the exact same variance in hardware, except that you also have to deal with the Scorpion MP Core. Since this is pretty much just an A8 on steroids, most developers just code for ARM11 and A8.

2. So the next level of fragmentation is the OS itself. Some people say that you have to code for multiple OSes. Not necessarily true. The biggest gap in compatibility was 1.5 to 1.6. Heck, 1.6, 2.0, and 2.1 all use the same kernel. Aside from OS specific features, if you make an app compatible with 1.6, it should work fine on any newer version.

3. The main problem with fragmentation on the Android OS right now is the screen. On iOS, you have one aspect ratio (3:2) and two resolutions to code for. Since they use the same aspect, you could just support the lower resolution and let the OS scale the image for the newer screen. On Android, you have several different aspect ratios and many different resolutions. Windows handles this by using a windowing system. Linux handles it by using the X-window system. Basically, the OS knows to stretch, scale, window, or letterbox as needed. Android doesn't, so the developer has to deal with it. THIS is where fragmentation affects developers the most.

So yes, fragmentation is an issue, but it's not because of the OS version or the guts of the device. It's the screen and a lack of a true windowing system.
 
  • Like
Reactions: EarlyMon
Upvote 0
Fragmentation becomes a bad word because some iPhone fanbois wants to make it an issue. The truth is, its not really an issue.

We may also consider let's say, how come all the dashboards of Toyotas and Lexus cars are all different? How come the dashboard of the Toyota Corolla and the Camry are not the same. And they're not the same with the Prius, not the same with the Yaris, not the same with Venza, not the same with Vios.

Heck, Toyota is suffering from fragmentation. Toyota cars are a mess. There is no consistency and uniformity.

LOL yeah, Toyotas are a mess, they withdrew thousands of faulty cars
 
Upvote 0
For those of us who bought XP when it came out, it worked but had significant issues. Its second free service pack, SP2, was a huge leap forward and made it an enterprise-viable OS.

Shifting to the general topic - Medion raises an interesting point: what defines fragmentation?

I'd always seen it as non-technical barriers leading to multiple Android revisions out there. I wonder however if my concerns, Medion's and others weren't addressed if this meme wouldn't survive in any case.

In general, OS X, Windows, and iOS have an appearance. There's never been a single appearance for *nix, let alone Linux, much less Android. Windowing and standard hardware won't change that.

While researching something else, I found that we can at least fragment iPhone 2G and 3G models. :)

IPHODROID Download and Install - iPhone with Android
 
Upvote 0
It's a distinction without a difference in this case.

If we're talking 2.x to 2.x - are we, or are you talking all revision changes?

Are you saying that a 2.1 update to 2.2 ought be charged? Not baiting, I honestly don't know what you're referring to in that statement. I'd qualified an earlier remark to minor rev numbers, but we're kinda all over the map here.
 
Upvote 0
Well, the intent was to support snapper.fish's excellent analogy.

In that case, I'll try to weigh in on that.

Just thought of something. Why does this fragmentation problem not appear on PC? There are literally infinite number of possible combinations for computer hardware, yet no one ever complains about fragmentation.

Going by the last post I made, the problem with comparing fragmentation on the PC versus Android is that the problem isn't internals or even software version, but rather, the lack of a windowing system. If you run an old school game like Diablo 2 on your PC today, which only supports two resolutions (640x480/800x600), you can still run it. Depending on how you configure your monitor and video card, it will either stretch, scale, or be letter boxed.

On Android, if an app is only designed for one resolution, it will ONLY run on phones that support that resolution. Google has not addressed it, but Samsung has made a serious attempt at addressing it on their Galaxy devices. Still, this should be done at the OS level, not by the OEM.

This level of fragmentation became a serious issue for Windows Mobile as well, but with each version, MS added more native scaling options. You could run a 320x240 app on an 800x480 screen, and it would be scaled or letter boxed. Google needs to move in this direction fast.
 
Upvote 0
Medion - Ok, so do you define fragmenting in terms of the ability to run apps properly with any given revision level, hence citing resolution independence?

Like you said, there are many ways to define fragmentation. For me, it's how easily you can run an application across all of the devices running that OS. Each OS has a main limitation.

-For iOS, it's hardware. You have to account for the hardware in each phone, as there are significant differences. The OS is the same going back 3 revisions, and the OS accounts for the differences in hardware. It's an outstanding design.

-For the desktop, again, it's hardware, as the OS and APIs account for those differences. So, you have to deal with minimum specs. Windows Visa and 7 use the same underlying OS, so compatibility isn't a major issue between the two versions. Vista was released in 2006, so if you cut out XP, you're still getting 5 years of compatibility.

-For Android, you have the same hardware issues as iOS. As for OS compatibility, we've had the same basic level of compatibility since 1.6. So it's the lack of windowing in Android that causes the differences in screen aspect/resolution to be a fragmenting issue. If Google fixes this issue by giving it some way to natively handle this, then Android won't be any more fragmented than other OSes. There's always going to be some degree of fragmentation. I just see this as the issue currently holding up Android more than anything else.
 
  • Like
Reactions: EarlyMon
Upvote 0
deadhorse.gif
I think it's dead, maybe not
deadhorse.gif
 
Upvote 0
-For Android, you have the same hardware issues as iOS. As for OS compatibility, we've had the same basic level of compatibility since 1.6. So it's the lack of windowing in Android that causes the differences in screen aspect/resolution to be a fragmenting issue. If Google fixes this issue by giving it some way to natively handle this, then Android won't be any more fragmented than other OSes. There's always going to be some degree of fragmentation. I just see this as the issue currently holding up Android more than anything else.

Android fragmentation is more than just resolution difference among the devices.

1) GPU difference. This is what caused Angry Birds to be develop only for specific phones.

Read this article: satine.org – The Care and Feeding of the Android GPU
and
Issue 6914 - android - Make android use the GPU (if available) for UI and browsing. - Project Hosting on Google Code

2) Codec support. This is entirely dependent on the phone manufactures. Google does not supply the codecs for cost and financial reasons. And this is the reason why there is no Netflix on Android. Yet, Windows 7 phone, a relative newcomer,already has it.

These are just the two off the top of my head,

Here is an article denoting 5 specific fragmentation issues:
The Five Types of Android FragmentationVoIP Survivor
 
Upvote 0
1) GPU difference. This is what caused Angry Birds to be develop only for specific phones.

I accounted for this in the "minimum specs" argument. You'll have this for any platform. All iPhones use a dedicated GPU. Not all Android phones do (but most new ones do). With or without a GPU, the graphics are still handled via OpenGL ES. So, you program for OpenGL ES, and the consumer has to ensure they meet the minimum requirements. There are plenty of examples of games written for the iPhone as well that won't work on older hardware. A recent example: Dungeon Defenders: First Wave for iPhone 3GS, iPhone 4, iPod touch (3rd generation), iPod touch (4th generation), and iPad on the iTunes App Store

This game only works on the iPhones using the newer GPU, so 3G S and 4 only. Same level of fragmentation you mentioned for Android.

2) Codec support.

You misunderstood. Neflix isn't having issues with codecs, it's issues with DRM. Android doesn't come with DRM as it's an open-source project. This has to be added by the OEM. It's an open-source limitation.

Here is an article denoting 5 specific fragmentation issues:

And he's wrong.

1. I've debunked this. 1.6 and beyond use the same compatibility layer. It's like how writing a program for Vista will generally ensure that it also works on 7. Those on 1.5 are screwed, but that's fallen under 5% by the current pie chart.

2. Not true. The APIs generally stay the same. OEM/carrier customization doesn't touch this.

3. So various phones come with different UIs? That's choice. If I only want Sense, I'll only buy HTC phones not on T-Mobile. That doesn't prevent me from running applications.

4. Again, choice. This isn't an issue. There's nothing wrong with having the choice of keyboard vs. no keyboard. The only part of form factor I agree with is the screen because of the software issue it causes.

5. This is speculation on what European operators might do, making a new OS. Again, this isn't an Android issue.
 
Upvote 0
You are correct about the codec. I meant to say DRM implementation.

As for the GPU.The difference in GPU is not the same on iOS vs Android.

When you develop for iOS, you are certain you can support hardware that is about 1-2 years old for the most part. This is not really fragmentation but hardware aging.
The problem with Android, is not all the current phones will be top-tier 1 super phones. There will be current phones like the Motorola (backflip or whatever they call it on T-Mobile) and low end Huaweii, LG phones. There will be phones in the next 2-3 months that still won't meet 'minimum' requirements.
 
Upvote 0
You are correct about the codec. I meant to say DRM implementation.

As for the GPU.The difference in GPU is not the same on iOS vs Android.

When you develop for iOS, you are certain you can support hardware that is about 1-2 years old for the most part. This is not really fragmentation but hardware aging.
The problem with Android, is not all the current phones will be top-tier 1 super phones. There will be current phones like the Motorola (backflip or whatever they call it on T-Mobile) and low end Huaweii, LG phones. There will be phones in the next 2-3 months that still won't meet 'minimum' requirements.

Now this, you are 100% correct on. However, this is very similar to the desktop market. Developers can already account for a GPU being present or not and design their game as such. That's not a big deal. But, it's nowhere near as bad as the lack of windowing. The screen resolution/aspect ratios that you must account for are mind boggling. The CPU/GPUs are handled through the API and OS very well.

Android, due to having more options, will always be more fragmented than iOS, which has one annual upgrade. But the general fragmentation issues that apply to Android also apply to iOS.
 
Upvote 0
I believe there's a proper and more polite way to complain about posts.

There's also the fact that when details on a topic aren't of interest, we read past or around them.
Sorry, I wasn't complaining, just posting a funny - I don't think the horse is being beaten here much at all, thus the 'maybe not'. :eek:
 
  • Like
Reactions: EarlyMon
Upvote 0
And how is a selection of higher and lower priced phones with varying capabilities qualifying as fragmented, as has been already asked?

Of course it isn't "fragmented."

Linux isn't fragmented either; it's flourishing in open source. Linux and Android are alive and well, with this or that version sloughing off now and then, and this or that version being sought after.

They have a lot in common, Linux and Android.

Too bad most Linux distro developers live off left over pizza and flat beer. ;)
 
Upvote 0
Once you go down to the kernel and doing all native C++ programming, which the latest Android NDK now allows, its now more Linux than Android. This is why we're starting to see all native apps like Opera Mobile and Firefox Mobile. The latter's development is actually side by side with its Meego/Maemo based twin.
 
Upvote 0
In that case, I'll try to weigh in on that.



Going by the last post I made, the problem with comparing fragmentation on the PC versus Android is that the problem isn't internals or even software version, but rather, the lack of a windowing system. If you run an old school game like Diablo 2 on your PC today, which only supports two resolutions (640x480/800x600), you can still run it. Depending on how you configure your monitor and video card, it will either stretch, scale, or be letter boxed.

On Android, if an app is only designed for one resolution, it will ONLY run on phones that support that resolution. Google has not addressed it, but Samsung has made a serious attempt at addressing it on their Galaxy devices. Still, this should be done at the OS level, not by the OEM.

This level of fragmentation became a serious issue for Windows Mobile as well, but with each version, MS added more native scaling options. You could run a 320x240 app on an 800x480 screen, and it would be scaled or letter boxed. Google needs to move in this direction fast.

Android has native scaling. You can demonstrate this with an Android tablet, like a Galaxy Tab. Unlike iOS, if you open an Android app in a tablet, let's say Tweetdeck for Android, it would go full screen regardless of the non standard resolution.

Fixed resolutions are more of an issue with games.
 
  • Like
Reactions: EarlyMon
Upvote 0
Android has native scaling. You can demonstrate this with an Android tablet, like a Galaxy Tab. Unlike iOS, if you open an Android app in a tablet, let's say Tweetdeck for Android, it would go full screen regardless of the non standard resolution.

Fixed resolutions are more of an issue with games.

That's a tweak that Samsung is using for the Galaxy Tab to ensure compatibility with most apps. It's not an Android feature. It's something that Samsung made a big deal about.
 
Upvote 0

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones