I used to use Windows Mobile phones clipped to my handlebar with a charger. On those, I had the Garmin XT software. Even though it wasn't as nice as my 276C, it was adequate in most ways. It also ran a program called GeoTerrestrial, which would create tracks real time and upload photos to their site that were geotagged, making it very easy to create a trip log on the go.
I switched to Android earlier this year, and maps have been a struggle. NOTHING is as good as the Garmin XT software, and the Garmin XT software wasn't all that good. I use it mainly just for visible moving maps, not routing. I bought the app CoPilot, so I would have offline maps and routing. It is decent, and it was under $10. I had been trying a number of programs to display the open source maps, and didn't care much for any of them.
I have settled on OSMand. It lets you download vector maps easily and it performs well. It also displays Google, Bing and other maps). Routing is so so, but I don't really care. You need to download the latest version from the OSMand site, as the one in the Google app store is a very old version. Some of the items I like about it are:
1) you can mark a location, and there is an arrow on the screen like a compass that keeps pointing to that location. This is better then routing for me. I choose the roads, and it shows the direction I need to head.
2) It does a good job at keeping track logs in GPX. Plus you can display old GPX track logs quickly.
3) I can upload my track logs to EveryTrail, my photos to Picasa, and create a trip log with photos that I can share quickly on EveryTrail.
It also lets you put map layers on the screen. So you can put a layer of road maps, and lay a transparent layer of terrain maps over it. (it will manage OSM, Google, Bing and other maps)
Looks like a winner for me for now.