SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
TECNOLOGIAS DE SOFTWARE PARA
ELECTRONICA
Ing. DC, MSc.
JNI
Quito, 2013
Contenido:
1. Concepto y Aspectos generales.
2. Librerias LIB y DLL.
3. Estructura de un Metodo Nativo.
4. Procedimiento para crear un programa con
JNI.
5. Introduccion aVisual Studio yVisual C++.
6. Ejemplo Hola Mundo.
18/03/2013 2
1. Concepto y Aspectos Generales
- JNI es un mecanismo que permite ejecutar codigo
nativo desde Java y viceversa.
- JNI tiene una interfaz bidireccional
1. Native methods, permite llamar a funciones de las
librerias nativas desde Java.
2. Invocation Interface, permite insertar una JVM en
una aplicacion nativa.
Interfaz bidireccional entre
Java y las librerias nativas.
18/03/2013 3
2. Librerias dll, lib
DLL (Dynamic Link Library – librerias de enlace
dinamico):
- Funciones son insertadas en el tiempo de
ejecucion y no de enlazado.
- Varios programas pueden compartir la misma
libreria.
- Ocupa poco espacio de disco duro.
- *.dll enWindows, *.so en Mac OS X.
18/03/2013 4
2. Librerias dll, lib
LIB (Static Link Library – librerias de enlace
estatico):
- Las funciones se incluyen dentro del
ejecutable durante la fase de enlazado.
- La libreria esta presente solo en el programa
en ejecucion.
- Ocupa mayor espacio de disco duro.
- *.lib enWindows, *.a en Mac OS X.
18/03/2013 5
3. Estructura de un metodo nativo
class SaludoHola{
private native void holaMundo();
public static void main(String[ ] args){
new SaludoHola().holaMundo();
}
static {
System.loadLibrary(“Holadll“);
}
}
18/03/2013 6
4. Procedimiento para crear un
programa con JNI
- Declarar el(los) metodo(s) en un programa de
JAVA.
- Compilar el programa de JAVA (javac)
- Generar la cabecera (*.h) para programar el
codigo nativo.
- Programar el codigo nativo en C o C++.
- Generar una DLL con el codigo nativo (referenciar a la
carpeta include e include win32 enVisual).
- Ejecutar el programa de Java (java o NetBeans)
18/03/2013 7
5. Introduccion a Visual Studio
- Visual Studio es un Entorno de Desarrollo
Integrado que ofrece Microsoft, y que soporta
varios lenguajes de programacion de alto nivel
como:
Visual Basic, C++, C++/CLI, C# , F# parecido a J#.
- Version ActualVisio Studio 2010.
- Se ejecuta bajo la plataforma .NET (.NET
Framework).
18/03/2013 8
18/03/2013 9
5. Visual C++
- Es un IDE para programar C, C++ y C++/CLI.
- Conocido tambien como MSVC.
- Fue desarrollado por Microsoft para
programar bajo Windows.
- Visual C++ usa MFC (Microsoft Foundation
Classes), que es un conjunto de clases C++
para desarrollar aplicaciones enWindows.
- La version gratuita: MicrosoftVisual C++
Express Edition.
18/03/2013 10
Contenido:
1. Programa 1- Hola Mundo
2. Tipos de Datos JNI
3. Programa 2 - Suma de 2 numeros
4. Programa 3 - Suma y Resta de dos numeros
18/03/2013 11
1. Programa 1 - Hola Mundo
1. Crear un programa en Java mediante el txt.
2. Ejecutar con el compilador para crear el .class, con
>javac Archivo.java
3. Generar la cabecer *h, con >javah –jni Archivoclass
18/03/2013 12
3. Crear un Proyecto conVisual C++ para
generar una DLL.
4. Copiar el archivo *.h dentro de la carperta del
proyecto de visual C++.
18/03/2013 13
1. Programa 1 - Hola Mundo
5. ConfigurarVisual C++ para trabajar con JNI.
18/03/2013 14
1. Programa 1 - Hola Mundo
6. Agregar en la cabecera del programa los archivos
indicados e implementar los metodos
correspondientes, y luego ejecutar el programa.
18/03/2013 15
7. Finalmente copie la DLL generada dentro de la
carpeta del proyecto, junto al archivo *.class. Luego
desde la linea de comando ejecute el interpretador de
Java, para ejecutar el programa JNI. >java HolaMundo
Para trabajar con JNI, se tiene los siguientes tipos
de datos, equivalentes a C/C++.
18/03/2013 16
2. Tipos de Datos JNI:
En JAVA EN C/C++
int jint
long jlong
float jfloat
double jdouble
boolean jboolean
char jchar
byte jbyte
short jshort
- Tipos de Datos Fundamentales
Apuntan a objetos y arrays.
18/03/2013 17
2. Tipos de Datos JNI:
- Tipos de Datos de Referencia
3. Programa 2 – Suma de 2
numeros
Realizar un programa con JNI, para que realice
la suma de dos numeros.
18/03/2013 18
4. Programa 3 – Suma y Resta
de 2 numeros
Realizar un programa con JNI, para que realice
tanto la suma como la resta de dos numeros.
18/03/2013 19
Preguntas ???
Bibliografia:
http://www....../jni.pdf
18/03/2013 20

