SlideShare una empresa de Scribd logo
1 de 2
COMPONENTES NECESARIOS PARA
PROGRAMAR EN ANDROID
Desarrollo de Programas para Android se hace habitualmente con el lenguage de programación Java y el
conjunto de herramientas de desarrollo ( SDK, Software Development Kit ), pero hay otras opciones disponibles. En
Abril del 2011 existían más de 200.000 aplicaciones contabilizadas para Android, con unos 3 millardos de descargas.
La plataforma Android ha crecido hasta ser una de las preferidas por los desarrolladores para plataformas móviles.
Un estudio de junio del 2011 indica que el 67% de los desarrolladores para móviles utilizaban la plataforma en el
momento de la publicación del estudio.
Android SDK
El SDK ( Software Development Kit ) de Android, incluye un conjunto de herramientas de desarrollo. Comprende un
depurador de código, biblioteca, un simulador de teléfono basado en QEMU, documentación, ejemplos de código y
tutoriales. Las plataformas de desarrollo soportadas incluyen Linux ( cualquier distribución moderna ), Mac OS X
10.4.9 o posterior, y Windows XP o posterior. La plataforma integral de desarrollo (IDE, Integrated Development
Environment) soportada oficialmente es Eclipse junto con el complemento ADT ( Android Development Tools plugin ),
aunque también puede utilizarse un editor de texto para escribir ficheros Java y Xml y utilizar comandos en un
terminal ( se necesitan los paquetes JDK, Java Development Kit y Apache Ant ) para crear y depurar aplicaciones.
Además, pueden controlarse dispositivos Android que estén conectados ( e.g. reiniciarlos, instalar aplicaciones en
remoto).
Las Actualizaciones del SDK están coordinadas con el desarrollo general de Android. El SDK soporta también
versiones antiguas de Android, por si los programadores necesitan instalar aplicaciones en dispositivos ya
obsoletos o más antiguos. Las herramientas de desarrollo son componentes descargables, de modo que una vez
instalada la última versión, pueden instalarse versiones anteriores y hacer pruebas de compatibilidad.
Una aplicación Android está compuesta por un conjunto de ficheros empaquetados en formato .apk y guardada en el
directorio /data/app del sistema operativo Android (este directorio necesita permisos de superusuario, root, por
razones de seguridad). Un paquete APK incluye ficheros .dex (ejecutables Dalvik, un código intermedio compilado),
recursos, etc.
Java Development Kit
Java Development Kit o (JDK), es un software que provee herramientas de desarrollo para la creación de
programas en Java. Puede instalarse en una computadora local o en una unidad de red.
En la unidad de red se pueden tener las herramientas distribuidas en varias computadoras y trabajar como una sola
aplicación.
En los sistemas operativosMicrosoft Windows sus variables de entorno son:
JAVAPATH: es una ruta completa del directorio donde está instalado JDK.
CLASSPATH: son las bibliotecas o clases de usuario.
PATH: variable donde se agrega la ubicación de JDK.
Los programas más importantes que se incluyen son:
appletviewer.exe: es un visor de applets para generar sus vistas previas, ya que un applet carece de
método main y no se puede ejecutar con el programa java.
javac.exe: es el compilador de Java.
java.exe: es el intérprete de Java.
javadoc.exe: genera la documentación de las clases Java de un programa.
Eclipse
es un programa informático compuesto por un conjunto de herramientas de programación de código abierto
multiplataforma para desarrollar lo que el proyecto llama "Aplicaciones de Cliente Enriquecido", opuesto a las
aplicaciones "Cliente-liviano" basadas en navegadores. Esta plataforma, típicamente ha sido usada para desarrollar
entornos de desarrollo integrados (del inglés IDE), como el IDE de Java llamado Java Development Toolkit (JDT) y el
compilador (ECJ) que se entrega como parte de Eclipse (y que son usados también para desarrollar el mismo
Eclipse). Sin embargo, también se puede usar para otros tipos de aplicaciones cliente, como BitTorrent o Azureus.
Eclipse es también una comunidad de usuarios, extendiendo constantemente las áreas de aplicación cubiertas. Un
ejemplo es el recientemente creado Eclipse Modeling Project, cubriendo casi todas las áreas de Model Driven
Engineering.
Eclipse fue desarrollado originalmente por IBM como el sucesor de su familia de herramientas para VisualAge.
Eclipse es ahora desarrollado por la Fundación Eclipse, una organización independiente sin ánimo de lucro que
fomenta una comunidad de código abierto y un conjunto de productos complementarios, capacidades y servicios.
Eclipse fue liberado originalmente bajo la Common Public License, pero después fue re-licenciado bajo la Eclipse
Public License. La Free Software Foundation ha dicho que ambas licencias son licencias de software libre, pero son
incompatibles con Licencia pública general de GNU (GNU GPL).

