How nice does the user experience have to be? OpenTracks is a decent app for recording GPX tracks (if some map application supports importing tracks from outside the app, it will definitely support GPX), but that’s the only thing it does - you don’t even get a map in the app.