Más contenido relacionado

La actualidad más candente

La actualidad más candente (17)

C sharp
C sharpC sharp
C sharp
 
.NET Framework y sus beneficios
.NET Framework y sus beneficios.NET Framework y sus beneficios
.NET Framework y sus beneficios
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 
ATIX08
ATIX08ATIX08
ATIX08
 
Lenguaje c nardy y daniela
Lenguaje c nardy y danielaLenguaje c nardy y daniela
Lenguaje c nardy y daniela
 
Microsoft Visual Studio Universidad OYM Seccion 0435
Microsoft Visual Studio Universidad OYM Seccion 0435Microsoft Visual Studio Universidad OYM Seccion 0435
Microsoft Visual Studio Universidad OYM Seccion 0435
 
Procesadores de Lenguaje
Procesadores de LenguajeProcesadores de Lenguaje
Procesadores de Lenguaje
 
Presentación1
Presentación1Presentación1
Presentación1
 
Wine software
Wine softwareWine software
Wine software
 
Lenguaje PHP
Lenguaje PHPLenguaje PHP
Lenguaje PHP
 
Lenguaje c++
Lenguaje c++Lenguaje c++
Lenguaje c++
 
Samanta peralta cuadro_comparativo
Samanta peralta cuadro_comparativoSamanta peralta cuadro_comparativo
Samanta peralta cuadro_comparativo
 
Metreología Programación
Metreología ProgramaciónMetreología Programación
Metreología Programación
 
Bouml compartiendo con ustedes juancito
Bouml compartiendo con ustedes juancito Bouml compartiendo con ustedes juancito
Bouml compartiendo con ustedes juancito
 
lenguaje c++
lenguaje c++lenguaje c++
lenguaje c++
 
Zinjai como entorno de programación
Zinjai como entorno de programación Zinjai como entorno de programación
Zinjai como entorno de programación
 
Software Libre (EUITIO 2005)
Software Libre (EUITIO 2005)Software Libre (EUITIO 2005)
Software Libre (EUITIO 2005)
 

Destacado (8)

Oportunidades Sectoriales - Región Barranquilla, Atlántico
Oportunidades Sectoriales - Región Barranquilla, AtlánticoOportunidades Sectoriales - Región Barranquilla, Atlántico
Oportunidades Sectoriales - Región Barranquilla, Atlántico
 
Oportunidades Sectoriales - Región Cartagena, Bolívar
Oportunidades Sectoriales - Región Cartagena, BolívarOportunidades Sectoriales - Región Cartagena, Bolívar
Oportunidades Sectoriales - Región Cartagena, Bolívar
 
Oportunidades Sectoriales - Región Cali, Valle
Oportunidades Sectoriales - Región Cali, ValleOportunidades Sectoriales - Región Cali, Valle
Oportunidades Sectoriales - Región Cali, Valle
 
Oportunidades Sectoriales - Región Bogotá, Cundinamarca
Oportunidades Sectoriales - Región Bogotá, CundinamarcaOportunidades Sectoriales - Región Bogotá, Cundinamarca
Oportunidades Sectoriales - Región Bogotá, Cundinamarca
 
Sector Fondos de Capital Privado en Colombia
Sector Fondos de Capital Privado en ColombiaSector Fondos de Capital Privado en Colombia
Sector Fondos de Capital Privado en Colombia
 
Oportunidades Sectoriales - Región Ibagué, Tolima
Oportunidades Sectoriales - Región Ibagué, TolimaOportunidades Sectoriales - Región Ibagué, Tolima
Oportunidades Sectoriales - Región Ibagué, Tolima
 
Oportunidades Sectoriales - Región Pereira, Risaralda
Oportunidades Sectoriales - Región Pereira, RisaraldaOportunidades Sectoriales - Región Pereira, Risaralda
Oportunidades Sectoriales - Región Pereira, Risaralda
 
Oportunidades Sectoriales - Región Neiva, Huila
Oportunidades Sectoriales - Región Neiva, HuilaOportunidades Sectoriales - Región Neiva, Huila
Oportunidades Sectoriales - Región Neiva, Huila
 

