Из опыта я могу, по крайней мере, ответить на первый из ваших вопросов:
a) Использование базовой Java достаточно быстро для работы с несколькими датчиками.В одном из моих приложений я прочитал Акселерометр, Гироскоп, Магнитометр, Вектор вращения игры и Некалиброванный магнитометр одновременно с SENSOR_DELAY_FASTEST.
Кроме того, я также выполнил кучу фильтрации и хранения данных, а такжекак некоторые кватернионные математики, чтобы отслеживать вращение.Глядя на необработанные данные (которые я также сохранил в текстовом файле .txt), я не обнаружил пропущенных данных или задержек (средняя разница между метками времени была такой же, как при работе с одним датчиком без вычислений).
Так что в моем случае датчики работали так быстро, как могли, и Java работала хорошо.
...
Тем не менее, если вы делаете очень большиеколичество вычислений, используя NDK, возможно, стоит попробовать.