25 May 2011
There is another aspect of Android fragmentation that I have not seen covered. As many Android users may have noticed, the Netflix Android app is only supported on a handful of devices. The reason for this is that Google shipped a new media framework in Android 2.2 called Stagefright. The main feature of Stagefright is support for HTTP progressive streaming. The problem is, several manufactures (Motorola, Samsung*) have either left out this new media framework or have disabled it in their 2.2 builds. Instead, they continue to use the old media framework (OpenCore). Also, as far as I can tell, there is no easy way to check if the device is using Stagefright or OpenCore. The only solutions I found involve horrendous hacks that only work on some phones.
My belief is that Netflix waited this long to ship the Android app not necessarily because of any sort of DRM issue as originally reported but because they had to extensively test the app with every Android phone capable of running 2.2 or higher. In the end, they selected just five phones, which were most likely chosen on the basis of following criteria: the media framework used by the device (Stagefright being required) and minimum hardware specs.
From a developer’s perspective, this issue is worse than version fragmentation. It’s challenging enough to accommodate the plethora of screen sizes available but not being able to assume that the underlying API implementations are the same in each version of the OS is in my opinion, unacceptable.
UPDATE: Netflix has since released an update that adds support for additional devices; one of them being the original Motorola Droid. According to Wikipedia, the original Droid has received three updates since receiving Android 2.2. I have not been able to confirm this but I believe the original Droid may be one of the few Motorola phones that uses Stagefright and that it may have been enabled in one of the aforementioned updates.
* The Samsung Nexus S is an exception here because it’s an official Google phone and therefore runs stock 2.3 / Gingerbread.
No related posts.