Similar a Tspe jni-1

Desarrollo de aplicaciones realmente nativas con NDK
Desarrollo de aplicaciones realmente nativas con NDKDesarrollo de aplicaciones realmente nativas con NDK
Desarrollo de aplicaciones realmente nativas con NDKSoftware Guru
 
C1 intro java
C1 intro javaC1 intro java
C1 intro javaalenco
 
Introducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - JavaIntroducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - JavaFacultad de Ciencias y Sistemas
 
002 Comohacerun J Clic
002 Comohacerun J Clic002 Comohacerun J Clic
002 Comohacerun J ClicMaruja
 
Introducción al Desarrollo de NDK apps | Dev Day 4 Woman | @condesa_sama
Introducción al Desarrollo de NDK apps | Dev Day 4 Woman | @condesa_samaIntroducción al Desarrollo de NDK apps | Dev Day 4 Woman | @condesa_sama
Introducción al Desarrollo de NDK apps | Dev Day 4 Woman | @condesa_samaSoftware Guru
 
Zanjai-como-entorno-de-programacion
Zanjai-como-entorno-de-programacionZanjai-como-entorno-de-programacion
Zanjai-como-entorno-de-programacionjuanpi1991
 
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript Motorola Mobility - MOTODEV
 
[ES] Introdución a la plataforma java
[ES] Introdución a la plataforma java [ES] Introdución a la plataforma java
[ES] Introdución a la plataforma java Eudris Cabrera
 
El entorno visual de trabajo
El entorno visual de trabajoEl entorno visual de trabajo
El entorno visual de trabajouftcs_t711
 
Resolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusResolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusGladys Arce
 
Resolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusResolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusAbefo
 

Similar a Tspe jni-1 (20)

Desarrollo de aplicaciones realmente nativas con NDK
Desarrollo de aplicaciones realmente nativas con NDKDesarrollo de aplicaciones realmente nativas con NDK
Desarrollo de aplicaciones realmente nativas con NDK
 
Tutorial de-c
Tutorial de-cTutorial de-c
Tutorial de-c
 
Tutorial de-c
Tutorial de-cTutorial de-c
Tutorial de-c
 
Tutorial de- c. ++
Tutorial de- c. ++ Tutorial de- c. ++
Tutorial de- c. ++
 
Tutorial de-c ++
Tutorial de-c ++Tutorial de-c ++
Tutorial de-c ++
 
Tutorial de-c ++
Tutorial de-c ++Tutorial de-c ++
Tutorial de-c ++
 
C1 intro java
C1 intro javaC1 intro java
C1 intro java
 
Introducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - JavaIntroducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - Java
 
002 Comohacerun J Clic
002 Comohacerun J Clic002 Comohacerun J Clic
002 Comohacerun J Clic
 
Instalacion de java y NetBeans
Instalacion de java y NetBeansInstalacion de java y NetBeans
Instalacion de java y NetBeans
 
NetBeanside
NetBeansideNetBeanside
NetBeanside
 
Introducción al Desarrollo de NDK apps | Dev Day 4 Woman | @condesa_sama
Introducción al Desarrollo de NDK apps | Dev Day 4 Woman | @condesa_samaIntroducción al Desarrollo de NDK apps | Dev Day 4 Woman | @condesa_sama
Introducción al Desarrollo de NDK apps | Dev Day 4 Woman | @condesa_sama
 
Zanjai-como-entorno-de-programacion
Zanjai-como-entorno-de-programacionZanjai-como-entorno-de-programacion
Zanjai-como-entorno-de-programacion
 
Semana9 Vbr
Semana9 VbrSemana9 Vbr
Semana9 Vbr
 
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
 
Instalacion jdk
Instalacion jdkInstalacion jdk
Instalacion jdk
 
[ES] Introdución a la plataforma java
[ES] Introdución a la plataforma java [ES] Introdución a la plataforma java
[ES] Introdución a la plataforma java
 
El entorno visual de trabajo
El entorno visual de trabajoEl entorno visual de trabajo
El entorno visual de trabajo
 
Resolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusResolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplus
 
Resolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusResolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplus
 

