OsmAnd is a free application for offline navigation using your Android terminal. You'll have to keep in mind that an Internet connection is required each time you plan to download maps or to update current ones. Another thing that you must take into consideration is the large amount of space that these offline maps will occupy on your device's storage.
Don't download maps for locations you don't need. The user interface is really friendly and you should start by pointing your destination in order to receive directions on how to reach that specific location. The app then comes up with multiple routes (if possible) and you can pick the one that works best for you. Each time you drive your car and you deviate from the original route, the software integrated within this application will come up with a modified route.
Another great thing about OsmAnd is the ability to display the speed limit for the current road you're on and even get alerts each time you go over this value. Besides receiving routes when you drive a car, this navigation app also works with other transportation methods like the public transportation system, cycling and even walking.