There’s a growing number of devices that aren’t officially sanctioned by Google. What are the implications for developers such as myself?
First of all, sanctioned devices, called ‘Google Experience’ devices, have passed Google’s compatibility test suite. This allows them to run Google’s apps such as Gmail, Maps, and Market or as Google call them ‘Google Experience Phones’.
Non Google experience devices include…
This is just the start. There are also set top boxes, vehicle entertainment systems and many more traditionally embedded systems that are moving over to Android. I am also seeing a greater number of enquiries for Android captive (kiosk) solutions. There’s a long tail of devices with new opportunities.
At first this looks good for the Android developer. However, with this new opportunity comes more pain. I have previously written about the limitations of developing for Kindle Fire and developing on non-Google experience devices.
A recent complication is the introduction of some very compelling tablets from China. For example, you can already get a $100 7" capacitive-screen ICS tablet. The very latest ones are using a MIPS Ingenic processor which means that consumer apps that use native code (the NDK) won’t work. However, for developers such as myself thinking about using such tablets for custom client solutions, there’s an add-on (or rather superset) of the NDK provided by MIPS.
As an aside, some non-trivial apps end up using the NDK either to allow porting of existing code or to bypass Android’s Java low heap size. This means, for example, it’s not possible to load full size images or large memory objects in Java. NDK code does not have this restriction.