NDK de android o como ejecutar código nativo en C

, NDK

Los desarrolladores pueden, mediante el Android NDK (Native Development Kit), reutilizar código escrito en C/C++ haciendo uso de ello a través del JNI (Java Native Interface). El NDK hace que la ejecución de la aplicación sea directamente en el procesador y no será interpretado mediante una máquina virtual, siendo común en aplicaciones que hagan un uso intensivo de la CPU mediante complejas operaciones matemáticas. En algunas ocasiones esto puede traducirse en una ejecución de la app más rápida.

El uso de código nativo en android no está al alcance de todos, y su uso es, cuanto menos, difícil de manejar. Realmente no aporta grandes mejores o diferencias respecto a código android, por lo que, a no ser que no nos quede más remedio, deberemos de sopesar su implementación. Aplicaciones como Whatsapp o Skype utilizan el NDK de android, ¿curioso, verdad?

Ahhhmmmm

Manos a la obra, lo primero que deberemos hacer será descargar el NDK de android según cual sea nuestro SO; descargadlo y descomprimidlo; yo he renombrado la carpeta como ndk, simplemente. Ahora la copiaremos al directorio donde tengamos instalado el SDK de android y la añadiremos al PATH.

    
    mv ndk /Users/Oskarko/Library/Android 
    
    export PATH=$PATH:/Users/Oskarko/Library/Android/ndk

El último paso sería compilar el código nativo mediante el NDK de android, para ello navegamos a la raíz de nuestro proyecto y lo compilamos con el comando ndk-build

Como proyecto de ejemplo he tomado prestado el visor de PDF de los chicos de APV PDF Viewer.

    
    sh

    python2.7 ./scripts/pjpp.py --configuration pro
    
    ../scripts/build-native.sh
    
    cd ..
    ndk-build

Después de descomprimir el proyecto y ejecutar algún comando en Python, compilo el código mediante ndk-build para generar las librerías *.so

Carpeta LIBS

Una vez copiadas a la carpeta libs de Android Studio tan sólo tendremos que darle a Gradle todo lo que nos pida hasta conseguir compilar la app.

Dandole a Gradle lo que te pide

Puedes descargar el proyecto completo desde mi repositorio de GitHub

Bibliografía:

https://code.google.com/archive/p/apv/wikis/Building.wiki

https://geekytheory.com/que-es-el-android-ndk-parte-1/

https://geekytheory.com/instalacion-del-android-ndk-parte-2/

https://geekytheory.com/hola-mundo-con-android-ndk-parte-4/

https://geekytheory.com/paso-de-parametros-en-funciones-con-android-ndk-parte-5/

Compartir en Twitter, Facebook, Google+
Anterior Siguiente