Más contenido relacionado

La actualidad más candente

Fundamentos desarrollo de Apps para Android
Fundamentos desarrollo de Apps para AndroidFundamentos desarrollo de Apps para Android
Fundamentos desarrollo de Apps para Androidandresuarezz26
 
Curso de Android 4.x Unidad 02 SDK y AVD Manager
Curso de Android 4.x Unidad 02 SDK y AVD ManagerCurso de Android 4.x Unidad 02 SDK y AVD Manager
Curso de Android 4.x Unidad 02 SDK y AVD ManagerDavid Vaquero
 
22 07-13 eclipse grupo 6
22 07-13 eclipse grupo 622 07-13 eclipse grupo 6
22 07-13 eclipse grupo 6Maga Lasic
 
Presentacion eclipse - grupo 6
Presentacion   eclipse - grupo 6Presentacion   eclipse - grupo 6
Presentacion eclipse - grupo 6Maga Lasic
 
R esume libro el gran libro de android
R esume libro el gran libro de androidR esume libro el gran libro de android
R esume libro el gran libro de androidwiliam lliulli herrera
 
Java eclipse-y-android-studio
Java eclipse-y-android-studioJava eclipse-y-android-studio
Java eclipse-y-android-studioDies Irae
 
Android Studio - Ventajas y desventajas
Android Studio - Ventajas y desventajasAndroid Studio - Ventajas y desventajas
Android Studio - Ventajas y desventajasJorge Martín Espinosa
 
Entornos De Desarrollo Integrados
Entornos De Desarrollo IntegradosEntornos De Desarrollo Integrados
Entornos De Desarrollo IntegradosUGM
 
Desarrollo android - 2 - arquitectura del sistema
Desarrollo android   - 2 - arquitectura del sistemaDesarrollo android   - 2 - arquitectura del sistema
Desarrollo android - 2 - arquitectura del sistemaEmilio Aviles Avila
 
Cristian barsallo
Cristian barsalloCristian barsallo
Cristian barsallojosuecarrio
 
Exposición 20 aniversario linux
Exposición 20 aniversario linuxExposición 20 aniversario linux
Exposición 20 aniversario linuxFreelancer
 

La actualidad más candente (18)

Netbeans Ide ENFEES
Netbeans Ide ENFEESNetbeans Ide ENFEES
Netbeans Ide ENFEES
 
Fundamentos desarrollo de Apps para Android
Fundamentos desarrollo de Apps para AndroidFundamentos desarrollo de Apps para Android
Fundamentos desarrollo de Apps para Android
 
Curso de Android 4.x Unidad 02 SDK y AVD Manager
Curso de Android 4.x Unidad 02 SDK y AVD ManagerCurso de Android 4.x Unidad 02 SDK y AVD Manager
Curso de Android 4.x Unidad 02 SDK y AVD Manager
 
Java con eclipse
Java con eclipseJava con eclipse
Java con eclipse
 
22 07-13 eclipse grupo 6
22 07-13 eclipse grupo 622 07-13 eclipse grupo 6
22 07-13 eclipse grupo 6
 
Lenguajes de Programación: Android
Lenguajes de Programación: AndroidLenguajes de Programación: Android
Lenguajes de Programación: Android
 
Presentacion eclipse - grupo 6
Presentacion   eclipse - grupo 6Presentacion   eclipse - grupo 6
Presentacion eclipse - grupo 6
 
R esume libro el gran libro de android
R esume libro el gran libro de androidR esume libro el gran libro de android
R esume libro el gran libro de android
 
