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.

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?

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.

  • Direct Code Vs Library en android
  • Adición de dependencias de biblioteca de terceros a Android Library
  • Android Studio - Biblioteca de módulos App + NDK
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.