+1 sa OSMand, you can also try out ORUXmaps uses the OSM data as well.
running well on Android ICS.