Старые устройства Android, такие как G1 и MyTouch, имеют процессоры ARMv6 без поддержки плавающей запятой. Большинство новых устройств, таких как Droid, Nexus One и Incredible, используют процессоры ARMv7-A с аппаратным обеспечением FP. Если ваша игра действительно 3D-интенсивна, она может потребовать от 3D-реализации большего, чем старые устройства, так или иначе, поэтому вам нужно решить, какой уровень оборудования вы хотите поддерживать.
Если вы программируете исключительно на Java, ваше приложение будет использовать преимущества аппаратного обеспечения FP, когда оно будет доступно. Если вы пишете собственный код с помощью NDK и выбираете архитектуру armv5te, вы вообще не получите аппаратную FP. Если вы выберете архитектуру armv7-a, вы это сделаете, но ваше приложение не будет доступно на устройствах до ARMv7-A.
OpenGL из Java теперь должен располагаться поверх «прямых» байтовых буферов, которые в настоящее время медленны для доступа из Java, но очень быстры с нативной стороны. (Однако я не очень разбираюсь в реализации GL, поэтому не могу предложить намного больше.)
Некоторые устройства дополнительно поддерживают расширение NEON «Advanced SIMD», которое предоставляет некоторые необычные функции, выходящие за рамки базовой поддержки VFP. Однако вы должны проверить это во время выполнения, если хотите использовать его (похоже, сейчас есть пример кода для этого - см. Страницу NDK для NDK r4b).
Более ранний ответ содержит некоторую информацию о флагах gcc , используемых NDK для "жесткого" fp.
В конечном счете, ответ «фиксированный или плавающий» сводится к тому, на каком классе устройств вы хотите, чтобы ваше приложение работало. Конечно, проще написать код для armv7-a, но вы отрезаете себя от куска рынка.