Tspe jni-1

  • 1. TECNOLOGIAS DE SOFTWARE PARA ELECTRONICA Ing. DC, MSc. JNI Quito, 2013
  • 2. Contenido: 1. Concepto y Aspectos generales. 2. Librerias LIB y DLL. 3. Estructura de un Metodo Nativo. 4. Procedimiento para crear un programa con JNI. 5. Introduccion aVisual Studio yVisual C++. 6. Ejemplo Hola Mundo. 18/03/2013 2
  • 3. 1. Concepto y Aspectos Generales - JNI es un mecanismo que permite ejecutar codigo nativo desde Java y viceversa. - JNI tiene una interfaz bidireccional 1. Native methods, permite llamar a funciones de las librerias nativas desde Java. 2. Invocation Interface, permite insertar una JVM en una aplicacion nativa. Interfaz bidireccional entre Java y las librerias nativas. 18/03/2013 3
  • 4. 2. Librerias dll, lib DLL (Dynamic Link Library – librerias de enlace dinamico): - Funciones son insertadas en el tiempo de ejecucion y no de enlazado. - Varios programas pueden compartir la misma libreria. - Ocupa poco espacio de disco duro. - *.dll enWindows, *.so en Mac OS X. 18/03/2013 4
  • 5. 2. Librerias dll, lib LIB (Static Link Library – librerias de enlace estatico): - Las funciones se incluyen dentro del ejecutable durante la fase de enlazado. - La libreria esta presente solo en el programa en ejecucion. - Ocupa mayor espacio de disco duro. - *.lib enWindows, *.a en Mac OS X. 18/03/2013 5
  • 6. 3. Estructura de un metodo nativo class SaludoHola{ private native void holaMundo(); public static void main(String[ ] args){ new SaludoHola().holaMundo(); } static { System.loadLibrary(“Holadll“); } } 18/03/2013 6
  • 7. 4. Procedimiento para crear un programa con JNI - Declarar el(los) metodo(s) en un programa de JAVA. - Compilar el programa de JAVA (javac) - Generar la cabecera (*.h) para programar el codigo nativo. - Programar el codigo nativo en C o C++. - Generar una DLL con el codigo nativo (referenciar a la carpeta include e include win32 enVisual). - Ejecutar el programa de Java (java o NetBeans) 18/03/2013 7
  • 8. 5. Introduccion a Visual Studio - Visual Studio es un Entorno de Desarrollo Integrado que ofrece Microsoft, y que soporta varios lenguajes de programacion de alto nivel como: Visual Basic, C++, C++/CLI, C# , F# parecido a J#. - Version ActualVisio Studio 2010. - Se ejecuta bajo la plataforma .NET (.NET Framework). 18/03/2013 8
  • 10. 5. Visual C++ - Es un IDE para programar C, C++ y C++/CLI. - Conocido tambien como MSVC. - Fue desarrollado por Microsoft para programar bajo Windows. - Visual C++ usa MFC (Microsoft Foundation Classes), que es un conjunto de clases C++ para desarrollar aplicaciones enWindows. - La version gratuita: MicrosoftVisual C++ Express Edition. 18/03/2013 10
  • 11. Contenido: 1. Programa 1- Hola Mundo 2. Tipos de Datos JNI 3. Programa 2 - Suma de 2 numeros 4. Programa 3 - Suma y Resta de dos numeros 18/03/2013 11
  • 12. 1. Programa 1 - Hola Mundo 1. Crear un programa en Java mediante el txt. 2. Ejecutar con el compilador para crear el .class, con >javac Archivo.java 3. Generar la cabecer *h, con >javah –jni Archivoclass 18/03/2013 12
  • 13. 3. Crear un Proyecto conVisual C++ para generar una DLL. 4. Copiar el archivo *.h dentro de la carperta del proyecto de visual C++. 18/03/2013 13 1. Programa 1 - Hola Mundo
  • 14. 5. ConfigurarVisual C++ para trabajar con JNI. 18/03/2013 14 1. Programa 1 - Hola Mundo
  • 15. 6. Agregar en la cabecera del programa los archivos indicados e implementar los metodos correspondientes, y luego ejecutar el programa. 18/03/2013 15 7. Finalmente copie la DLL generada dentro de la carpeta del proyecto, junto al archivo *.class. Luego desde la linea de comando ejecute el interpretador de Java, para ejecutar el programa JNI. >java HolaMundo
  • 16. Para trabajar con JNI, se tiene los siguientes tipos de datos, equivalentes a C/C++. 18/03/2013 16 2. Tipos de Datos JNI: En JAVA EN C/C++ int jint long jlong float jfloat double jdouble boolean jboolean char jchar byte jbyte short jshort - Tipos de Datos Fundamentales
  • 17. Apuntan a objetos y arrays. 18/03/2013 17 2. Tipos de Datos JNI: - Tipos de Datos de Referencia
  • 18. 3. Programa 2 – Suma de 2 numeros Realizar un programa con JNI, para que realice la suma de dos numeros. 18/03/2013 18
  • 19. 4. Programa 3 – Suma y Resta de 2 numeros Realizar un programa con JNI, para que realice tanto la suma como la resta de dos numeros. 18/03/2013 19