An examination of mobile app crashes between Apple's iOS and Google's Android once appeared to suggest that apps crash significantly more often on iOS compared to Android. However, developers and analysts offer some explanations of why this occurring. As is often the case, the story behind the numbers is more nuanced and complex than a trivial clickbait headline can deliver.
The misleading nature of simplified statistics
Almost a year ago, Blancco Technology Group wrote in its Q1 2017 quarterly report covering an analysis of diagnostic reports from mobile devices that "apps crash almost three times more on iPhones than on Android devices."
That announcement generated headlines at the time, in the same way that a recent story claimed that Android users were "more loyal" than iPhone buyers, even though both the source and the site coaching the story (TechCrunch) were aware that Android as a platform was actually losing more users to iOS than the other way around— they even said so by the end of the article.
The case of crashing iOS apps parallels another statistic gleaned from the same diagnostic data: that device failures among iPhones began increasing with iPhone 6. As noted in a previous article, this wasn't due to iPhone 6 being a defective model, but was rather due to its success as a product. The way failures were being counted actually weighted the statistics to portray popular models as being more problematic simply due to their commonness.
The flip side of that statistic, however, exposed a more interesting idea: despite being similarly popular in terms of volumes sold, successive generations of iPhones reported fewer failures, indicating that they were getting qualitatively better.
Additionally, Apple's product mix of standard and Plus sized iPhone models has been incrementally shifting towards the larger Plus size over the last few years. Yet those newer Plus size models are not reporting more problems, in parallel with a sharp decrease in failures associated with standard iPhone models. Again, this is clearly because they are improving.
It's harder to make observations about Android because there is not a standard Android model. Quality varies considerably between makers and between models. However, Blancco has published quarterly reports that offer some interesting insights into the differences between the two platforms.
Why are iOS apps crashing?
One of the key reasons Blancco itself identified as a cause of iOS app crashes was actually related to Apple's frequent OS updates, noting an increase in app crashes around the release of major iOS updates.
Any changes to how an OS works (and its underlying APIs used by developers) can cause problems for app developers. Apple not has not only been aggressively rolling out major software updates and new features, but has also been rapidly pushing these changes into the mainstream. There appears to be a clear correlation between new updates and app crashes associated with these OS changes.
On the other hand, Android's inability to support devices for more than a year or two means that Android developers have to account for the likelihood of running on an older API platform. Overall, fewer updates from Google (supported by a subset of newer models) might mean less pressure for developers, but it also results in less impetus for third-party developers to adopt new technologies.Of the two billion active Android devices Google announced last May, "nearly half of these devices are two years out of date."
The problems with Google's Android software updates are getting worse. While the company keeps releasing new versions of Android, its deployment pace is slowing.
According to an analysis by Dan Luu, "something that wouldn't have been obvious without looking at the data is that the uptake of new versions seems to be slowing down."
He noted that of the two billion active Android devices Google announced last May, "nearly half of these devices are two years out of date." So while third-party apps may not be crashing as often due to issues related to major software updates, that's not exactly cause for celebration.
A good OS doesn't mean bad apps can't crash
Blancco also observed that app crashes on any platform are often the fault of developers. And just as popular phone models were associated with test failures due to their commonness, the most popular apps are showing up at the top of the firm's list of crashing iOS apps.
Facebook and its Instagram and Messenger apps were three of the top four most frequently crashing apps, with Google being the other one. The rest of the top ten included a variety of popular and frequently used social networking apps, including Snapchat, Pinterest and WhatsApp.
Facebook itself is also frequently updated. On iOS, it's currently at version 162! The company's other apps, such as Instagram, are also frequently updated. However, it appears that since Instagram added support for Android in 2012, the app has not kept pace with Apple's iOS platform. It appears that Instagram's filters architecture is based entirely on the less performant OpenGL ES rather than Apple's modern, A7-optimized Metal API for graphics. The most likely reason, apart from legacy, is to retain feature parity with Android. But it's also missing out on Apple's latest optimizations in graphics performance.
While Instagram's developers added support for Wide Color in 2017 (a feature that's not supported across the installed base of Androids), it still hasn't adopted major iOS image-related features including Live Photos introduced on iPhone 6s, zoom lens or dual camera support introduced with iPhone 7 Plus, or the Depth API and the TrueDepth camera of iPhone X.
In fact, Facebook's Instagram app continued to look terrible on iPhone X for months after the new phone's release (below). Its linked helper apps, including Layout for multiple image composition and Boomerang for animating video clips, not only crashed frequently but misdrew navigation elements in the "ears" on either side of the notch to the point where in some cases, the only solution involved force-quitting Instagram.
Just as with OS updates, frequently updated apps pose a set of challenges for stability. The only thing worse than the issues introduced by frequent updates, however, are the more serious problems associated with infrequent updates!
The top crashing apps on Android are parts of Google's platform
Something else that jumps out from the comparison of apps running on iOS compared to the crash data of apps on Android: crashes occurring on Android weren't the most popular third-party apps in common use. They were mostly Google services that are core parts of Android.
While apps on Android were reportedly crashing less often, the crashes that were occurring were Google's IMS Service (messaging), Address Book, and the part of Android that is most likely to be upgraded frequently: Google Play Services. Other code among the top ten in crashes are other components of Android itself: Stock Android, Messages and Mobile Transfer. YouTube and Google's search app were also top ten crashers.
That left only two of the top ten crashing Android apps that are not Google's code: Samsung's TouchWiz (which showed up prominently among Android devices despite only appearing on Samsung's own phones) and of course, Facebook. Other more commonly-used third-party apps such as Instagram, Messenger and Snapchat didn't even make an appearance in Android's top ten list of crashing apps because the platform itself was out-crashing them.
So despite the headline illusion that Android was a better platform for apps because third-party titles were crashing less often, the reality is that Android was crashing a lot all by itself. And among hardware issues, the data outlined that Google's camera app was also a frequent failure on Android.
Android suffers from high CPU, RAM and memory consumption
A year after noting the difference in crash statistics between Android and iOS, Blancco's latest quarterly report doesn't even reference the term "app crashes" at all. Instead, it observed that "Android phones suffer with performance-related issues such as high CPU, RAM and memory consumption, outdated software versions and misbehaving apps.""Android phones suffer with performance-related issues such as high CPU, RAM and memory consumption, outdated software versions and misbehaving apps."
So in addition to bad third-party apps, Google's Android platform also suffers core issues with managing CPU performance and memory use.
One of the recommendations the firm made: "updating to the latest Android software releases can help customers avoid some of these performance issues, as can shutting down extra apps that are running in the background, clearing their app caches and disabling widgets."
Turning off Widgets— a differentiating feature of Android— is something anyone can do, but many Android users can't install the latest Android software updates because either Google or the hardware maker doesn't provide them.
In fact, Google itself just cut off support for its own, newly two year old Nexus phones and its last remaining tablet, the Pixel C in the upcoming Android P. It's no longer an option to obtain the latest software releases for the majority of Android devices, and Google isn't even supporting its own mechanism introduced last year to extend hardware updates for any of its own Nexus models.
Again, the updated components Google does deliver for older Androids via its Google Play Services layer remains high on the list of Android's top-crashing code, giving Androids the least benefit of frequently updated OS features with the most drawbacks. Major releases of iOS can cause initial problems for third-party apps, but the advantages of those frequent, long-term, free updates tend to greatly outweigh any inconvenience.
Blancco also detailed that globally, OS-related performance related issues led the complaint list among Androids, while common hardware issues were all distantly trailing Android's OS faults. That suggests that the media narrative that says Google's software is wonderful and its licensees just need to do a better job of integrating it (or getting out of the way of Google's idea for Pure Android) is not accurate at all.
The Android platform is not simply performing well, and its largely Google's fault.
16 Comments
No huge surprise that the apps with the highest number of installs might be the ones with the most number of crashes.
What would have been more telling is what percentage of installs are seeing crashes. I suspect for instance Google Play Services crashes, an app installed on every single Google Android handset, on a percentage basis is exceeding low. This AI article just as in the original referenced 3rd party one from two years ago is yet another case where simple numbers don't tell the entire story IMO and in fact can be truly misleading, resulting in conclusions that the numbers don't actually prove.
On iOS in particular is anyone surprised that the most widely installed apps on the platform would have the higher number of crashes on a pure numbers basis? That does not prove the apps are more unstable than less popular ones obviously.
Just as the article bolded,
The misleading nature of simplified statistics...
I have seen this Android problem on both my aunts phone & my dads phone.
As Gatorguy mentioned, statistics about crashes can be misleading at the best of times, especially when it comes to 3rd parties.
Some things to consider:
- Crashing is not necessarily the worst thing that could happen. Worse would be undefined behaviour where things start going off the rails... there are sanity checks for safety in apps that crash for the user’s best interest rather than leading them down the garden path of a more and more buggy experience.
- iOS has a lot more devs, and a lot more *new* devs by consequence... as a dev myself, I see the sad state of development on an extremely popular platform... it can be... horrifying. I’m surprised things don’t crash more often. Android devs tend to be more experienced by requirement and by limited attraction.
- I’d be curious to see crashes as compared to app usage,a as iOS apps tend to get used more that android apps per device.
Thank you DED for the well researched article!
Everything on iOS is sandboxed. So if/when a app crashes it doesn't crash the whole phone normally. The app just shuts down and you can go and start it right back up.