Most hiking navigation apps can record your track while you hike. So why install a separate GPS logger?
There are a few good reasons. You may want a lightweight application whose only job is to record your position, without maps, routing and other navigation features consuming resources. You may want a reliable GPX recording running independently from the app you use for navigation. Or perhaps you want a detailed recording that you can later analyze, edit or process with other tools.
For this article I tested two free and open-source Android applications designed specifically for this job:
Both can run in the background and record your position to GPX files, but their design philosophies are quite different.
I used both applications simultaneously on several walks, experimenting with their settings and comparing the resulting GPX files. For another point of reference, I also recorded some of the tests with GPX Viewer Pro, the commercial navigation application I normally use when hiking.
The tests were performed on a Google Pixel 10a, which has proven to have a capable GPS/GNSS receiver. This is important, a recording application can decide which location fixes to keep and how to process them, but the underlying positioning quality still depends heavily on the phone.
BasicAirData GPS Logger is a free and open-source Android application focused specifically on recording your location and path.
It deliberately doesn't contain maps. Instead, it concentrates on recording, showing GPS information and statistics, adding annotations, and exporting tracks in GPX, KML and TXT formats.

It can however invoke the viewing of tracks in other apps capable of displaying GPX tracks on your phone. This is also the case for tracks that are still being recorded. The following screenshot shows a snapshot of a GPX track being recorded in GPS Logger, viewed in Organic Maps.

The application works offline and is available from Google Play. Its source code is also available on GitHub.
Links:
One feature particularly relevant to hikers is automatic altitude correction. GPS altitude normally refers to the WGS84 ellipsoid rather than directly representing elevation above mean sea level. BasicAirData can apply a geoid correction so that the altitude written and displayed by the application is much closer to the elevation hikers normally expect.
Once the required geoid data has been downloaded, this correction also works offline.
BasicAirData's approach to recording is quite aggressive: by default it records very frequently. In my tests it produced almost exactly one trackpoint every second. That makes for large and very dense GPX files, but it also preserves a great deal of the information provided by the phone's positioning system.
GPSLogger is another long-established free and open-source Android GPS logger.

Links:
The application is highly configurable. Besides GPX it can log in several other formats, including NMEA, and can upload or send positions to various services directly. Logging intervals, accuracy requirements, distance requirements and GPS behavior can all be configured.
GPSLogger used to be available from Google Play, but was removed in 2020.
This wasn't simply a case of an abandoned application. Its developer explained that GPSLogger had repeatedly run into Google Play policy and compatibility requirements. One of the underlying problems was GPSLogger's deliberate support for older Android devices. A significant portion of its users were using older hardware, and the developer didn't want to abandon those users merely to follow Google's continuously changing requirements. After another removal from Google Play, he decided that continually adapting the application to Play Store requirements was no longer worth the effort and moved GPSLogger to F-Droid.
That history still reflects one of GPSLogger's strengths today: the current F-Droid release supports Android 5.0 and newer.
For someone wanting to turn an old Android phone into a dedicated GPS logger, that may be an important advantage.
At first glance these applications appear to do almost exactly the same thing. After using them, I don't think that's really the case.
BasicAirData is strongly oriented toward obtaining a dense recording of the GPS data. It continuously receives locations and, in my tests, reliably stored approximately one point every second.
GPSLogger is much more oriented toward configurability and power-efficient periodic logging. For example, its default logging interval is 60 seconds. It can switch GPS off between fixes to conserve battery. There are settings controlling how long it should wait for a sufficiently accurate fix, minimum distance, accuracy filtering and whether GPS should remain active between fixes.
That philosophy makes sense for many GPS logging applications. If you want to record your position periodically for many hours, perhaps on an old phone, recording a point every second is unnecessary and expensive.
For hiking, however, I generally want a reasonably detailed representation of the path I actually walked.
So I took both apps outside.
I performed five tests of increasing length, running the applications simultaneously on the same phone. This is important because it largely eliminates differences caused by the GPS hardware, satellite visibility and environmental conditions.
The tests involved realistic scenarios with sections of poorer GPS coverage, breaks with stationary movement, etc. The early tests were particularly revealing: when the applications recorded positions at approximately the same time, their coordinates were often virtually identical. They were receiving the same underlying Android location fixes.
The interesting differences came from what they did with them.
One of the first differences I encountered was GPSLogger's default 60-second logging interval. That may be perfectly appropriate for some logging applications, but it is too sparse for the sort of hiking track I want to record. I therefore changed it to one second to match BasicAirData.
Surprisingly, GPSLogger initially continued recording approximately every six seconds. Eventually I discovered an important setting: Keep GPS on between fixes. GPSLogger normally allows GPS to switch off between fixes to conserve battery. Once I enabled this option, its recording frequency increased considerably.
This illustrates GPSLogger's design philosophy quite well. Battery efficiency takes priority by default, while users who need continuous positioning can configure the application accordingly.
During the first few tests I noticed occasional deviations in the GPSLogger track that weren't present in BasicAirData. In the following overlay of the tracks recorded by GPS Logger (red) and GPSLogger (blue), you can see a multitude of blue deviations:

