The question is simple - How do you decide which automationName is best for Android? Whether it is Espresso, UiAutomator2 or default Appium? Any good articles which explain the difference between these?

The default one is based on UIA1 framework , which is not supported by Google anymore. It is recommended to use it on devices, which don’t support UIA2 (API < 21)

For newer devices the default choice would be UIA2 or Espresso.
UIA2 would be a good choice if it is necessary to also interact with 3-rd party and system apps in the automated tests.

Espresso, however, is the best, if there is no need to automate anything outside of the application sandbox. It is also generally faster than UIA2 and can do more advanced things with your app (I am talking about mobile: extensions), since it has access to the views hierarchy and to the application activities.