Developing for a range of phones/OS's/Mods (Android)
Are you going to have to test on every version, or are there general rules as to compatability issues?
There are variations in hardware and OS versions, but it isn't that bad. Relative to PC development, the fracturing is quite small.
Just like on the PC, the development group needs to acquire a few different boxes that represent a few of the common values and one or two extremes, and test on them. Test on fast devices, mid-range devices, slow devices, high-dpi devices, low-dpi devices, various brands. Really you only need 5-10 Android devices to cover the broad range. If you're just an individual rather than a big company, it shouldn't be hard for you to find 2-3 phones and a tablet or two to test on.
Invariably there will be some bugs on less-common hardware/software combinations, but those can typically be addressed individually when they come up.
In contrast with the above, I would say the Android scene is terrible.
At tri-Ace 2 GPU types kept popping up in any discussion about functionality on Android: Adreno and Mali.
Examples:
#1: Arrays of samplers not supported.
#2: Arrays of samplers supported but cannot be accessed dynamically.
#3: ::glGetActiveUniform() returns inconsistent names, especially related to arrays. For example, it should return mTexMatrices[0], but only on some devices it returns mTexMatrices. A few other problems in other cases on some devices.
There are a few other headaches Adreno and Mali cause related to them simply not conforming to the OpenGL standard. You can write perfectly standard-compliant OpenGL code and there is no guarantee it will work as expected on those and possibly some other devices. Some devices cause more headaches than you would get on PC even though they share the problem of having different capabilities. These days you can assume shadow mapping will work on all PC’s, but you cannot assume so on all Android devices, for example. You will have to write tons of fallback code to handle cases that would be considered fallback-obsolete on any other device.
As far as Android goes, you need those devices for testing purposes at the very least. Then any other device to test “real” functionality.
L. Spiro
Topic Locked
This topic has been locked by a moderator. New replies are not allowed.