BlueBiker
Android Expert
Google isn't doing this because they "wanna". It's pretty much the only way to effectively do this. Keep in mind, that Google doesn't provide end user support (except on Nexus devices). All support comes from each phone manufacturer/carrier. As such, Google is in no position to support all the extra features that each handset mfr may use.
Google picks a platform to develop thier latest release. Then they release the source to manufacturers. Each mfr is free to modify the source to support thier differentiating features, and throw in whatever carrier bloat they may be under contract for.
For example, a phone may have an HDMI port that wasn't part of the Nexus device. That requires a driver for a HDMI chip installed. The mfr is responsible for making sure that hardware/software works properly.
As for the OMAP vs Exynos vs Snapdragon, et al......it's really minor. For the most part, they are all ARM based, so compiling for each architectures is really no big deal. The only customization would be the various drivers required for all the other functions loaded on the SoC. When you have the source, compiling for the other architectures is a minor effort at best. What takes more time is replacing launchers, adding extra features and testing everything. That's where the bulk of the time comes from.
If Google were the true end product producer, they'd either have to limit hardware selection, or test a bazillion different configurations. MS does this with Windows, and the industry definately notes how inefficient that system is. No company wants to start a new venture by hiring 50,000 software test engineers to design and develop for all possible configurations. You either limit your options, or you deal the the incredibly long update cycles and manpower investment that goes along with it.
In contrast, Apple has only thier limited ecosystem to develop for since they are in control of everything (hardware/software).
MS, with WinMo7, is also in full software control, but they do that by limiting hardware selection. Right now, every single WinMo7 device is Snapdragon based, and can only use a limited selection of i/o chips. As a result, all WinMo7 devices are basically the same.
Terrific informative post nj02vette, thanks for that.
I was wondering how the ARM variants were handled, as my understanding is that the instruction sets are slightly modified/enhanced in the different families even within the same generation. Maybe more of an issue with apps, where a given binary has to be compatible w/anything it's installed on.