Entornos-de-Desarrollo-Eclipse-y-Android-SDK
Entornos-de-Desarrollo-Eclipse-y-Android-SDKEntornos-de-Desarrollo-Eclipse-y-Android-SDK
Entornos-de-Desarrollo-Eclipse-y-Android-SDK
 
Android studio
Android studioAndroid studio
Android studio
 
Java eclipse-y-android-studio
Java eclipse-y-android-studioJava eclipse-y-android-studio
Java eclipse-y-android-studio
 
Android Studio - Ventajas y desventajas
Android Studio - Ventajas y desventajasAndroid Studio - Ventajas y desventajas
Android Studio - Ventajas y desventajas
 
Entornos De Desarrollo Integrados
Entornos De Desarrollo IntegradosEntornos De Desarrollo Integrados
Entornos De Desarrollo Integrados
 
Desarrollo android - 2 - arquitectura del sistema
Desarrollo android   - 2 - arquitectura del sistemaDesarrollo android   - 2 - arquitectura del sistema
Desarrollo android - 2 - arquitectura del sistema
 
Cristian barsallo
Cristian barsalloCristian barsallo
Cristian barsallo
 
15
1515
15
 
Dispositivos moviles
Dispositivos movilesDispositivos moviles
Dispositivos moviles
 
Exposición 20 aniversario linux
Exposición 20 aniversario linuxExposición 20 aniversario linux
Exposición 20 aniversario linux
 

Destacado

Modelo de enseñanza
Modelo de enseñanzaModelo de enseñanza
Modelo de enseñanzatomyycerr
 
солнечные и лунные затмения
солнечные и лунные затмениясолнечные и лунные затмения
солнечные и лунные затменияkuyiof
 
Evolución de la web
Evolución de la webEvolución de la web
Evolución de la webgaroadty
 
Peer lectures in the medical undergraduate curriculum: a valid tool for lear...
Peer lectures in the medical undergraduate curriculum: a valid tool for  lear...Peer lectures in the medical undergraduate curriculum: a valid tool for  lear...
Peer lectures in the medical undergraduate curriculum: a valid tool for lear...UCL Medical Society (Education) 2012-2013
 
Proyecto de Ley Ensamblaje en el Perú
Proyecto de Ley Ensamblaje en el PerúProyecto de Ley Ensamblaje en el Perú
Proyecto de Ley Ensamblaje en el Perújt_system
 
презентация1
презентация1презентация1
презентация1Andrey Fomenko
 
презентация учительская
презентация учительскаяпрезентация учительская
презентация учительскаяGalinaBasova
 
Dn11 u3 a5_jcpo
Dn11 u3 a5_jcpoDn11 u3 a5_jcpo
Dn11 u3 a5_jcpochcesar
 
семинарское занятие 4
семинарское занятие  4семинарское занятие  4
семинарское занятие 4studentkgu
 
Weihnachten_Millionenquiz
Weihnachten_MillionenquizWeihnachten_Millionenquiz
Weihnachten_Millionenquizdeutschonline
 
Quinta primaria
Quinta primariaQuinta primaria
Quinta primariayuuki_88
 
Mapa Conceptual de Politicas TIC en Colombia
Mapa Conceptual de Politicas TIC en ColombiaMapa Conceptual de Politicas TIC en Colombia
Mapa Conceptual de Politicas TIC en ColombiaConcentida1
 
Comunicación en línea
Comunicación en líneaComunicación en línea
Comunicación en líneaCarmen Murillo
 
Sesion 2
Sesion 2Sesion 2
Sesion 2hekeca
 
El telefono trabajo final....................... (2)
El telefono  trabajo final....................... (2)El telefono  trabajo final....................... (2)
El telefono trabajo final....................... (2)carmelo chamorro
 

Destacado (20)

PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1
 
Modelo de enseñanza
Modelo de enseñanzaModelo de enseñanza
Modelo de enseñanza
 
патрмоа
патрмоапатрмоа
патрмоа
 
солнечные и лунные затмения
солнечные и лунные затмениясолнечные и лунные затмения
солнечные и лунные затмения
 
Mapas 2
Mapas 2Mapas 2
Mapas 2
 
Evolución de la web
Evolución de la webEvolución de la web
Evolución de la web
 
