Posted
by
samzenpus
on Sunday February 05, 2012 @10:08AM
from the best-of-class dept.

First time accepted submitter creativeHavoc writes "Forbes author Tomio Geron takes a look at data accrued by mobile app monitoring startup Crittercism. After looking at normalized data of crashes over the various mobile operating system versions he compares crash rates of apps on the two platforms. He also breaks it down further to look how the top apps compare across the competing mobile operating systems. The results may not be what you expect."

I've decided to opt for a Samsung Galaxy Nexus Android 4.0 device from SaskTel when I eventually get a smart phone (subject to new models coming out from Samsung or HTC and sold by SaskTel), but that's because it's a Java-based system I already have the tools to program, not because I'm concerned about app stability overall.

In fact, the odds are I won't use the thing to run too many apps if what I need is already included: email/web, GPS mapping and routing, and Java applications (including one I'll be w

The $600 device's main purpose is NOT to make calls. It's an internet communications device that just happens to make phone calls. The people who insist that basic phones are just fine need to figure out this slight, but important, distinction. Buy an internet device if you want internet, but don't compare it to a phone.

So is a BB 9810 or 9900 not a smartphone? I went down this route because many of our customers are of an age that they still use voice when I wouldn't, and the telephone functions on BB are still excellent. I have quite bad hearing, but my 9810 works perfectly for me.

Actually I miss my old BB as it was a good phone and gave me email. It may be a smart phone, but it never had the apps that the Google and Apple offerings have.I haven't used a BB in a couple of years now so I have no idea what they are like now. I will be checking them out though on my next phone purchase as I do not want another Android or Apple phone.

Perhaps age has something to do with it, but I really need the phone functionality to do my job. It seems that every time I need to make a phone call wit

I completely disagree. Before I got my Droid 2 phone (Android phone from Verizon) I didn't think that a smartphone would be much different from a boring phone. And, I really loved my old Motorola StarTac flip-phone; I was reluctant to go from that to the comparatively massive Droid 2.

Here is what I have found:

It's kind of nice to dial just by clicking on the screen. I mostly dialed numbers directly on my StarTac, with only a few numbers coded into numbered memory slots; now I look up my friend, point with my finger, and the phone dials. It's really a large step forward in usability.

It's also really nice to call businesses that are not in my contacts. I Google search for, say, Joe's Plumbing, then click on the phone number in the search results with my finger. Sometimes Google even puts a GUI button in there, "call 425-555-1212" The Phone app launches with that number pre-loaded, and I just hit the big green "initiate call" icon.

Google Voice Search is also really nice. I pull out my phone, hit that icon, and say "call James Johnston at home". And by golly the voice recognition works, it looks up the name in my contacts, and dials for me. I like this so much, I want a hardware button on the side of the phone to trigger the Google Voice Search feature.

Google Voice Search even works with businesses and other names not in my contacts, although it's much less reliable. The voice recognition doesn't do well with words that are not in Google's word list, but sound sort of like words that are. So if I try to search for "Vetco Electronics" it matches as "Petco Electronics" which isn't very useful. (However, for words that are in the list, or words that sound nothing like any word in the list, it works well. I can ask it to search for "Umpqua Bank" and it nails it. Hmmm, I suppose "Umpqua" could be in the list, but it seems unlikely.)

Not really exclusive to a smartphone, but the Droid 2 is the first phone I have had with a really usable speakerphone function. I bought a Bluetooth hands-free headset so I could legally talk while driving; I never use it, I just use the speakerphone function.

What is the command in BASIC for calling someone?The closest I can think of is GOSUB, but I'm afraid that's not going to pull the trick.

I think if you want to be pulling tricks, then you need to get people to be calling you. So you'll need to advertise your number with something like a "PRINT". And then repeat that lots of times to try and get past all the people flagging you on CL

It's more than just bad apps. I got an iPad a couple weeks ago and safari has crashed several times. I never have more than 5 tabs open. I have also had Skype crash as well, but I don't know how well that code is written.

Safari is crashing for me quite a bit recently with just one or two tabs open. In fact most of the other apps appear to be quite a bit more stable than Safari. I realize that rendering pages from many different authors is probably difficult, but it's happening pretty frequently now.

