A couple of android apps I've found useful are Maverick and Oruxmaps. Maverick caches the maps you look at when online, so you could hoover up the Google maps you'll need before you go. Incidentally Maverick will do the same with OS 1:25000 maps in the UK. Oruxmaps seems a bit more comprehensive with its features, but recently removed access to non-free maps "for legal reasons". Not sure whether that includes Google maps. However you can create offline maps for it, for instance using MOBAC on a PC. MOBAC is also useful for creating Birdseye imagery for Garmins, though researching and implementing the process needs some persistence.