Peer lectures in the medical undergraduate curriculum: a valid tool for lear...
Peer lectures in the medical undergraduate curriculum: a valid tool for  lear...Peer lectures in the medical undergraduate curriculum: a valid tool for  lear...
Peer lectures in the medical undergraduate curriculum: a valid tool for lear...
 
Proyecto de Ley Ensamblaje en el Perú
Proyecto de Ley Ensamblaje en el PerúProyecto de Ley Ensamblaje en el Perú
Proyecto de Ley Ensamblaje en el Perú
 
презентация1
презентация1презентация1
презентация1
 
презентация учительская
презентация учительскаяпрезентация учительская
презентация учительская
 
Dn11 u3 a5_jcpo
Dn11 u3 a5_jcpoDn11 u3 a5_jcpo
Dn11 u3 a5_jcpo
 
семинарское занятие 4
семинарское занятие  4семинарское занятие  4
семинарское занятие 4
 
Weihnachten_Millionenquiz
Weihnachten_MillionenquizWeihnachten_Millionenquiz
Weihnachten_Millionenquiz
 
Quinta primaria
Quinta primariaQuinta primaria
Quinta primaria
 
Termino innovacion
Termino innovacionTermino innovacion
Termino innovacion
 
Mapa Conceptual de Politicas TIC en Colombia
Mapa Conceptual de Politicas TIC en ColombiaMapa Conceptual de Politicas TIC en Colombia
Mapa Conceptual de Politicas TIC en Colombia
 
Comunicación en línea
Comunicación en líneaComunicación en línea
Comunicación en línea
 
Sesion 2
Sesion 2Sesion 2
Sesion 2
 
El telefono trabajo final....................... (2)
El telefono  trabajo final....................... (2)El telefono  trabajo final....................... (2)
El telefono trabajo final....................... (2)
 
Constelaciones123
Constelaciones123Constelaciones123
Constelaciones123
 

Similar a Componentes necesarios para programar en androi1

Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1Jorge Ulises
 
"Android de la A a la Z" -- Unidad 1
"Android de la A a la Z" -- Unidad 1"Android de la A a la Z" -- Unidad 1
"Android de la A a la Z" -- Unidad 1Android UNAM
 
12j sistemaandroid texto
12j sistemaandroid texto12j sistemaandroid texto
12j sistemaandroid textoHenry Ortiz
 
Curso de programación básico de android
Curso de programación básico de androidCurso de programación básico de android
Curso de programación básico de androidENANITOS120
 
Introducción a la programación androide
Introducción a la programación androideIntroducción a la programación androide
Introducción a la programación androideJomicast
 
Eclipse José Manuel unidad 1 semestre 2
Eclipse José Manuel unidad 1 semestre 2Eclipse José Manuel unidad 1 semestre 2
Eclipse José Manuel unidad 1 semestre 2K Manuel TN
 
Eclipse jose manuel
Eclipse jose  manuelEclipse jose  manuel
Eclipse jose manuelK Manuel TN
 
Arquitectura android
Arquitectura androidArquitectura android
Arquitectura androidalerop
 
Introducción al desarrollo de aplicaciones para Android
Introducción al desarrollo de aplicaciones para AndroidIntroducción al desarrollo de aplicaciones para Android
Introducción al desarrollo de aplicaciones para AndroidArmando Picón Z.
 
Curso de desarrollo de aplicaciones Android - Sesión 1
Curso de desarrollo de aplicaciones Android - Sesión 1Curso de desarrollo de aplicaciones Android - Sesión 1
Curso de desarrollo de aplicaciones Android - Sesión 1Daniel Alvarez
 
"Android de la A a la Z" -- Unidad 3
"Android de la A a la Z" -- Unidad 3"Android de la A a la Z" -- Unidad 3
"Android de la A a la Z" -- Unidad 3Android UNAM
 

Similar a Componentes necesarios para programar en androi1 (20)

App inventor
App inventorApp inventor
App inventor
 
Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1
 
"Android de la A a la Z" -- Unidad 1
"Android de la A a la Z" -- Unidad 1"Android de la A a la Z" -- Unidad 1
"Android de la A a la Z" -- Unidad 1
 
Material rap1
Material rap1Material rap1
Material rap1
 
Documento de android
Documento de androidDocumento de android
Documento de android
 