Initially I wondered whether the applications were simply obtaining very different GPS positions. Further testing showed a more nuanced picture.
When the two applications recorded positions at approximately the same time, their coordinates were usually extremely close, sometimes virtually identical. Both ultimately rely on Android's location system and were normally seeing a very similar picture of where the phone was.
However, the applications don't necessarily request and record location updates in the same way or at exactly the same moments. Occasionally GPSLogger recorded significant positional excursions that were not present in BasicAirData's much denser track.
Whatever the precise cause within the Android location pipeline, the practical result was clear in my tests: BasicAirData consistently produced the cleaner and more reliable hiking track.
This became particularly noticeable during more realistic walks that included stops and some wandering around. GPS positions naturally move around slightly even when the phone is stationary, and accepting too many of these movements can substantially inflate the recorded distance.
BasicAirData consistently produced the cleaner track in my tests. GPSLogger offers an Accuracy filter that can reject less accurate fixes, but tightening it too much caused the opposite problem: too few points were accepted to produce the detailed track I wanted.
There may well be a combination of GPSLogger settings that provides a better compromise, but that is also part of the comparison. GPSLogger gives the user considerable control, while BasicAirData produced convincing hiking tracks with very little configuration.
I also involved GPX Viewer Pro in some of these tests. GPS Viewer Pro is the navigation application I normally use for hiking and recording my tracks.
Its recordings generally agreed well with BasicAirData, but the two applications take quite different approaches. GPX Viewer filters locations before storing them, producing a much smaller GPX file. BasicAirData preserves a very dense recording, typically around one point per second.
This makes GPX Viewer tracks compact and immediately useful, while BasicAirData retains considerably more of the original positioning information.
For a dedicated GPS logger, I see that as an advantage. A dense recording can always be filtered or simplified later, while discarded points cannot be recovered.
There is a consequence to storing so many points: simply adding the distance between every consecutive coordinate can overestimate how far you actually walked.
Even a stationary GPS receiver moves slightly on the map. During one test I accidentally left the phone recording for another 10–15 minutes after finishing the walk. Both BasicAirData and GPX Viewer recorded small movements around the stationary position. Add every one of those movements together and they become additional distance, even though the phone hadn't actually gone anywhere.
BasicAirData handles this by calculating its displayed distance separately from the dense GPX recording.
Instead of adding every pair of consecutive points, it uses the reported GPS accuracy to decide when the position has moved far enough to count. In simplified form, the new position becomes the next distance anchor when its distance from the previous anchor exceeds the combined accuracy estimates of the two positions.
This suppresses much of the small GPS movement that occurs while standing still.
There is a tradeoff. On a winding trail, skipping intermediate positions can replace part of the actual curved route with a straight line between two anchor points, slightly underestimating the distance.
GPX Viewer takes the opposite approach: it filters the points before storing them. As a result, simply calculating the point-to-point distance of its GPX file tends to produce a sensible figure.
I prefer BasicAirData's approach for a dedicated recorder. It preserves the dense original data, leaving the option to apply better filtering, smoothing or analysis afterward.
Altitude was another area where configuration mattered.
With altitude correction disabled, BasicAirData and GPSLogger produced essentially identical elevation values, confirming that they were receiving the same underlying altitude information from Android.
Both applications can convert this to elevation relative to mean sea level. GPSLogger provides a Use MSL instead of WGS84 option, while BasicAirData offers automatic geoid-based altitude correction.
For hikers, this is an important feature to enable. Raw GNSS altitude can differ substantially from the elevation above sea level that we normally expect to see on maps and hiking tracks.
For my purposes, the answer is BasicAirData GPS Logger.
GPSLogger is an impressive application and may actually be the better choice for some uses. It is extremely configurable, designed with battery efficiency in mind, supports numerous output and upload options, and continues to support remarkably old Android devices.
If you have an old phone that you want to repurpose as a GPS logging device, it is particularly interesting.
But for recording hiking tracks, I found BasicAirData considerably easier to trust. Its default behavior is much closer to what I want from a dedicated hiking recorder: start recording, put the phone away, and end up with a detailed GPX track. Across my tests it consistently produced dense one-second recordings without the large positional excursions I encountered with GPSLogger. Its automatic altitude correction was excellent, and its simple interface suits an application that may spend most of a hike running unnoticed in the background.
There is one important qualification. All of these tests were performed on a Google Pixel 10a with a good GPS/GNSS receiver. BasicAirData cannot turn poor GPS measurements into accurate ones. On an older phone, under heavy forest cover or in difficult terrain such as deep valleys, results may be different.
If you want the smallest possible GPX file, recording a position every second isn't necessary. But if you want a high-quality, dense source recording that can later be analyzed, corrected, filtered or simplified by other software, BasicAirData GPS Logger is an excellent choice.
For a hiker who cares about the quality of the GPX track they bring home, that's exactly what a dedicated GPS logger should do.
Powered by FastComments