I. Obtenir Intel IPP▲
Intel IPP est inclus dans la suite Intel® System StudioIntel® System Studio pour Android, qui fournit un ensemble d'outils complets et intégrés aux développeurs embarqués et mobiles. Les bibliothèques statiques non filetées d'Intel IPP supportent l'OS Android et peuvent être utilisées avec des applications Android. Si vous installez Intel IPP avec , les bibliothèques se trouvent par défaut dans le dossier « /system_studio_2015.x.xxx/ipp/lib/ia32_android ».
II. Utiliser Intel IPP▲
II-A. Ajouter des fonctions d'Intel IPP dans la source▲
- Incluez les fichiers header « ipp.h » d'Intel IPP dans les fichiers sources.
- Appelez la fonction ippInit() avant d'utiliser des fonctions d'Intel IPP. Intel IPP détecte les fonctionnalités du processeur et sélectionne le chemin optimisé du code en fonction des processeurs cibles. Avant d'appeler toute autre fonction d'Intel IPP, vous devrez appeler ippInit() pour initialiser la répartition de l'UC pour Intel IPP.
- Appelez les fonctions d'Intel IPP dans votre source C/C++.
II-B. Inclure des bibliothèques d'Intel IPP dans les fichiers de compilations du NDK Android▲
- Trouvez les bibliothèques Intel nécessaires à l'application : les bibliothèques d'Intel IPP sont catégorisées en différents domaines. Chaque domaine possède sa propre bibliothèque et certaines bibliothèques de domaines dépendent d'autres. Il est nécessaire d'inclure toutes les bibliothèques des domaines et leurs dépendances dans la ligne de liaison. Consultez l'article « Les dépendances de bibliothèques Intel IPP » pour en savoir plus sur les bibliothèques Intel IPP requises.
-
Copiez les bibliothèques et headers d'Intel IPP nécessaires dans le dossier de votre projet.
Vous avez juste besoin de copier les bibliothèques statiques non filetées (/ipp/lib/ia32/*.a).
-
Ajoutez les bibliothèques Intel IPP dans le fichier de compilation Android « jni/Android.mk ».
- Déclarez chaque bibliothèque Intel IPP comme étant un module de bibliothèque précompilé. Par exemple, si l'application utilise deux bibliothèques Intel IPP « libipps.a » et « libippcore.a », ajoutez les lignes ci-dessous dans le fichier :
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)
Ajoutez le chemin du header et les bibliothèques d'Intel IPP aux modules appelant les fonctions Intel IPP :
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)
III. Compiler un exemple de code▲
Un exemple simple a été donné ci-dessous afin de montrer l'utilisation d'Intel IPP dans du code natif Android. Le code utilise la fonction Intel IPP ippsAdd_32f() pour ajouter des données dans les deux tableaux.
Pour revoir l'utilisation d'Intel IPP dans le code :
- Téléchargez l'exemple de code et décompressez-le dans le dossier de votre projet (<projectdir>) ;
- Retrouvez des informations sur l'utilisation d'Intel IPP dans les fichiers sources : le fichier « jni/IppAdd.c » fournit l'implémentation d'une fonction native NativeIppAdd(). Cette dernière appelle la fonction Intel IPP ippsAdd_32f(). Le fichier « src/com/example/testippadd/ArrayAddActivity.java » appelle la fonction native NativeIppAdd() par le biais de JNI ;
- Examinez le fichier « jni/Android.mk ». Il ajoute les bibliothèques Intel IPP nécessaires dans le script de compilation. L'exemple utilise la fonction ippsAdd_32f() appartenant au domaine de traitement du signal d'Intel IPP. Elle dépend des bibliothèques « libipps.a » et « libippcore.a ». Le fichier « Android.mk » leur crée deux bibliothèques précompilées.
Vous pouvez compiler l'exemple en utilisant les outils de commande SDK et NDK ou en utilisant l'EDI Eclipse.
IV. Compiler l'exemple depuis une ligne de commande▲
>
cd <
projectdir>
><
ndkdir>
/ndk-build
>
cd <
projectdir>
>
android update project -p . -s
>
ant debug
>
adb install bin/ArrayAddActivity-debug.apk
- Copiez les headers et les bibliothèques dans le dossier de votre projet (ex. <projectdir>/ipp).
- Exécutez le script « ndk-build » depuis le répertoire de votre projet pour compiler le code natif.
- Compilez le package Android et installez l'application.
V. Compiler l'exemple depuis Eclipse▲
- Copiez les headers et bibliothèques dans le dossier de votre projet (ex. <projectdir>/ipp).
- Dans Eclipse, cliquez sur File >> New >> Project… >> Android >> Android Project from Existing Code. Dans le répertoire « Root Directory », sélectionnez le dossier du code de l'exemple et cliquez sur « Finish ».
- Exécutez le script « ndk-build » depuis le répertoire de votre projet pour compiler le code natif.
- Compilez l'application dans l'EDI Eclipse et déployez le fichier .apk
VI. Résumé▲
Cet article fournit une introduction sur l'utilisation d'Intel IPP avec des applications natives Android. Consultez le Manuel Intel IPP pour plus d'informations sur les fonctions d'Intel IPP.
Pour plus d'informations sur les outils d'Intel pour les développeurs Android, veuillez visiter la Zone des Développeurs Intel Android.