12j sistemaandroid texto
12j sistemaandroid texto12j sistemaandroid texto
12j sistemaandroid texto
 
Curso de programación básico de android
Curso de programación básico de androidCurso de programación básico de android
Curso de programación básico de android
 
Introducción a la programación androide
Introducción a la programación androideIntroducción a la programación androide
Introducción a la programación androide
 
Eclipse
EclipseEclipse
Eclipse
 
Eclipse José Manuel unidad 1 semestre 2
Eclipse José Manuel unidad 1 semestre 2Eclipse José Manuel unidad 1 semestre 2
Eclipse José Manuel unidad 1 semestre 2
 
Eclipse jose manuel
Eclipse jose  manuelEclipse jose  manuel
Eclipse jose manuel
 
B android
B androidB android
B android
 
Arquitectura android
Arquitectura androidArquitectura android
Arquitectura android
 
Introducción al desarrollo de aplicaciones para Android
Introducción al desarrollo de aplicaciones para AndroidIntroducción al desarrollo de aplicaciones para Android
Introducción al desarrollo de aplicaciones para Android
 
Curso de desarrollo de aplicaciones Android - Sesión 1
Curso de desarrollo de aplicaciones Android - Sesión 1Curso de desarrollo de aplicaciones Android - Sesión 1
Curso de desarrollo de aplicaciones Android - Sesión 1
 
"Android de la A a la Z" -- Unidad 3
"Android de la A a la Z" -- Unidad 3"Android de la A a la Z" -- Unidad 3
"Android de la A a la Z" -- Unidad 3
 
Herramientas para Desarrollo de Aplicaciones Moviles
Herramientas para Desarrollo de Aplicaciones MovilesHerramientas para Desarrollo de Aplicaciones Moviles
Herramientas para Desarrollo de Aplicaciones Moviles
 
android evolution
android evolutionandroid evolution
android evolution
 
Taller de Android
Taller de AndroidTaller de Android
Taller de Android
 
Android p
Android pAndroid p
Android p
 

Más de Luis Mario Zapata Azua (20)

Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Actividad 4
Actividad  4Actividad  4
Actividad 4
 
Actividad 3
Actividad 3Actividad 3
Actividad 3
 
Actividad 2
Actividad 2Actividad 2
Actividad 2
 
Actividad 1
Actividad 1Actividad 1
Actividad 1
 
Manual de soporte
Manual de soporteManual de soporte
Manual de soporte
 
Manual de mantenimiento
Manual de mantenimientoManual de mantenimiento
Manual de mantenimiento
 
Video instalacion
Video instalacionVideo instalacion
Video instalacion
 
Pseudocódigo diagrama de-flujo
Pseudocódigo diagrama de-flujoPseudocódigo diagrama de-flujo
Pseudocódigo diagrama de-flujo
 
Características de versiones de android
Características de versiones de androidCaracterísticas de versiones de android
Características de versiones de android
 
Android un sistema operativo es propiedad de google desde el 2005
Android un sistema operativo es propiedad de google  desde el 2005Android un sistema operativo es propiedad de google  desde el 2005
Android un sistema operativo es propiedad de google desde el 2005
 
Act 49
Act 49Act 49
Act 49
 
Act 43
Act 43Act 43
Act 43
 
Act 30,32,33,34,35
Act 30,32,33,34,35Act 30,32,33,34,35
Act 30,32,33,34,35
 
Actividad 26
Actividad 26Actividad 26
Actividad 26
 
Actividad 26
Actividad 26Actividad 26
Actividad 26
 
Act19
Act19Act19
Act19
 
Actividad 16
Actividad 16Actividad 16
Actividad 16
 
Act 51
Act 51Act 51
Act 51
 
Act.45
Act.45Act.45
Act.45
 

