You might want to try OpenStreetMap instead of GoogleMaps. While you will not have such a rich dataset, it is FOSS you can still do a lot with it.
The Android OSM page is here .
I havenβt delved into offline caching too much, but as you can see, many applications have already been created using their set.
source share