1) Yes, it's possible. The way I went when I worked on a Google maps project was that:
First, using the Google Maps for Android API, put a map in your application.
Using the GPS, detect your position. Then, just send a request to the Google Maps online API to generate you a path between your two location.
Google maps will then answer you with the encrypted path to use (use this algorithm to decrypt the path http://jeffreysambells.com/2010/05/27/decoding-polylines-from-google-maps-direction-api-with-java ).
Once this is done, do whatever you want with the path. Know that the easiest thing to do, is to create a polyline thanks to the path, and then display it on the map. If you want to do a real GPS, the easiest thing to do would be to use intents between the Google Navigation App and your informations ( Android - Launching Google Navigation from an app )
2) For the integration of the map in your application, you have to request a Goole Maps for Android API key, that you can find in the Google Api Console : https://code.google.com/apis/console
For the Google Maps web service API, no key is required.
I let someone else answer to your 3).
More informations :
Google Maps API web service : https://developers.google.com/maps/documentation/webservices/?hl=fr
Introduction to Google Maps Android API v2 https://developers.google.com/maps/documentation/android/
Google Maps for Android API http://www.vogella.com/articles/AndroidGoogleMaps/article.html
Hope this helps!