First off, I lead Google’s efforts to improve the developer experience for the Android Audio framework. It’s my job to help developers build high-quality, high-performance audio apps on Android. I will try to answer some of the points/questions raised in this thread. Apologies in advance for length…
The original poster asked the question “Does anyone actually have a successful Synth, Sampler, or rompler on Android?”. Here’s just a few which I consider to provide a high-quality audio experience and have a 4+ user rating on Google Play (correct as at 30th June 2017):
Korg - Kaossilator for Android (4.3)
Image-Line - FL Studio Mobile (4.1)
Planet-h.com - G-Stomper Studio
(4.2) (and various other apps)
eXtream Software Development - Audio Evolution Mobile Studio (4.4)
MixVibes - RemixLive (4.5)
Single Cell Software - Caustic 3 (4.3)
Ninja Tune - Ninja Jamm (4.0)
ROLI - NOISE (In beta so no rating yet)
These are more DJing/Karaoke but have similar requirements to synths and samplers in terms of low latency, glitch-free audio:
DJiT - edjing (4.3) (plus others)
Algoriddim - djay 2 (4.1)
Smule - Magic Piano (4.1), Smule Sing! (4.1) and others
Starmaker - The Voice (4.0)
It is definitely possible to create successful high-performance audio apps on Android today, and @jules and team have done an excellent job in adding Android support to JUCE.
That said, developing high-performance audio apps for Android has its challenges, as many have mentioned in this thread. The main one is handling differences in device audio performance (aka fragmentation).
It was for this reason that the Pro Audio feature flag was added to Android Marshmallow (6.0) onwards. Android devices which report this flag are claiming that their round-trip (aka input to output) audio latency is <20ms (full spec here).
If you need <20ms audio latency, just limit your app distribution to only these devices.
How many devices have this Pro Audio flag? I published a list here. To obtain an up to date list upload a blank app to Google Play with the following line in your AndroidManifest.xml:
<uses-feature android:required="true" android:name="android.hardware.audio.pro" />
@matkatmusic mentioned some concerns about copy protection. A solution here is to use App Licensing. This doesn’t prevent users from illegally copying your app, but it does prevent them from using it unless they have actually paid.
As for other techniques for performance optimisations, many of these should be taken care of by JUCE, however, if you are looking to develop directly using the Android APIs then it’s worth checking out the following resources:
Best Practices for Android Audio (Google I/O 2017 talk) - Great musical performance from Parisi at about 32mins
Android Audio Developer Guides
Code samples
Incidentally, I will be speaking at this year’s Audio Developer Conference in London so if you have questions or would like to discuss your development challenges in person please come along.