Vinculación de FFTW a una aplicación Android de NDK
Actualmente estoy escribiendo una aplicación de clasificación de género como mi proyecto de último año en Ingeniería de Computación. Inicialmente escribí el código de extracción de características (implementando FFTW) en C y ahora tengo que implementarlo en Android a través del NDK.
Este es mi primer proyecto de NDK, así que todavía estoy recibiendo la caída de las cosas, pero he compilado la biblioteca FFTW3 para Android de acuerdo con esta guía . No hice el último paso porque no pensé que era lo correcto para lo que necesitaba.
- Android NDK, dos bibliotecas estáticas y vinculación
- FFMPEG para Android toolchains: brazo-linux-armeabi-eabi-pkg-config - hay algún toolchain que contenga la herramienta pkg-config
- Utilizando bibliotecas estáticas pre-construidas para el desarrollo de Android NDK
- Biblioteca de memoria de montón sin restricciones para mapas de bits mediante NDK en Android
- Android, NDK, construcción de biblioteca estática
Mi pregunta es ¿cómo puedo, después del paso de compilación, utilizar la biblioteca en la aplicación principal de NDK que lo llama? ¿Hago todo normalmente en Application.mk sólo con LOCAL_STATIC_LIBRARIES establecido en el libfftw3.a que acabo de compilar? Y entonces no necesito tener ningún -lfftw3 banderas de enlace como yo normalmente correcto?
- Creación de un paquete de biblioteca de Android que incluye un paquete externo (nativo o Java)
- Android NDK: Enlace mediante una biblioteca estática precompilada
- Android Gradle Adición de biblioteca estática
- Android NDK: cómo vincular varias bibliotecas de terceros
- Depuración de la biblioteca estática NDK de Android (¿combinar proyectos?)
- No se puede ejecutar dex: varios archivos dex definen Landroid / Manifest $ permission;
- Android NDK: Intentando conectar JnetPcap
- Cómo compilar una biblioteca estática utilizando el Android NDK?
Puede utilizar la biblioteca prebuit FFTW (no importa cómo lo construyó).
O puede crear FFTW en Android.mk
makefile con todo el proyecto.
Android.mk
contenido de Android.mk
será:
# Prebuilt FFTW library include $(CLEAR_VARS) LOCAL_MODULE := fftw include $(PREBUILT_STATIC_LIBRARY) # or # Build FFTW library include $(CLEAR_VARS) LOCAL_MODULE := fftw # TODO put your static libs build flags include path_to_fftw_sources/$(LOCAL_MODULE).mk include $(BUILD_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := YourProject # TODO put your shared lib build flags include path_to_your_project/$(LOCAL_MODULE).mk LOCAL_STATIC_LIBRARIES += fftw include $(BUILD_SHARED_LIBRARY)
He escrito path_to_fftw_sources/$(LOCAL_MODULE).mk
para construir fftw static library y path_to_your_project/$(LOCAL_MODULE).mk
para construir su biblioteca compartida. A menudo es mejor poner LOCAL_SRC_FILES
y LOCAL_C_INCLUDES
en el archivo .mk
independiente.
Puede leer más acerca del archivo Android.mk
en el docs/ANDROID-MK.html
en su distribución NDK.
- Pausa manualmente una aplicación en Android Phonegap
- Implementación Push / Comet de servidor alternativo para el navegador de Android sin enviar mensajes de 4KB?