I'm trying to develop and app that overlays some information on a google map.
I was wondering, if it is possible to cache at least a portion of this map, so that it could be used offline.
You can use an OpenStreetMaps controller (like osmdroid) and Google Maps tiles. According to the Google Maps TOS (10.1.3.b), it seems that you can use a portion of maps if you cache it temporarily and securely. Read more at this tutorial.