I agree, safari crashes quite a bit, but it seems to be on particular websites. I'm on my iPhone now typing this, iPhone safari works great on/., but some ad heavy sites cause problems. From my experience it's usually smaller blogs and such, most of the Internet works fine. Besides there's several other browsers available for iPhone, opera probably the best IMHO

The Skype app crashes all the time, and it's almost always iOS's fault. If you go through the diagnostic logs, you'll see that almost every time that Skype "crashed" it's because it's either using "too much memory" or because it "didn't respond fast enough."

I wouldn't call that iOS' "fault". Mobile devices have very limited resources. This isn't like a desktop machine where you've got several gigabytes of memory to play with. If an application is badly behaved and it uses too much memory, that has an effect on the rest of the system. There's only so much memory to go around. Also, if using lots of memory becomes normalised, there's pressure to add more memory to newer models, which will result in lower battery life.

I'm an app developer, and if I ever see that one of my projects is killed for not responding fast enough, I know that there's something very, very wrong somewhere. Usually it's a sign that a junior developer decided to do something processor or network intensive synchronously on the main thread, which is a big mistake. You do what is necessary to get an interface up, and you push everything expensive into the background and update the UI when it finishes. There's no excuse for an application not responding quickly enough, it's easy to do.

If you really think Skype is not at fault, how do you explain the fact that it crashes all the time on other platforms as well?

The problem is that in some cases iOS doesn't reclaim the memory. I have to force reboot my iPad once every week or two as it leaks memory to the point that some slightly heavier applications (like Fruit Ninja) can't even start without being given a "kill -9" (and that's what iOS does by the way).

In the short term, I'll probably opt for a BASIC voice-and-text flip-phone of some kind, because I can't afford (nor stomach!) spending $600 on a PHONE whose MAIN purpose is to MAKE CALLS when I can get a $70 model that will take care of that primary function just fine for now.

Its a common perspective, but first of all most people (at least in the US) buy their phone subsidized with a contract renewal, so the price for even a top-tier phone is $200-$300. Second, for me personally after using smartphones for a few years, I view it as the most significant personal (non-work) computing device I use daily. I definitely use it more than my home PC and tablet combined, and can therefore justify spending top dollar on a quality "phone". I won't make assumptions about you, but I know many people who found, when they get a smartphone, that its main purpose is NOT to make calls.

but I know many people who found, when they get a smartphone, that its main purpose is NOT to make calls.

That is so true. And let's not forget that, at least in Android's case, there's a built-in SIP stack so you can make cheap data calls. Of course, you could also run Skype on Android and iOS. There are a couple of VoIP providers (I understand that VOIPO [voipo.com] is one) that let you use your SIP credential on your phone. In any event, even if your main thing is making voice calls, a smartphone can help save you money there.

Oh, sure, if I want to lock in to a $150+/month contract for 3 years to get unlimited local voice, text, data, and 10 hours of North America long distance/month, I can get the same device for under $100. But that's one HELL of a contract to lock in to in order to save a few bucks now.

Yeah but are you going to get the plan anyways? It does lock you in, but if you were going to get the service, there's no reason to not sign the contract just out of principle. And you can get cheaper plans. Me, for example, have organized a 5-line family plan on Sprint and pay what divides up to about $40 per phone for unlimited everything smartphones.

An iPhone 3GS is pretty much EOL. You know that iOS versions past 5.1 are highly unlikely to support them because Apple always drops the version 2 behind the current, and the 3GS is up next. It's free because it's just that far behind.

Its the hardware not the OS that decides such things. Apple will most likely always offer three hardware generations, the latest starting at $200, the previous at $100 and the oldest at $0. The 3GS won't go away until the iPhone 5 arrives and pushes the iPhone 4 into the $0 position.

For now the the 3GS has the current version of iOS and all the new functionality that comes with it. Since the 3GS is current in this respect and is still being sold it is still targeted by developers today. It may not be new

Going to spend $600 just to be cool? Ok. But lets be honest here, the iPhone makes phone calls just fine. Using the default Apps is also just fine. A beautiful user experience. It's only when people go totally gaga with the apps downloading every spammy, game demo, half-assed implemented app, by the dozens (or even hundreds)....then its not wonder things start crashing. As for QUALITY apps, there are arguably more of them available for iphone than android...then again, most major apps have versions for eac

I understand the logic. But my reality is not as limited as that suggested by parent post.

1) I kayak in estuaries ("you are in a maze of twisty channels that are all alike...") and bicycle in towns that I do not know well. I needed to get a personal GPS as soon as I could afford one.

