Android GPS Testing Tool

The Android GPS Testing Tool is a must have tool for any Android developer using GPS or network location data. It’s intended to help developers, hobbyists and scientists understand the internal workings of smartphones and tablets so that they can build better applications.

It’s completely configurable via preferences so that you can quickly and easily cook up scenarios and test them out. Use it to compare cached results versus real-time data as well as plot all of it on a map.  The source code is included to see you can see how all of it works, and if you want to get started immediately simply grab the .apk file. So have at it and let me know what you think and what could be improved.

What are some example scenarios that I can test with this app?

  • Test how long it takes for GPS to provide it’s first update after the app is started
  • Compare and contrast Network locations with GPS locations
  • Study cached network and GPS data that is provided at app startup.

What data does it provide? Here’s an overview of the raw data you’ll be able to see:  

  • Cached Network location data (includes date/time, accuracy, time to retrieve)
  • Cached GPS data (includes date/time, accuracy, time to retrieve)
  • Real-time GPS (includes date/time, accuracy, time to retrieve, speed, heading, altitude)
  • Real-time Network location (includes date/time, accuracy, time to retrieve)
  • Best available provider
  • Most accurate provider
  • Satellite data dump
  • GPS NMEA string

What are some of the configuration options? Here are some of the configuration options:

  • Use GPS and/or Network provider data
  • GPS minimum update time
  • GPS  minimum update distance
  • Network minimum update time
  • Network minimum update distance
  • Use Criteria such as accuracy, power and cost

I built v1.0 out of necessity to gain an understanding of the complexities and subtleties of the android.location package across different devices. No blog post can comprehensively explain how each individual smartphone or tablet will work as related to Location, GPS, GPSStatus, GPSSatellite, Criteria and LocationManager using different providers such as GPS and Network.

Furthermore, when I was first starting out building Android apps, I found all the different options confusing in terms of what they did and how to easily compare results both literally and on a map.

My wish list for future updates includes:

  • Fully flesh out the ability to use all of the Criteria settings. V1.0 uses a subset of all the possible Criteria.
  • Ability to monitor passive updates.
  • Ability to monitor battery usage.
  • Output all data in csv format so it can be graphed over time.
Resources

Get access to the source code on github

Get access to the application file (.apk)  – click on the “View Raw” button and it should download to your machine.

[May 29, 2013: changed URL to the downloadable .apk file)]

Going mobile Part 3 – This blog is now mobile enabled!

The Page Not Found Blog is now mobile enabled! Please send me your feedback. After months of research and several months of fiddling around the mobile template is now live. You should only see the template if you are using a mobile device.

As I’ve mentioned before, I’ve taken the approach of using two different templates for a single website. One is specifically for desktop browsers and one is specifically for mobile. It’s all an experiment anyway, so whatever happens is a learning experience.

The current mobile template settings are fairly bare bones, but I did that on purpose to speed up load times. I’ll tweak the look and feel as time goes on.

There are also still a few rough edges related to my legacy content that I personally noticed. For example, some images are displayed in odd places when viewed on mobile browsers. But, so far the WordPress tags seems to be displaying just fine, which was a major concern for things such as code snippets. I’ve tested the site using an Android v4.x device and an iPad 3.

References

Going Mobile with Blogging

Going Mobile Part 2 – Dealing with legacy content

Smartphones greatness hampered by limited cell and internet service

Compared to good old land-line phones, smartphone reliability is mediocre at best because it largely depends on you always being connected to the internet. This post brings to light that we’ve traded massively reliable twisted pair telephone service and mostly reliable home internet for something that, at least to me, is barely tolerable and only just “good enough”. Smartphones have become popular in spite of connectivity issues. Where are still in the stone age of cellular service.

How dependable? You could “always” depend on the old fashioned, hard-wired land-line phones to work even during natural disasters. In fact, I once grabbed a pair of phone wires from the rubble a house completely destroyed by a Class 5 tornado and was able to use a field phone to make a call. Try to do that with a smartphone! Nowadays, most of what we do with our smartphones is 100% dependant on an internet and cellular service connection. And, it’s not like you are dragging around a dedicated T1 service and ethernet cable where ever you go. If the cellular connection is bad we either have to wait until we can find a Starbucks with WiFi or simply go without phone calls, text messages, emails and surfing the internet. In fact even Starbucks connectivity can be spotty if there are a lot of people at Starbucks working on uploading or viewing their family Christmas picture albums. 

No internet connection? Sorry, but you won’t able to use Skype and gasp…you’ll have to use your cell phone minutes to make a voice call.

Overloaded system. Cellular companies are making it even more challenging with tiered pricing for internet usage, phone plans that don’t include roaming, and congested networks that are sloooowly being upgraded. They say these pricing approaches help maximize existing bandwidth for everyone, or perhaps it’s to help them maximize revenue?

It also seems that the rate of smartphone adoption may have outpaced the networks ability to keep up in many dense urban areas and outside of those areas away from major highways you may just be stuck without cellular service if you don’t have a landline.

Spotty coverage areas. There are certain parts of my house and certain areas at work that have dead zones to cell service. I work in a densely populated urban area and some co-workers, depending on which cell service they use, have to step outside to get a “good enough” signal to carry on a conversation. It’s becoming more common for cell providers to offer private amplification repeaters that improve service to a specific house or building, and the funny thing is these rely on good old land-line connections.

How about in emergencies and disasters? If a cell tower goes down then all communication is wiped out completely…remember Hurricane Katrina and Sandy? If/when cell service is restored and you still don’t have power at your house, you will have to turn off your phone and use its remaining battery life wisely. Turn it on, make a quick call or send/receive text messages and then turn it off again. And, when the battery is dead…it will stay dead until you find a working power outlet.

What’s the future hold? What I’d really like to see is guaranteed service, like the uptime agreements we used to have with T1s, T2s and T3s. You could expect a minimum amount of service and generally speaking the provider would try and meet those conditions. With the way cell service is distributed today it’s anyone’s guess whether you have access to cell or internet at any particular point in time.

Probably the best thing to do is call your provider and complain when coverage needs improvement. Most companies seems to document these issues although its not clear who looks at that information. It seems reasonable however that the more people giving feedback the better information the cell providers will have to make decisions.