Quiero escribir una aplicación que lea tantos saltos de sensores (por tiempo) como sea posible desde diferentes sensores (GPS, Acc, Gyro, Compass). Así que tengo que investigar si hay una ventaja en el uso de NDK.Android: Mejore la tasa de muestreo del sensor mediante NDK y sondeo
Aquí están mis preguntas:
a) ¿Cuál es el cuello de botella cuando lee los valores del sensor de un sensor? ¿Es el propio senosr o Java? ¿Puedo aumentar la velocidad usando NDK? (Creo que para el GPS el cuello de botella es el sensor en sí, pero he leído que, por ejemplo, el Gyro-Sensor es bastante rápido) Encontré this thread y parece que el cuello de botella es el sensor. Puede alguien confirmar esto?
b) ¿El sondeo en lugar de utilizar EventListener aumenta la velocidad? ¿Cuál es la mejor manera de leer los valores de los sensores rápidamente?
c) ¿Tiene el uso de NDK alguna influencia sobre el consumo de energía de la aplicación? No encontré nada sobre esto.
d) Soy nuevo en Android. ¿Es mucho más económico usar NDK en lugar de Java normal? Según este sample-code, parece sencillo interactuar con los sensores utilizando una cola de eventos, pero ¿cuánto puede permitirse compilar el código y usarlo desde la aplicación?
Gracias de antemano.
Gracias por su respuesta, pero eso no es lo que estaba pidiendo. La pregunta era si hay un beneficio en el uso de C++ (NDK) en lugar de Java (SDK). – steckl
Estamos usando JNI para pasar los datos del sensor G de Java a nativo y no encontramos problemas con eso. –
¿Obtiene algún beneficio de su método? ¿Por qué no usas la interfaz del sensor de NDK directamente? Para mí, su método no tiene ningún beneficio, ya que no hago ningún cálculo con los datos del sensor, simplemente lo reenvío a un servidor. – steckl