¿Diferencia entre bibliotecas estáticas y compartidas en el NDK de Android?

Soy nuevo en el NDK de Android y no entiendo las diferencias entre bibliotecas estáticas y compartidas. ¿Cuáles son, y cuándo elegiría un tipo sobre el otro?

La biblioteca compartida del término no es un ajuste perfecto con respecto al NDK de Android, porque en muchos casos las bibliotecas .so no se comparten realmente entre aplicaciones. Es mejor clasificar las bibliotecas que el NDK construye como estáticas y dinámicas.

Cada aplicación de Android es una aplicación Java, y el único punto de entrada para el código NDK lo está cargando como una biblioteca dinámica y lo llama a través de JNI.

Las bibliotecas estáticas son archivos de archivos de objetos compilados. Se envuelven en otras bibliotecas en tiempo de construcción. Las porciones no usadas de código de bibliotecas estáticas son despojadas por el NDK para reducir el tamaño total.

Las bibliotecas dinámicas se cargan en tiempo de ejecución desde archivos separados. Pueden contener bibliotecas estáticas de las que dependen o cargar bibliotecas más dinámicas.

Así que lo que realmente necesita para el desarrollo de Android es por lo menos una biblioteca compartida, que se llamará de código Java, y vinculado con sus dependencias como bibliotecas estáticas de preferencia.

Bibliotecas compartidas nativas: El NDK crea estas bibliotecas o archivos .so desde su código fuente nativo. Bibliotecas estáticas nativas: El NDK también puede crear bibliotecas estáticas o archivos .a, que puede vincular con otras bibliotecas.

Esto es según la documentación de NDK

  • No se pueden encontrar archivos de encabezado - Android NDK
  • ¿Cómo orientar diferentes arquitecturas Android?
  • Cómo escribir / depurar Android.mk para la biblioteca estática NDK?
  • ¿Cómo automatizar el mecanismo de instantánea DDMS?
  • Intercepción de llamadas entrantes de Android, desvío de llamadas
  • Desea crear un complemento en Cocos2d para mi SDK
  • Añadir abiFilters a las propiedades gradle
  • Construyendo FFMPEG con librtmp para android
  • Android.mk: crea todo el archivo fuente en un directorio
  • Cómo acelerar las creaciones de android ndk
  • Registro de valores de variables en ndk nativo de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.