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)]

3 thoughts on “Android GPS Testing Tool”

  1. tried with two devices (SGS, HTC Sensation), with both I got a toasts :

    “There was a map problem with loading a layer: INITIALIZATION_FAILED”

    “Map not loading? Try restart application”

    after restart it is the same.. No GPS “catched” as well and I installed app for checking what is wrong with GPS.. :S

  2. Gotcha. I do know the current version of the app does not work in offline mode (no cell service). But, seeing if I could repro this showed me there could be a few bugs when the phone has no cell service.

    Did your messages happen while the cell service was either unavailable or the phone was in airplane mode?

    Did you see any other errors or messages in logcat?

    On a related note, I’ll look into what it would take to make the app work in offline mode.

Comments are closed.