Improvement: Save more battery inside buildings
Aquiring a GPS reading inside a building can be a drain on the battery because the system keeps trying and trying while it can't actually aquire a reading.
Suggestion: When GPS logger fails to aquire a reading, then pause for a while. Every time it fails to get a reading, the pause-time increases - to a maximum of, say, 5-10 minutes.
That way it would only try a GPS reading (and fail) 6-12 times an hour; but when you leave the building, it is tracking full-speed within a couple of minutes.
This could be combined with some kind of stationary-detection. If the logger finds it can only read no, or very poor GPS locations, and all of them seem to center around one point, it may conclude that the phone is inside a building, and it is not moving. It could decrease the scanning frequency. As soon as it gets an accurate reading, it can conclude it's probably outside (and moving) and it can go back to full speed logging.