This is a difficult question, there are few things to look for:
- Stable phone audio system: Some phones / firmware combinations have unstable audio systems.
The worst phones we have ever tried are HTC one m8 series and alcatel one touch phones. Maybe newer alcatel one touch phones are better, but the old ones would cause random hangs and reboots. I would not recommend using a custom rom like cyanogenmod, they (used to?) reduce the audio buffers which caused issues on many devices.
- No problems with proximity detector: Some phones will disable wifi (or stop the application) when the screen turns off. There is a workaround for that in Zoiper, but the screen will stay on and will consume too much energy.
I do not have a list with the models and firmware combinations, but IIRC, mostly HTC phones were suffering from this problem.
- Low Latency: Android has a bit of a latency problem for the audio system, too much time is lost in the android audio system, adding significant delay to your calls. Zoiper does some trickery to keep the latency as low as possible while still achieving the best quality, but the latency will still be significantly higher than on iPhones for example. Google is working on making the latency smaller and each big revision seems to have some improvements.
The google nexus series are most likely to benefit from those changes (some of the audio optimizations are currently only available on the nexus series).
Too make things even more complicated, the latency is different for different sample rates. (Some combinations result in up to 1 second of delay).
You can test the latency with our latency tester: https://play.google.com/store/apps/details?id=com.zoiper.audiolatency.app