Componentes necesarios para programar en androi1

  • 1. COMPONENTES NECESARIOS PARA PROGRAMAR EN ANDROID Desarrollo de Programas para Android se hace habitualmente con el lenguage de programación Java y el conjunto de herramientas de desarrollo ( SDK, Software Development Kit ), pero hay otras opciones disponibles. En Abril del 2011 existían más de 200.000 aplicaciones contabilizadas para Android, con unos 3 millardos de descargas. La plataforma Android ha crecido hasta ser una de las preferidas por los desarrolladores para plataformas móviles. Un estudio de junio del 2011 indica que el 67% de los desarrolladores para móviles utilizaban la plataforma en el momento de la publicación del estudio. Android SDK El SDK ( Software Development Kit ) de Android, incluye un conjunto de herramientas de desarrollo. Comprende un depurador de código, biblioteca, un simulador de teléfono basado en QEMU, documentación, ejemplos de código y tutoriales. Las plataformas de desarrollo soportadas incluyen Linux ( cualquier distribución moderna ), Mac OS X 10.4.9 o posterior, y Windows XP o posterior. La plataforma integral de desarrollo (IDE, Integrated Development Environment) soportada oficialmente es Eclipse junto con el complemento ADT ( Android Development Tools plugin ), aunque también puede utilizarse un editor de texto para escribir ficheros Java y Xml y utilizar comandos en un terminal ( se necesitan los paquetes JDK, Java Development Kit y Apache Ant ) para crear y depurar aplicaciones. Además, pueden controlarse dispositivos Android que estén conectados ( e.g. reiniciarlos, instalar aplicaciones en remoto). Las Actualizaciones del SDK están coordinadas con el desarrollo general de Android. El SDK soporta también versiones antiguas de Android, por si los programadores necesitan instalar aplicaciones en dispositivos ya obsoletos o más antiguos. Las herramientas de desarrollo son componentes descargables, de modo que una vez instalada la última versión, pueden instalarse versiones anteriores y hacer pruebas de compatibilidad. Una aplicación Android está compuesta por un conjunto de ficheros empaquetados en formato .apk y guardada en el directorio /data/app del sistema operativo Android (este directorio necesita permisos de superusuario, root, por razones de seguridad). Un paquete APK incluye ficheros .dex (ejecutables Dalvik, un código intermedio compilado), recursos, etc. Java Development Kit Java Development Kit o (JDK), es un software que provee herramientas de desarrollo para la creación de programas en Java. Puede instalarse en una computadora local o en una unidad de red. En la unidad de red se pueden tener las herramientas distribuidas en varias computadoras y trabajar como una sola aplicación. En los sistemas operativosMicrosoft Windows sus variables de entorno son: JAVAPATH: es una ruta completa del directorio donde está instalado JDK. CLASSPATH: son las bibliotecas o clases de usuario.
  • 2. PATH: variable donde se agrega la ubicación de JDK. Los programas más importantes que se incluyen son: appletviewer.exe: es un visor de applets para generar sus vistas previas, ya que un applet carece de método main y no se puede ejecutar con el programa java. javac.exe: es el compilador de Java. java.exe: es el intérprete de Java. javadoc.exe: genera la documentación de las clases Java de un programa. Eclipse es un programa informático compuesto por un conjunto de herramientas de programación de código abierto multiplataforma para desarrollar lo que el proyecto llama "Aplicaciones de Cliente Enriquecido", opuesto a las aplicaciones "Cliente-liviano" basadas en navegadores. Esta plataforma, típicamente ha sido usada para desarrollar entornos de desarrollo integrados (del inglés IDE), como el IDE de Java llamado Java Development Toolkit (JDT) y el compilador (ECJ) que se entrega como parte de Eclipse (y que son usados también para desarrollar el mismo Eclipse). Sin embargo, también se puede usar para otros tipos de aplicaciones cliente, como BitTorrent o Azureus. Eclipse es también una comunidad de usuarios, extendiendo constantemente las áreas de aplicación cubiertas. Un ejemplo es el recientemente creado Eclipse Modeling Project, cubriendo casi todas las áreas de Model Driven Engineering. Eclipse fue desarrollado originalmente por IBM como el sucesor de su familia de herramientas para VisualAge. Eclipse es ahora desarrollado por la Fundación Eclipse, una organización independiente sin ánimo de lucro que fomenta una comunidad de código abierto y un conjunto de productos complementarios, capacidades y servicios. Eclipse fue liberado originalmente bajo la Common Public License, pero después fue re-licenciado bajo la Eclipse Public License. La Free Software Foundation ha dicho que ambas licencias son licencias de software libre, pero son incompatibles con Licencia pública general de GNU (GNU GPL).