I don't believe any printer companies have JavaPOS utilities for Android at this time.
In my experience, it's best to use an API because you get total control over printer behavior without the complex nature of JavaPOS. If you have no experience with JavaPOS, it's definitely easier to use a well-written printer manufacturer's custom API, though you wind up with support for only that manufacturer's printer. It's not necessarily a bad thing, considering supporting one type of printer is much simpler than supporting printers from multiple manufacturers. Of course, that depends on your users' demands and your support model.
I know you mentioned Epson and I believe they have an Android SDK available. An alternative is Star Micronics' SDK for Android printing via USB, ethernet, and bluetooth. I used this extensively and highly recommend it for its ease of use, thoroughness in documentation, and many supported features. You can download it here: http://www.starmicronics.com/support/SDKDocumentation.aspx.