I've been a happy user of Rockbox for a decade, I was particularly happy that the LUA scripting enabled me to create my auto-DJ script that let me regularly switch the playlist every X minutes and it was perfection. But my ClipZip finally died and as we all know it's become more difficult to get a hold of a hardware MP3 Player these days.
Since I have some talent for coding I decided to take a look at android coding, I was reluctant at first, but none of the appstore players was satisfactory. It turned out, android dev can be a breeze if you know the correct tools. I managed to recreate a MP3 player with integrated auto-DJ very fast, despite a couple technical hurdles(like for example finding the sdCard directory name, which changes per device, and managing foreign characters in filenames), but I finally did it.
I think if I kept working on the interface I could recreate most of Rockbox functionalities, it's just that interface design requires some patience and I just wanted my own app to use for personal comfort.
I'm just putting this out here, because I think it could be helpful for a programmer who has specific needs for a music player:
-To program and deploy on android, I recomend using Processing (processing.org), it's the easiest way to code on android.
-To play the music, just use the MediaPlayer class which is a default on android. (I just use MP3s so I can't vouch for other formats)
-For reading the MP3 tags, processing offers an optional library for that.
-I don't manage the sound output, but you can download sound plugins if you need a compressor or something like that on top of the standard phone/tablet settings.
My app is lightweight and doesn't prevent me from using other apps while the music is playing, and it's very easy on the battery.
Hope that will be of use to someone out there.