I use just two apps on my phone right now:
1) OsmAnd+ (it was a one-time purchase a while back for me) - this app has a number of features that I like:
a) offline car navigation with voice commands which is helpful in places where cell coverage is nonexistent (otherwise I use Google Maps for driving which IMHO has best real-time traffic data that I have tried to date)
b) it has contour & hillshade layers that can be turned on/off as needed
c) it allows for overlay & underlay maps to be displayed simultaneously with a bar to control transparency level. I use this feature to see WaymarkedTrails Hiking layer that can display trail symbols / colors in areas where they are marked properly
d) it can record tracks via a plugin
e) it supports monthly map updates
f) it can display routes and waypoints downloaded to phone
2) AllTrails - I purchased a subscription last year before going for a backpacking trip, so that I could download different map layers to my phone. AllTrails (computer version) also has a nice tool for drawing routes which auto selects marked trails if you are creating a route along already-marked path, which makes trip planning easier as you can see the mileage and elevation profile and then downloading the route to the phone is seamless. My kids also use this app, mostly for what I would call social features of the app - when they set out for a coast-to-coast car trip last summer they would pick already pre-defined hiking recommendations depending on where they ended up being, kind of spur-of-the-moment short hikes that happened to fit their driving schedule. The nice thing about it is that you can get a trail description, reviews and pictures, so you have a descent idea of what to expect on your hike w/o much planning.
I know that some people love Locus app. My friend uses Backcountry Navigator but I don't know much about it.
You may also check out this comparison of Android apps that can display OSM-based maps:
https://wiki.openstreetmap.org/wiki/Comparison_of_Android_applications
This is a screenshot from OsmAnd+: