I am still a huge fan of oruxmaps for android. It's free and does everything i need. I use it on every ride, not just for navigation but also for tracking. I dedicate about 1Gb of my memory card to maps for it, or more when i travel.
I still use the old mobac 1.8 as the new version had to remove google maps. More details in the thread TDref pointed out.

I reread it and that thread's not a great tutorial for how to oruxmaps. Maybe i should write one. Will anyone read it?