After a year and a half on the Android Market, Restart Connections hit 50k downloads today, so I thought it was a good time to offer some insights into which networks and/or devices appear to be causing users the most connectivity grief.

The App

Let us quickly discuss the app itself. Restart Connections sits at 24.9kb, the icon is 22.5kb (90%). In other words, it’s about as simple and stripped down as an android app gets.

Restart Connections - It’s as straight forward as that.

How does it work?

Surprisingly, there are a number of techniques to ensuring connections are restarted fully. From switching on and off airplane mode, to overwriting APN settings and restoring them. I’ve tested all of them. My conclusion was that for speed, effectiveness, and cross-device compatibility, the simplest solution ended up winning. A simple case of enabling and disabling airplane mode is all it takes.

public void RestartConnections() { // turn on aeroplane mode changeAeroplaneMode(1,true); // turn off airplane mode changeAeroplaneMode(0,false); this.finish(); }

Why would anyone use it?

Because connectivity can be complicated, and somewhere between android, the device manufacturers, and the networks, errors occur. I kept finding my phone stating I had a 3G connection, but any attempts at data access would fail. Restarting my connections fixed the problem. Whilst clearly it’s a hack, the underlying problem is not one I am able to solve as an app developer.

However, with enough users, we should be able to narrow down where the problems lie…

Insights

The one common theme to users of my application is this, they all have connectivity issues. I haven’t advertised my app (this is my first blog post about it, and my second blog post ever!), it’s there on the marketplace to be found if you need it. Hence, I feel safe to assume all of my users had a problem, searched for a fix, and came across my application.

My analysis will take the form of comparing my percentage of users, to the percentage of users generally in the Tools category on the google market. Hence, if 100% of my users were Android 2.2/Nexus One/Verizon users, and only 1% of users generally were Android 2.2/Nexus One/Verison users, I would conclude that the Android 2.2/Nexus One/Verizon Version/Device/Network was one that caused connectivity problems. Thankfully, Google provides this distribution in the developer console, which is where I will draw my data from.

So let’s look at the data Google provide for all developers, and see what insights can be drawn…

Android Version Analysis:

Looking at the android version figures in comparison to the average distribution, you can see it’s fairly evenly spread accross the board. I would expect that if a certain android version had connectivity issues, this would stand out.

The only hypothesis I could generate from this is that Android 2.1 may be extremely stable, or have some kind of code to combat connectivity issues, as the usage is extremely low for this version.

Android 2.2, and Android 4.0 stand out as slightly more users than average. Probably not enough to draw any real conclusions however.

Winner: Android 2.1

Loser: Android 2.2

Network/Carrier Analysis:

Probably the most interesting insight comes from our usage with respect to carrier. Let’s take a look:

35% of my users are on Verizon, and generally speaking Verizon users make up 12.5% of the users of apps in the tools category. Therefore, I would posit that Verizon have a disproportionate extra number of users, to the tune of 2.4x what I would expect. Verizon clearly has some network problems!

MetroPCS, at 3.9x of what I would expect also stand out considerably as having users with problem connectivity.

And Virgin Mobile, whilst only having 800 users, have 5.9x the number of users I would expect. Also pretty shocking.

Notable winners are NTT DOCOMO and SK Telecom, who despite both having greater than 5% of users on average, have less than 80 installs of Restart Connections each. (However, that could simply be because there are Japanese and South Korean language equivalents to my app, but without speaking Japanese/Korean, that is hard to ascertain)

In the US, it has to go to AT&T as the winners. I would expect 2.86% of my users to be AT&T customers, all being equal, and yet only 2.22% are. Hence, they are beating the trend, suggesting decent network connectivity.

Unfortunately, without a better breakdown of the top carriers globally, further analysis is going to be guesswork.

Winners: NTT DOCOMO, SK Telecom & AT&T (US)

Losers: Verizon Wireless, MetroPCS & Virgin Mobile

Android Device Analysis:

Unfortunately, Google does not provide average distributions for devices. I presume it’s so that developers can’t work out rough device numbers in realtime, something manufacturers would no doubt be against as it would allow you to work out rough sales figures!

However, I will list the data anyway. Perhaps people can offer insights in the comments here, or on hacker news!

Conclusion

Whilst android version showed little insight, and specific device information wasn’t complete enough to draw any conclusions, our analysis of network carriers seems to be most enlightening. If anyone has further breakdown of carrier/device averages, or wants the full data, feel free to get in touch!

My advice would be to stay away from the carriers listed above (Verizon, MetroPCS & Virgin Mobile), and if you do run into problems, give Restart Connections a go, it’s helped 50,000 users so far!