2) My primary computer is my netbook because I can take it everywhere so it sees much more activity than my desktop workstation. Having secure wifi access at any park bench or cafe table I set down to has become important to

Bad apps crash -- sure. But *worse* apps may appear to keep working while storing up later trouble for the user.

Whenever I see a list of software fault types with "crash bug" at the apex, I cringe. When I led a software team, I had to de-program developers who were trained that crashing is the worst possible thing an app can do. It isn't. There are many worse ones, such as leading a user to trust false data, exposing sensitive information, and losing or corrupting a user's work. The worse thing about a crash in the absence of data loss or long recovery time is that it undermines user confidence. It's often possible for a well-architected app to crash (due to programming faults of course) with no serious implications for the user.

Crashing per se isn't a problem. It's a *symptom*. This is important! I've caught developers "fixing crash bugs" without addressing the real problems: failure to program defensively around unexpected conditions like bad input or inability to secure resources like memory or file references. I've seen super-general exception handlers buried way down on the stack which catch every possible exception and quietly attempt to restore the semblance of operation, even though they can't possibly know whether the application is in a consistent state, or whether it is holding orphaned resources. Programmers do this because they've been inculcated with the false notion that crashes per se are terrible things. This leads to hiding the symptoms errors rather than fixing the errors themselves. Hiding the cause of a crash increases the probability of faulty information, loss of data, and shipping a release with serious defects.

So don't treat crashing as a problem, but as an alert signal. A crash in itself is benign, an honest recognition of failure if you will.

Sorry, just not true.
Before the iPhone, an unlocked Treo 650 cost about USD 650 (without contract). Some fashionable dumb or feature phones - like the Matrix Nokia chromed slider - retailed up to USD 1000 at the time - with contract and all.

I live in the US and if your on T-Mobile, you can buy a phone outright also. They will even tell you how much of your bill is designated to pay off your loan if you decide to take their interest free loan for the phone.

I was just looking at phones yesterday to upgrade my son's phone. The Galaxy S II is $550, and you can get a perfectly fine Android phone for $250 without a contract. Par of the high price of Android phones is that everyone want the latest and greatest phone, which will be noticeably mo

It is they, who in collusion, raised the price of buying a phone to astronomical levels. Remember when the highest price for an unlocked phone was usually $200? What phone broke that trend? Iphone.

It ended up making the carriers a ton of money even though the consumer gets screwed.

And of course other vendors jumped on the chance to offer similar products for a lower price, right ? There are vendors out there getting killed and yet they don't offer smartphones for significantly lower prices in order to scoop up marketshare. That seems to indicate they can't undercut current prices.

but the most popular phone leading up to iphone was the RAZR (2004). initial price in the states was $600 bucks.

http://gizmodo.com/270353/the-razr-taught-us-that-the-iphone-is-priced-juuust-right [gizmodo.com]It was 2004 when the RAZR launched in the US as a high-end design clamshell. It was $600, with a $100 dollar rebate from Cingular. yes, soon after launch the price dropped precipitously much like smart phones now. today you can get an android or ios phone (NEW) for just about every price point from free to 800 bucks.

oh, and don't forget the venerable StarTAC. 1996 - ONE THOUSAND DOLLARS (http://en.wikipedia.org/wiki/Motorola_StarTAC).. a primary selling point of which was support for OMG.. wait for it.. SMS....a free iphone 3GS is as capable as a laptop of the StarTAC era. Apple didn't set the bar, Motorola did - TWICE. Together the StarTAC and RAZR sold over 100M units.

