If you want to show map content you can do it with Google Maps (already in Android libraries), or you can use different map data (e.g. OpenStreetMap).
There are two known communities amongst others, who developed a Android Library for OpenStreetMap data maps:
http://code.google.com/p/osmdroid/
https://code.google.com/p/mapsforge/
At today, the Google's Google Map View is the most easy to use API. Unfortunetly it's commercial in some points. For example, you are not allowed to develop an application showing google map content in combination with turn-by-turn guidance (cf. Google Maps Terms of Service: https://developers.google.com/maps/terms?hl=en ). In opposite, OSMDroid is free to use for everything.
There are many tutorials in the web, which teach step by step how to show the GPS location of the device on a maps content in your application. Some of them are:
Google Maps: http://www.androidhive.info/2013/08/android-working-with-google-maps-v2/
OSMDroid: http://android-er.blogspot.de/2012/05/display-current-location-marker-on.html
EDIT:
I received some question about if a turn-by-turn guidance navigation app is possible to implement (and publish). The answer is yes.
On a license view, you must not use googlemaps, but e.g. OSMDroid is fine here.
I have done this myself once using OSMDroid as a mapview library and OSMDroidBonusPack as Routing, Geocoding and reverseGeocoding library (the bonuspack has several more features, see all at the git repository
I wanted to provide another link to existing navigation apps implemented by using OSMDroid, but it seems they are no longer maintained for updates.