¿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?
- Cómo construir un solo APK con Android NDK y Gradle
- ¿Cómo definimos varios módulos con el nuevo creador basado en gradles de NDK?
- Error: 'to_string' no es un miembro de 'std'
- Cuándo utilizar JNIEXPORT y JNICALL en Android NDK?
- Android OpenAL?
- Android no puede construir el proyecto con NDK-Build.cmd de NDK r7
- ¿Hay algún recurso bueno que discuta Android NDK API de una manera algo decente?
- Actualización de la interfaz de usuario de hilo de fondo utilizando código nativo enteramente (sin JNI)?
- Gradle + ndkbuild + android studio 2.2 cómo establecer ABIs compatibles?
- Android "No hay tal archivo o directorio" error?
- Android: Cómo integrar un decodificador al marco multimedia
- Utilizar C ++ con Android ndk / jni
- NewGlobalRef para jmethodID
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
- Cordova ejecutar androide se ejecuta bien. Pero Android 4.1.2 no inicia la aplicación
- Archivo proguard obsoleto; Usar -contienen a los miembros en vez de -contemplarlosconmiembros