¿Para qué sirven las bibliotecas nativas de C / C ++ en el desarrollo de Android?

Aunque la mayoría de las aplicaciones de Android están escritas en Java, hay escenarios especiales en los que puede requerir el uso de C / C ++. Es por eso que Android proporciona un NDK. Veo los siguientes casos en los que alguien puede querer usar bibliotecas C / C ++ en su aplicación:

  1. Ya tiene un código escrito en C / C ++ que desea usar en su aplicación de Android.
  2. Su aplicación necesita algunos cálculos pesados ​​para realizar, en ese caso, usar C / C ++ puede ayudarlo a aprovechar directamente algunos de los recursos del sistema operativo.
  3. Digamos que su aplicación es un juego que utiliza mucha física y computación intensiva, por lo que usar bibliotecas C / C ++ puede ayudarlo con problemas como alta latencia y consumo de recursos. De esa forma, tu juego funciona mejor, ya que aprovecha algunos recursos adicionales del propio sistema.
  4. Solo desea acceder a los componentes físicos del dispositivo como sensores o tocar (esto se puede hacer usando Java, pero usar C / C ++ lo ayuda a comunicarse directamente).
  5. Hay aplicaciones que se envían con el firmware en sí, estas aplicaciones vienen preinstaladas y son desarrolladas por el OEM del dispositivo. Dichas aplicaciones pueden usar el NDK para el rendimiento y la optimización adicionales que son específicos del dispositivo.

Bueno, aparte de estos, no creo por qué alguien querría usar C / C ++ sobre Java. Para mí, C / C ++ están más cerca del sistema que Java, y es por eso que pueden ser bastante potentes si se usan en las situaciones correctas.

Velocidad para tareas intensivas de CPU y / o GPU, y acceso directo al hardware.