I disagree that fragmentation is not a problem. I work on the mobile build/test infrastructure at Google, and fragmentation does cause us a lot of extra work. We have to track down and maintain physical phones from each vendor, and then we have to dole out time allotments for tests to run on each phone. (And of course, each model of phone runs a different build of Android for each carrier...) This is annoying because ideally we'd run tests for every affecting change, but there aren't enough phones to do that. (We can and do run the emulator for every change, but the emulator is a very optimistic simulation.)
iOS presents is own challenges; running emulator tests for every change is difficult because the build process is opaque and the emulator only runs on Macs, which we do not use in production.
All in all, the tools that are available to mobile developers are extremely primitive compared to what server-side Java developers get, and wasting time fighting fragmentation isn't exactly helping.
Hmm in your post I read "I work on mobile build/test infrastructure at Google" and "tools that are available to mobile developers are extremely primitive". So what are you waiting for? Pitch your ideas to your (relatively internal) Android team...
iOS presents is own challenges; running emulator tests for every change is difficult because the build process is opaque and the emulator only runs on Macs, which we do not use in production.
All in all, the tools that are available to mobile developers are extremely primitive compared to what server-side Java developers get, and wasting time fighting fragmentation isn't exactly helping.