I find myself wondering how many of the Razr owners also carried a iPod. and that when the iPhone launched, they replaced two devices with one. I suspect iTunes would make such a transition mostly painless, sync the iPod one last time, then sync the iPhone and be on your way.

Probably quite a few, since Apple did attempt to work with Motorola in the wake of the RAZR's success to make an "Apple-like phone" with the ROKR - which was a massive flop, but it was an early attempt to get music onto a phone in a more seamless manner than the unintuitive phone GUIs of the time.

I'm sure one of the data points on the graph of decisions will have been "how many RAZR users also carry an iPod with them?"

I don't think the prices are unreasonable -- it's an extremely compact device with a lot of FLASH memory, a screen resolution better than many laptops, and better battery life than most laptops. The Apple devices sold by SaskTel are marginally cheaper in many cases, more expensive in others, depending on which model you get.

But for me, the main purpose is to develop for the phone, not to use it as a phone, so when you add in the cost of a Mac and software to program for iOS devices, the Android platform wins by a HUGE margin.

If it's an option, I might even just by the Android device and use it with WiFi for testing rather than actually signing up to a service contract. On the flip side, it's the long distance charges that hurt, so I decided in the end that I'll stick with a voice-data-text cell plan for $60+fees+tax per month, and spring the $100 to have another land line installed for "the office phone." Long distance on a land line is barely HALF the price for UNLIMITED calling in North America!

iOS crashes more than Android (for those who don't feel like trawling through the (not brilliantly formatted) article.

* for apps which use Crittercism's [crittercism.com] crash reporting component. That's important since we do not know which apps those are and if they are representative for the whole software catalog for the devices. Only Apple has all the crash reports across all iOS apps (and even then only for people who haven't disabled the sending of crash reports.) Maybe the jailbreak guys could compile some interesting stats, since they've released a tool to upload your crashlogs [greenpois0n.com] (Cdevreporter) to them to aid in jail breaking.

You would have to opt into error reporting in iOS to allow Apple to collect that info. It is not enabled by default.

This report isn't particularly useful since it only represents a small subset of those apps that leverage Crittercism. It says nothing about those that don't, or what percentage of typical apps on a phone this data represents.

It's normal that you only have statistical data of a small sample of the group that you are trying to make a general statement about.

Exactly. So the question is is the sample representative ? Impossible to say without knowing who participated. If you polled 100.000 americans the results might be questionable if the majority of those were living in a homeless shelter, are prison inmates or the ultra rich. The sample is everything. In this case the results might be skewed by the fact it's companies that installed a crash-tracker, meaning it might be people who already have trouble with stability, or it might be predominantly popular among

Out of my 30 or so friends with smart phones for more than 2 years, 1 of the iPhone users switched to Android. Of the 14 people I knew who bought the first droids, 10 now have iPhone 4Gs or 4GSs. Only 4 elected to get another android phone. When I asked why, the reason was they wanted an iPhone 2 years ago, but going with AT&T was not an option. So android was the best they had. My friends wanted to stay with Verizon or Sprint. Well now that the carriers have iPhones people are getting what they

Personally I like the Apple model most because as consumer I prefer an app crashing than becoming unresponsive or worse

As a consumer, I notice that I see far fewer unresponsive apps on my Nexus than I did with my iPhone 4. This is probably partly due to the fact that the Android OS is so quick to intervene and offer to forcibly close an app -- which turns an unresponsive app into a crash and would contribute to Android apps crashing more than iOS apps.

as developer I dislike having a jungle of try/catches.

Then structure your code so you don't have a jungle of try/catch blocks. If your exception handling code is complex, it's often a sign that the code in general is too complex and needs refactoring. It's a code smell [wikipedia.org].

My strategy on this is pretty simple. I refuse to put any try catches in a function (obviously not talking about Java here) until it is written and does roughly what it is supposed to do. Then I test is as well as I can and when it crashes unexpectedly I FIX THE CODE. Then when I've done that as much as I can stand, I might throw (get it?) In a try at a critical point to keep the program from crashing but I only do that if I feel there is a reasonable chance the application might fall over due to something

And Linux should crash more because it supports more architectures than Windows.

If you have bad drivers, it does. Which is the overwhelming reason for Windows crashes too, and the background for this argument. (Nvidia drivers were alone responsible 30% of total Vista crashes [engadget.com], which is quite staggering)

I'll reply here because you chose not to be a coward, but this response applies to the ACs below as well. Apps tend to crash when they are out of resources. Other apps will refuse to start when there are not enough resources to go around. Android has a nasty habit of letting apps hold their state in RAM so they start up quicker next time. To remedy that you visit the RAM tab of the task manager and tap "clear memory" I did this just now and it ended 12 ongoing processes to free up nearly 125MB of RAM.

Android has a nasty habit of letting apps hold their state in RAM so they start up quicker next time.

1) It's not "nasty".2) It's not "so they start up quicker", it's so they don't need to start again in the first place.3) The system will automatically kill background apps in this state if there's not enough memory to go round.

