Open Street Maps. On android you can use osmand from fdroid
With that said, I've noticed that OSM does not have a lot of addresses, especially for residential areas, so I would recommend pairing that with gps-coordinates.net two convert street addresses into GPS coordinates.