Having been working in the Android space as a programmer, IMO the idea of Android fragmentation is mostly overblown these days. It was more of an issue in the past, but post-Gingerbread it has ceased to be a practical problem for any dev work I've done.
This isn't to say Android development is wonderful, it (often) isn't. And I've been increasingly concerned with the amount of "OMG HOW?" bugs that have been introduced into the Android OS and frameworks over the past few releases, but generally speaking the code you write for one modern Android device runs (or breaks due to OS or framework bugs) equally across all the phones, at least those that (legally) ship with the Play store.
This isn't to say Android development is wonderful, it (often) isn't. And I've been increasingly concerned with the amount of "OMG HOW?" bugs that have been introduced into the Android OS and frameworks over the past few releases, but generally speaking the code you write for one modern Android device runs (or breaks due to OS or framework bugs) equally across all the phones, at least those that (legally) ship with the Play store.