Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introducción a ndk

72 views

Published on

Introducción al desarrollo nativo de aplicaciones móviles con Android Studio 2.0 y Native Development Kit (NDK).

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Introducción a ndk

  1. 1. 3 de Mayo 2016 Héctor Álvarez Díaz
  2. 2. • Aplicaciones Realizadas en JAVA y XML • El mismo código para múltiples plataformas (Dalvik VM) • JAVA no se compila se "Traduce" a Bytecode y luego se interpreta a lenguaje máquina. • Se pierde velocidad en el proceso
  3. 3. Native Development Kit (NDK) • Es un set de herramientas que nos permite utilizar lenguajes como C y C++ en Android. • Nos permite compilar ejecutables y/o librerías nativamente. • Usa Java Native Interface(JNI) para comunicarse.
  4. 4. • Necesita compilarse para cada arquitectura diferente (x86, ARM, etc) • Más difícil en debuggear • Puede producir problemas de compatibilidad • Agrega mayor complejidad al proyecto (JAVA y C/C++ en múltiples dispositivos = muchos dolores de cabeza)
  5. 5. • Reutilizar Código y librerías en C/C++ • Mayor Rendimiento de la aplicación (Algoritmos Complejos, juegos, multimedia, etc.) • Aprovechar optimizaciones del procesador (SSE, AES, etc) • Aplicaciones más fluidas
  6. 6. • Requisitos: Tener instalado Android Studio Usar sistema operativo x86_64 (64Bits)
  7. 7. Ir a "Configure" -> SDK Manager
  8. 8. Clickear "Android NDK" y luego en el botón Apply
  9. 9. Confirmar la versión a instalar
  10. 10. Aceptar la Licencia y presionar el botón "Next"
  11. 11. Terminado el proceso, "Android NDK" aparece como "Installed"
  12. 12. • Para dar soporte a NDK, primero necesitamos modificar el archivo "build.gradle (Project)". • Cambiaremos la dependencia "classpath", la linea similar a esta (generalmente la linea 8): 'com.android.tools.build:gradle:2.1.2' por: 'com.android.tools.build:gradle-experimental:0.7.0-rc1' • Ahora gradle reconocerá los proyectos con NDK.
  13. 13. • Continuando, modificaremos el build.gradle (Module): • En este archivo solo se agregan las siguientes llaves para incluir los módulos que se compilarán con ndk. • Incluimos el módulo: ndk{ moduleName = "fibonacci-jni" toolchain = 'clang' CFlags.addAll(['-Wall']) } • moduleName es el nombre de la clase en C/C++ que queremos compilar. • toolchain es la herramienta con la se se compilará el módulo. • CFlags.addALL(), agrega optimizaciones y configuraciones de compilación al compilador (clang, gcc, etc).
  14. 14. • Luego incluimos el soporte para distintas arquitecturas de procesador, en el mismo archivo " build.gradle (APP) ". productFlavors { create("arm") { ndk.abiFilters.add("armeabi") } ... create("all") } • Se pueden agregar las arquitecturas deseadas por separado o incluirlas todas con create("all") • En el repositorio de github pueden encontrar el código completo
  15. 15. • Luego en la clase principal del proyecto creamos una función de tipo native y llamamos a la librería: public native String fibboJni(); static{ System.loadLibrary("fibonacci-jni"); } • Como Android Studio está para facilitarnos la vida, nos mostrará una ayuda para crear la clase jni Nativa con el icono de bombilla. • Listo, ya podemos hacer llamadas nativas en nuestro proyecto.
  16. 16. ¿Qué es JNI?: Java Native Interface, es un framework que nos permite interactuar entre JAVA y el código nativo en C/C++.
  17. 17. • Para acceder al código pueden ingresar al siguiente dirección de Github: https://github.com/Phoenix2140/EjemploNDK-JNI

×