On more recent Android versions, simply long pressing the home button will bring up a list of in ram apps. From there they can be closed easily. Note that Android will tell apps to clear out once the ram gets tight (starting with the least used ones), but the process of doing so will be less than instant.

I'll reply here because you chose not to be a coward, but this response applies to the ACs below as well. Apps tend to crash when they are out of resources. Other apps will refuse to start when there are not enough resources to go around. Android has a nasty habit of letting apps hold their state in RAM so they start up quicker next time. To remedy that you visit the RAM tab of the task manager and tap "clear memory" I did this just now and it ended 12 ongoing processes to free up nearly 125MB of RAM.

I think you're having a conceptual problem here. There's nothing intrinsically wrong with having no "free" RAM. You're running a Linux box after all, and that's why you have a memory management subsystem. If there is not sufficient free RAM (or not enough in a contiguous block) for an app to start, the operating system will make space for it by unloading something that isn't currently running. Now, that make take a noticeable amount of time, depending upon the application and machine performance. In any event, every Android app is required to save its state when it is not in the foreground, so it can be restarted either from memory, or from the filesystem, exactly where it left off. It doesn't really matter whether the app is in memory or not, or whether you think you have no free memory... or not. It's the operating system's job to handle that for you. This is not an Apple ][, after all, this is a modern OS that's fully capable of managing its own resources.

Now, if what you're saying is that you're having stability or performance issues, odds are you have a misbehaving application (or a broken background service.) But that's not an operating system issue. Find out what's causing the problem and bug the dev to fix it. I don't know what kind of device you have, but I suppose it's possible that it doesn't have enough RAM to do what you want of it.

Objective C vs Java might have something to do with it. In Objective C the programmer has to take care of more low-level stuff so the potential for errors is larger. Also the compiler will catch fewer problems.

We'll be probably being seeing the numbers shift as more ios developers start incorporating ARC into their code. For those not in the know, ARC is compiler optimization that handles object deallocation for the developer thereby preventing the most common kinds of crashes. People often get it confused with garbage collection and while the end results are similar, ARC occurs only occurs at compile time so there is no runtime performance hit. It's a big win for developers and end users.

ARC isn't a silver bullet, and there are actual performance benefits to modern garbage collectors that ARC won't be able to take advantage of. Its really just auto-generated retain and release statements at all the most obvious points where you'd need it in code. It doesn't protect against circular ref leaks, and there are ways to structure your code that confuse it, requiring you to turn it off for the entire source file. It is nice that you can turn it off for one source file but leave it on for the rest of your codebase. And unless I'm mistaken, its still deallocating objects individually when their refcount hits 0, not giving you any of the bulk deallocation speedups that a generational garbage collector gives you. Garbage collectors have come a long way. The runtime cost of performing collection has gone way down, and for all but a few workloads is more than offset by the more efficient allocation schemes it gives you access to.

ARC isn't a silver bullet, but neither is garbage collection. If your code is bad enough to confuse ARC (and it is quite easy to achieve this), then the solution is not to turn off ARC, but fix the problems in your code.

I would be very interest to see the impact of jailbreaking in this analysis. Do apps crash more often on jailbroken devices? How does it compare between Android and iOS?

One of the main argument for closed down system, putting aside the money factor which no one gives as an official reason, is stability. I do not believe stability is considerably affected by jailbreaking or by the subsequent modification one could do to the OS, but it would be nice to have statistics and some analysis on this.

I would be very interest to see the impact of jailbreaking in this analysis. Do apps crash more often on jailbroken devices? How does it compare between Android and iOS?

One of the main argument for closed down system, putting aside the money factor which no one gives as an official reason, is stability. I do not believe stability is considerably affected by jailbreaking or by the subsequent modification one could do to the OS, but it would be nice to have statistics and some analysis on this.

Depends. In the Apple world, "jailbreaking" is simply to allow users access to system services and data that they would otherwise be prevented from using. In the Android world, "rooting" is primarily to permit the installation of third-party firmware, something which Apple would never permit since iOS is closed-source anyway.

It's been my experience that some of the better alternate ROMs out there are substantially more stable, and have fewer runtime issues, than the stock firmware provided by Google or t

What you are saying, is that the quality and stability of the specific apps available only to jailbroken devices only is lower. Not that the overall system less stable is.

This shouldn't be a surprise to anyone... the cydia-available apps don't go through any reviewing process (the one from the app store may be flawed, but it nonetheless a reviewing process - i'm sure a lot of buggy junk gets never approved for distribution through the app store). Furthermore, these apps often try to change OS featur

One of the reasons for app crashes is the proliferation of mobile operating systems on iOS and Android. As Apple and Google have released more new operating systems...

Apple has multiple mobile operating systems? Here i thought they just had iOS? Oh wait. According to this "professional" Google has multple mobile operating systems too! I must really be out of the loop. Maybe they should stick with just one OS and update it when they find bugs. Oh that would be cool! They could like call it the same t

Um, yes. Your correct. Microsoft has made significant, complete, total changes but still kept "Windows" in the name of their operating system. Considering the first version of Windows; Windows 1.0, Windows 2.0, Windows 3.0, wasn't even an OS, I would think that would be obvious. To say that Apple has rewritten iOS four times is absolute ignorance. To say that Google has rewritten Linux four times, when they haven't changed it even once, is complete stupidity.

Motorolas are horrible, I had a Milestone for five days before going back and getting an HTC Desire. I had the same problem with the phone completely locking up. So while your point is valid, I would argue that it only applies to certain manufactures, and I have seen iPhones completely lock up as well.

I have had to pull the batt on my droid 2 before and i love having that option. Lets face it sometimes things go wrong. I have an ipod touch in my car and every now and again it will lock up and freeze on me. but the worst part is the only way to recover it that I have found is to wait for the batt to die and start over

When I owned a Motorola Droid, there were several times when I had to remove the battery to recover from the phone completely locking up.

I don't have that option with my iPhone, but fortunately I haven't had the phone crash.

That's Motorola. If you want a stable phone, try an HTC next time. I still have a G2 I bought a couple of years ago and it's never locked up (except once when I flashed the wrong firmware, but that was my fault.) And I overclock the thing from the stock 800 Mhz. to 1.2 Ghz with no problems.

I was bored this morning, so for those interested, since the article makes it hard to extract this information:

All iOS versions total 84.36% of crashes; all Android versions total 15.49% of crashes. The worst offenders for iOS are version 5.0.1 at 28.64% and 4.2.10 at 12.64% (with seven other version listed at above 1% of crashes). The worst offenders for Android are versions 2.3.3 at 3.86% and 2.3.4 at 3.65%, with 4 other versions listed at above 1%.

I don't think this has as much to do with Android and iOS as it does with the state of software quality in general. The current state of software quality is abysmal, since the shift to scripting languages and web apps as the primary platform about ten years, the science and art of writing robust and reliable software for OO, event driven, asynchronous platforms like iOS or Android has become an almost lost skill. Unfortunately failure modes for these platforms are more dramatic than for web apps, in that you'll likely get a crash rather than 'error on page' message. The situation has been further exacerbated by management's insistence an always hiring the lowest quality developers they can find, outsourcing, H1 B's etc. If you use low quality and inexperienced devs, you'll likely get an unstable and and unreliable application on these types of platforms. This should be a wake up call to the industry in general in that we need to focus and engineering, quality and reliability, and not just minimizing cost.

Wait, this study shows 3.66% crash on launch rate on iOS? I realize maybe my personal experience will not align with the data and all, but I have had iOS crash on me once and six times I've seen apps crash or screw up to the point I had to relaunch them. That is over a period of several years. I'm guessing there is something weird with the methodology here, perhaps not a representative sample? Am I truly that much of an outlier?

For starters, it's not the OS that crashes...it's the apps. Let's look at how many app crashes take out the OS and make it crash...not studied.

As for the apps - Android is Java based - As such, it is afforded the memory protection that garbage collection entails - at the expense of speed. iOS apps tend to be natively compiled code. Memory management is based on reference counter - in the past, that was a manual process. Now, it's a little easier with the new XCode 4, but still and iffy proposition.

This chart has already been torn apart on Junk charts [typepad.com]. Basically their statistics and reporting are so vague as to make it worthless. But yes, you may be surprised... lies, damn lies and statistics.

The article did not clarify if they removed the "Low Memory" and "Active Assertions Beyond Permitted Time" entries from the crash log.

When iOS has memory demands it will kill suspended background processes and this shows up in the crash logs with a low memory reason. When a background process is running (not suspended) to complete some task (like downloading/uploading data, etc) and it exceeds the allowed execution time, iOS will kill it with an assertions beyond permitted time reason.

Neither of these are actual "crashes" as you might think of them and in fact users are often completely unaware the app was killed because when you switch back to the app it just reloads its state where it left off (and well-written apps actually restore your position in the UI).

If these two items weren't excluded then the results for iOS are worthless.

The article also pointed out that iOS 5 is new and there are likely to be crashes generated due to apps not being updated yet and that Android is likely to have a similar problem as ICS actually starts rolling out (or people buy new devices when they are stuck with a non-upgradable device).

...but the crashiest apps on my iPhone have always been the apps included with the OS. The AppStore crashes on me the most. The Mail app is second. It's very rare that any app that I've downloaded actually crashes on me. Maybe I'm just lucky.

So IOS 4 used cooperative multitasking (http://forums.pcworld.com/index.php?/topic/89287-apple-ios-4-vs-android-multitasking-which-approach-is-better-for-users/page__st__160) while I believe android uses a modern pre-emptive multitasking approach. I know IOS 5 has updated multtasking but it is unclear to me if they have gone to a full pre-emptive multitasking scheme.

iOS has always had a full multi-tasking kernel. It is Unix for crying out loud. I would write more, but obviously you don't care because otherwise you would have typed, "iPhone Kernel Multitasking" into your favorite search engine and found and read any of the top articles that the search engine provides. Go on, try it out, if you care at all, which I doubt........ And really, for "proof" you grabbed post #161 from random post on some article?

despite all of your rambling bullshit, you cannot write apps that will properly multitask for ios AND will get listed in the official market.

For someone who's spectacularly wrong you sure are arrogant. First off iOS is a multitasking OS in the original sense of the word, meaning processes are running concurrently, and it's multithreaded. But I'll let that go and assume you are using multitasking in the colloquial sense, namely running several apps at once and even there you are wrong [apple.com]:

"For tasks that require more execution time to implement, you must request specific permissions to run them in the background without their being suspended. In iOS

despite all of your rambling bullshit, you cannot write apps that will properly multitask for ios AND will get listed in the official market.

And here is what you don't get: That's a _good_ thing. As a user, I don't want apps eating up the battery life in the background. iOS is a port of MacOS X, so if Apple had wanted it, there would have been full unlimited tasking from day one. There's a good reason for the artificial limitations.

The most generally useful use of multitasking is to finish a task in the background. App starts a download, user switches to a different app, first app finishes the download in the background. That's there. It also

The anonymous that I was responding to was the one that used the term "cooperative multitasking" to describe iOS. Cooperative Multitasking has a very specific definition in regards to operating systems and iOS is definitely not a cooperative multitasking operating system. Once again, if you cared you could type, "cooperative multitasking" into your favorite search engine, click on the wikipedia link, and then read all about it.... If you cared..... Which you must not since you haven't already....