Nota: Este tutorial ha sido donado a la comunidad de javaHispano por Intel. Intel espera que en el futuro sus procesadores incrementen considerablemente su presencia en los terminales móviles Android, por ello ha creído que este artículo sería interesante para nuestra comunidad. El artículo puede encontrarse en la web de Intel aquí. Podéis encontrar el primer artículo de la serie aquí.
Los Fundamentos integrados del rendimiento Intel® proporcionan funciones de módulos altamente optimizados para procesamiento de imágenes, procesamiento de señales, matemática de vectores y computaciones en matriz pequeña. Varios dominios de los Fundamentos integrados del rendimiento Intel® contienen las funciones afinadas manualmente para el procesador Intel® Atom™ al aprovechar las instrucciones de Intel® Streaming SIMD Extensions (Intel® SSE). Las bibliotecas Linux* no subprocesadas y estáticas de los Fundamentos integrados del rendimiento Intel® ahora son compatibles con el sistema operativo Android*, y se pueden utilizar con las aplicaciones para Android.
Este artículo ofrece una introducción a la manera de agregar funciones de los Fundamentos integrados del rendimiento Intel® dentro las aplicaciones del NDK para Android. Los Fundamentos integrados del rendimiento Intel® proporcionan optimizaciones específicas para el procesador y solo se pueden vincular con código C/C++ para Android nativo. Para utilizar los Fundamentos integrados del rendimiento Intel® con su aplicación, necesita incluir las funciones de éstos en su código fuente y también necesita agregar las bibliotecas de éstos en la línea de comandos de creación.
Uso de los Fundamentos integrados del rendimiento Intel®
1. Adición de las funciones de los Fundamentos integrados del rendimiento Intel® en el código fuente
2. Inclusión de las bibliotecas de los Fundamentos integrados del rendimiento Intel® en los archivos de creación del NDK para Android
include $(CLEAR_VARS)
LOCAL_MODULE := ipps
LOCAL_SRC_FILES := ../ipp/lib/ia32/libipps.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := ippcore
LOCAL_SRC_FILES := ../ipp/lib/ia32/libippcore.a
include $(PREBUILT_STATIC_LIBRARY)
Añada la ruta al encabezado y las bibliotecas de los Fundamentos integrados del rendimiento Intel® en los módulos que llaman a las funciones de los Fundamentos integrados del rendimiento Intel®:
include $(CLEAR_VARS)
LOCAL_MODULE := IppAdd
LOCAL_SRC_FILES := IppAdd.c
LOCAL_STATIC_LIBRARIES := ipps ippcore
LOCAL_C_INCLUDES := ./ipp/include
include $(BUILT_SHARED_LIBRARY)
Creación de un ejemplo de código
A continuación se incluye un ejemplo simple que muestra el uso de los Fundamentos integrados del rendimiento Intel® en el código nativo para Android. El código utiliza la función ippsAdd_32f() de los Fundamentos integrados del rendimiento Intel® para agregar datos en dos matrices.
Para revisar el uso de los Fundamentos integrados del rendimiento Intel® en el código:
Puede crear el ejemplo de código ya sea con las herramientas de comandos SDK y NDK o con la ayuda de Eclipse* IDE
Creación del ejemplo desde una línea de comandos
>cd <projectdir>
><ndkdir>/ndk-build
>cd <projectdir>
>android update project -p . -s
>ant debug
>adb install bin/ArrayAddActivity-debug.apk
Creación del ejemplo por Eclipse* IDE
>cd <projectdir>
><ndkdir>/ndk-build
Resumen
Este artículo ofrece una introducción al uso de los Fundamentos integrados del rendimiento Intel® con las aplicaciones nativas para Android. Consulte información adicional sobre las funciones de los Fundamentos integrados del rendimiento Intel® en el manual de los Fundamentos integrados del rendimiento Intel®.