Diferencia entre revisiones de «Usuario:ManuelRomero/Android2/Introduccion»
De WikiEducator
(→Versiones de Android) |
(→Versiones de Android) |
||
| (37 revisiones intermedias por el mismo usuario no mostrado) | |||
| Línea 1: | Línea 1: | ||
| + | {{:Usuario:ManuelRomero/Android2/nav}} | ||
| + | <br> | ||
| + | {{#widget:Slides}} | ||
| + | {{MiTitulo| Programación en android }} | ||
| + | <div class="slides layout-regular template-default"> | ||
| + | <div class="slide"> | ||
===Qué es android=== | ===Qué es android=== | ||
| − | + | *Es una plataforma software y un Sistema Operativo basada en el núcleo de Linux. | |
| − | + | *Aplicado a un subconjunto de dispositivos móviles y tablet; | |
| − | * | + | |
*Como cualquier sistema operativo permite gestionar y controlar el hardware del dispositivo, como GPS, cámara de fotos,etc; | *Como cualquier sistema operativo permite gestionar y controlar el hardware del dispositivo, como GPS, cámara de fotos,etc; | ||
*También la ejecución de programas en dicho entorno. | *También la ejecución de programas en dicho entorno. | ||
*Para gestionar ''hardware'' tan variado (el que pueden contener dispositivos móviles), se usan bibliotecas desarrolladas o adaptadas por principalmente por Google. | *Para gestionar ''hardware'' tan variado (el que pueden contener dispositivos móviles), se usan bibliotecas desarrolladas o adaptadas por principalmente por Google. | ||
*Para el desarrollo de aplicaciones se usa el lenguaje de programación '''''Java''''' | *Para el desarrollo de aplicaciones se usa el lenguaje de programación '''''Java''''' | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | |||
===Código abierto=== | ===Código abierto=== | ||
<br/> | <br/> | ||
| − | + | '''''Android''''' es una plataforma de código abierto. | |
| − | *Esto quiere decir, que ''cualquier desarrollador'' puede crear y desarrollar aplicaciones escritas con lenguaje C u otros lenguajes y compilarlas a código nativo de '''''ARM (API de Android)''''' | + | *Esto quiere decir, que ''cualquier desarrollador'' puede crear y desarrollar aplicaciones escritas con lenguaje C u otros lenguajes y compilarlas a código nativo de '''''[http://es.wikipedia.org/wiki/Arquitectura_ARM ARM] (API de Android)''''' |
| + | *Android se puede desarrollar usando diferentes lenguajes :C, VisualBasic (.NET), C++, C#, QT (Que no deja de ser C++) | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | |||
| + | ===Entornos de desarrollo=== | ||
| + | *Existen diferentes entornos para desarrollar aplicaciones en android. | ||
| + | #Basic4Android | ||
| + | #Visual Studio con SDK: Android de Mono. C y C# | ||
| + | #App Inventor | ||
| + | # Live Code Entorno para desarrollar para aplicaciones móviles de diferentes plataformas | ||
| + | #In Design CS6 | ||
| + | #En java con IDE Eclipse, Intellij Idea, y ahora en pruebas '''''Android studio''''' | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | ===Entornos de desarrollo información=== | ||
| + | <br/> | ||
| + | {{Recursos de la Web| | ||
| + | *Ver para obtener información de cada entorno | ||
| + | *http://androideity.com/2012/07/16/5-lenguajes-para-programar-en-android/ | ||
| + | |||
| + | *http://www.xatakandroid.com/programacion-android/intel-publica-beacon-mountain-para-desarrollos-android-sobre-arm-y-atom | ||
| + | }} | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | |||
| + | ===Comunidad de desarrolladores de Android=== | ||
| + | ;[http://stackoverflow.com/ Stack Overflow] | ||
| + | :un sitio colaborativo de preguntas y respuestas para desarrolladores | ||
| + | :Los desarrolladores votan las respuestas lo cual da confianza sobre las ''buenas'' respuestas | ||
| + | ;[http://developer.android.com/training/index.html Google Android Training] | ||
| + | :Tenemos numerosas clases agrupadas por temas | ||
| + | :Tenemos un manual de como empezar e ir avanzando | ||
| + | :Es una importante y garantizada fuente de información | ||
| + | ;[https://groups.google.com/group/android-discuss/BfKnSUV-7r0 Android Discuss] | ||
| + | :es un grupo de debate y discusión alojado en google; Seguido muy de cerca por el equipo de Android en Google | ||
| + | :Buen sitio para aclarar dudas y aprender trucos y consejos. | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | |||
===Historia de Android=== | ===Historia de Android=== | ||
#Inicialmente desarrodo por Android Inc., una pequeña compañía o startup (''así se conoce a los negocios con amplias posibilidades de crecimiento el EEUU) fundada en California en 2003 | #Inicialmente desarrodo por Android Inc., una pequeña compañía o startup (''así se conoce a los negocios con amplias posibilidades de crecimiento el EEUU) fundada en California en 2003 | ||
| Línea 20: | Línea 67: | ||
#La Open Handset Alliance, la OHA estrenó su primer producto, '''''Android''''', una plataforma para dispositivos móviles construida sobre la versión 2.6 de Linux. | #La Open Handset Alliance, la OHA estrenó su primer producto, '''''Android''''', una plataforma para dispositivos móviles construida sobre la versión 2.6 de Linux. | ||
#El 9 de diciembre de 2008, se anunció que 14 nuevos miembros se unirían al proyecto Android, incluyendo PacketVideo, ARM Holdings, Atheros Communications, Asustek, Garmin, Softbank, Sony Ericsson, Toshiba, Vodafone y ZTE. | #El 9 de diciembre de 2008, se anunció que 14 nuevos miembros se unirían al proyecto Android, incluyendo PacketVideo, ARM Holdings, Atheros Communications, Asustek, Garmin, Softbank, Sony Ericsson, Toshiba, Vodafone y ZTE. | ||
| + | </div> | ||
| + | <div class="slide"> | ||
===Versiones de Android=== | ===Versiones de Android=== | ||
{| class="wikitable" | {| class="wikitable" | ||
| Línea 25: | Línea 74: | ||
!Versión de android!!API!! Nombre en clave | !Versión de android!!API!! Nombre en clave | ||
|- | |- | ||
| − | |Android 4.2|| | + | |Android 4.3||18||JELLY_BEAN |
| + | |- | ||
| + | |Android 4.2||17||JELLY_BEAN | ||
| + | |- | ||
| + | |Android 4.2||17||JELLY_BEAN_MR1 | ||
|- | |- | ||
|Android 4.1, 4.1.1||16||JELLY_BEAN | |Android 4.1, 4.1.1||16||JELLY_BEAN | ||
| Línea 41: | Línea 94: | ||
|Android 2.3.4-Android 2.3.3||10||GINGERBREAD_MR1 | |Android 2.3.4-Android 2.3.3||10||GINGERBREAD_MR1 | ||
|- | |- | ||
| + | |} | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | |||
| + | ===Versiones de Android (Continuacion)=== | ||
| + | {| class="wikitable" | ||
| + | |+breve historia de las versiones de android | ||
| + | !Versión de android!!API!! Nombre en clave | ||
| + | |- | ||
| + | |||
|Android 2.3.2-Android 2.3.1-Android 2.3||9||GINGERBREAD | |Android 2.3.2-Android 2.3.1-Android 2.3||9||GINGERBREAD | ||
|- | |- | ||
| Línea 60: | Línea 123: | ||
|- | |- | ||
|} | |} | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| − | === | + | ===Qué version usan los dispositivos=== |
| − | + | *A la hora de desarrollar una aplicación habría que ver qué versiones tienen los dispositivos | |
| + | *Google facilita un estudio con esta información | ||
| + | *Conviene echarle un vistazo | ||
| + | http://developer.android.com/about/dashboards/index.html | ||
| + | *Esto es muy importante ya que nosotros dependemos de versiones de API | ||
| + | *si mi aplicación usa API de version 15 por ejemplo, no se podrá ejecutar en dispositivos que tengan API de inferior version | ||
| + | *Solución de compromiso | ||
| + | *No usar API de versión moderna implica llegar a más público | ||
| + | *No usar API de versión moderna implica no poder usar nuevas funionalidades | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | |||
| + | ===Carácterísticas de Android=== | ||
;Almacenamiento | ;Almacenamiento | ||
:Utiliza SQLite: base de datos relacional y ligera. | :Utiliza SQLite: base de datos relacional y ligera. | ||
| − | ;Conectividad : Soporta las | + | ;Conectividad: Soporta las siguientes tecnologías para conexiones |
GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, incluyendo A2DP, AVRCP), Wi-Fi, LTE, WiMAX | GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, incluyendo A2DP, AVRCP), Wi-Fi, LTE, WiMAX | ||
;Mensajería | ;Mensajería | ||
| Línea 72: | Línea 149: | ||
;Navegador Web | ;Navegador Web | ||
:Basado en código abierte de WebKit junto con JavaScript V8 de Chrome | :Basado en código abierte de WebKit junto con JavaScript V8 de Chrome | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | ===Carácterísticas de Android=== | ||
;Multimedia | ;Multimedia | ||
: Soporte para medios con formatos comunes de audio, video e imágenes planas | : Soporte para medios con formatos comunes de audio, video e imágenes planas | ||
| Línea 80: | Línea 160: | ||
;Soporte Harware (Siempre que el dispositivo disponga del hardware) | ;Soporte Harware (Siempre que el dispositivo disponga del hardware) | ||
:Sensor acelerómetro, cámaram brújula digital, sensor de proximidad y GPS | :Sensor acelerómetro, cámaram brújula digital, sensor de proximidad y GPS | ||
| − | ;Multipantalla táctil | + | </div> |
| + | <div class="slide"> | ||
| + | |||
| + | ===Carácterísticas de Android=== | ||
| + | ;Multipantalla táctil multipunto | ||
| + | :entre 5 y 10 puntos de reconocimeintos simultáneos | ||
;Multitarea | ;Multitarea | ||
;Soporte Flash:La versión 2.1 de Android soporta Flash 10.1 | ;Soporte Flash:La versión 2.1 de Android soporta Flash 10.1 | ||
| Línea 89: | Línea 174: | ||
;Máquina virtual Dalvik | ;Máquina virtual Dalvik | ||
: Base de llamadas de instancias muy similar a Java. Para entornos de desarrollo | : Base de llamadas de instancias muy similar a Java. Para entornos de desarrollo | ||
| + | </div> | ||
| + | <div class="slide"> | ||
===Arquitectura de Android=== | ===Arquitectura de Android=== | ||
[[Imagen:ArquitecturaAndroid.png]] | [[Imagen:ArquitecturaAndroid.png]] | ||
| + | </div> | ||
| + | <div class="slide"> | ||
===Arquitectura del sistema operativo Android=== | ===Arquitectura del sistema operativo Android=== | ||
*El sistema operativo Android se divide en '''''5 secciones''''' de '''''4 niveles''''' principales | *El sistema operativo Android se divide en '''''5 secciones''''' de '''''4 niveles''''' principales | ||
| Línea 99: | Línea 188: | ||
# Nivel de librerías (Formado por librerías y y nivel de tiempo de ejecución de android | # Nivel de librerías (Formado por librerías y y nivel de tiempo de ejecución de android | ||
# Nivel de Kernel de Linux | # Nivel de Kernel de Linux | ||
| − | + | </div> | |
| + | <div class="slide"> | ||
===NIVEL DE APLICACIONES=== | ===NIVEL DE APLICACIONES=== | ||
| − | Este nivel referencia a todas las aplicaciones que se distribuyen con el sistema operativo | + | *Este nivel referencia a todas las aplicaciones que se distribuyen con el sistema operativo |
| − | Entre ellas tendremos seguro: | + | *Cada una de ellas ha de correr en una máquina virutal Dalvik |
| + | *Entre ellas tendremos seguro: | ||
#contactos | #contactos | ||
#cliente de correo | #cliente de correo | ||
#calendario, y algun otro servicio mínimo | #calendario, y algun otro servicio mínimo | ||
#También se incluyen todas las aplicaciones que podemos descargar e instalar desde Google Play | #También se incluyen todas las aplicaciones que podemos descargar e instalar desde Google Play | ||
| + | </div> | ||
| + | <div class="slide"> | ||
===Arquitectura : FrameWork=== | ===Arquitectura : FrameWork=== | ||
*El Framework proporciona muchas interfaces de programación | *El Framework proporciona muchas interfaces de programación | ||
*Esto posibilita una programación sencilla simplificando el desarrollo y reutilizando recursos | *Esto posibilita una programación sencilla simplificando el desarrollo y reutilizando recursos | ||
| − | *Todos los desarrolladores de aplicaciones Android, tienen acceso total al código fuente usado en las aplicaciones base. | + | *Todos los desarrolladores de aplicaciones Android, tienen acceso total al código fuente usado en las aplicaciones base. |
| − | + | </div> | |
| − | # | + | <div class="slide"> |
| − | Para permitir a las aplicaciones acceder a datos y otros programas de aplicación | + | |
| + | ===Arquitectura : FrameWork (entorno de desarrollo de aplicaciones) === | ||
| + | En ella tenemos una serie de componentes, accesibles para los desarrollo de aplicaciones. | ||
| + | Lo que desarrollemos se puede reutilizar ya que puede implementar uno de los componentes disponibles | ||
| + | *Tenemos las siguientes elementos: | ||
| + | #View | ||
| + | Es la base de los componentes gráficos p.e. un botón es una clase que extiende de view. | ||
| + | El SDK de android aunque accede a gran parte de JRE, p.e. la clase Swing no lo incorpora | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | ===Arquitectura : FrameWork (entorno de desarrollo de aplicaciones) === | ||
| + | #Activity | ||
| + | :Gestiona las actividades y la pila de ejecución arrancando, parando ocultano o eliminando actividades | ||
| + | #Content Provider | ||
| + | :Para permitir a las aplicaciones acceder a datos y otros programas de aplicación | ||
#Gestor de recursos | #Gestor de recursos | ||
| − | + | :para gestionar las partes que no son programa como codificación multilenguaje, fotos y efectos de sonido. | |
#Gestor de notificaciones | #Gestor de notificaciones | ||
| − | + | :para permitir a las aplicaciones notificar a la interfaz de mensajes de usuarios, meidante la barra de estado | |
| + | </div> | ||
| + | <div class="slide"> | ||
| + | |||
===Arquitectura : Librerías=== | ===Arquitectura : Librerías=== | ||
*Son librerías enlazadas de C y C++, conectadas en dos direciones | *Son librerías enlazadas de C y C++, conectadas en dos direciones | ||
#Hacia arriba con el framework de aplicaciones | #Hacia arriba con el framework de aplicaciones | ||
#Hacia abajo con el kernel del SO | #Hacia abajo con el kernel del SO | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | |||
| + | ===Arquitectura : Librería principal o nativas === | ||
*La libería principal incluye las siguientes: | *La libería principal incluye las siguientes: | ||
#Una librería de sistema C | #Una librería de sistema C | ||
| − | #Una librería multimedia | + | #Una librería multimedia (Soporta MPEG4, H.264, MP3, AAC, AMR, JPG, PNG) |
| − | # | + | #Librería de administrador de superficies: acceso a la representación 2D y 3D. |
| − | #Una librería de base de datos | + | #SGL Motor gráfico 2D |
| − | #Una librería de 3D | + | #Una librería de base de datos SQLite |
| − | #Una librería de fuentes | + | </div> |
| + | <div class="slide"> | ||
| + | ===Arquitectura : Librería principal o nativas === | ||
| + | #Una librería de 3D implemntación de OpenGL ES 1.0 | ||
| + | #Una librería de fuentes bitmap y renderizado vectorial | ||
#Una librería de WebKit para funcionalidades de navegación web. | #Una librería de WebKit para funcionalidades de navegación web. | ||
| + | #Librería de seguridad : SSL cifrado de Secure Socket Layer | ||
| + | </div> | ||
| + | <div class="slide"> | ||
===Arquitectura : RunTime=== | ===Arquitectura : RunTime=== | ||
| − | *A este nivel tenemos la librería del kernel y la máquina virtual de Dalvik | + | *A este nivel tenemos la librería del kernel y la máquina virtual de [http://en.wikipedia.org/wiki/Dalvik_(software) Dalvik] |
| + | *Se usa esta MV y no la de Java por las limitaciones de memoria y velocidad de los dispositivos. | ||
*Android incorpora un set de librerías que aportan la mayor parte de las funcionalidades disponibles en las librerías base del lenguaje de programación Java. | *Android incorpora un set de librerías que aportan la mayor parte de las funcionalidades disponibles en las librerías base del lenguaje de programación Java. | ||
| − | *La Máquina Virtual está basada en registros, y corre clases compiladas por el compilador de Java que anteriormente han sido transformadas al formato .dex (Dalvik Executable) por la herramienta ''dx''. | + | *La Máquina Virtual está basada en registros, y corre clases compiladas por el compilador de Java que anteriormente han sido transformadas al formato .dex (Dalvik Executable) por la herramienta ''dx''. |
| + | </div> | ||
| + | <div class="slide"> | ||
| + | ===Arquitectura : RunTime=== | ||
| + | *Los ficheros dex están obtimizados en espacio (menos instrucciones menos espacio y más rápida la ejecución) | ||
| + | *Cada aplicación se ejecuta en una instancia de una máquia virtual. | ||
| + | *Linus crfea un thread con una instanacia de la MV Dalvik | ||
| + | *Esto es un principio de seguridad importante, y por ese motivo hay que dar permisos para acceder al hardware en el desarrollo de la aplicación.- | ||
| + | </div> | ||
| + | <div class="slide"> | ||
===Arquitectura: Nivel de kernel de Linux=== | ===Arquitectura: Nivel de kernel de Linux=== | ||
| + | *Esta basado en un kernel 2.6 | ||
*Éste es el kernel sobre el que se basa Android. | *Éste es el kernel sobre el que se basa Android. | ||
*Contienen todos los controladores de dispositivos de bajo nivel para los diversos componentes de hardware | *Contienen todos los controladores de dispositivos de bajo nivel para los diversos componentes de hardware | ||
| − | === | + | </div> |
| + | <div class="slide"> | ||
| + | |||
| + | ===Dónde está presente Android=== | ||
#Smartphones | #Smartphones | ||
#Tablets | #Tablets | ||
| Línea 147: | Línea 282: | ||
#Reproductores MP4 | #Reproductores MP4 | ||
#Internet TV | #Internet TV | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | |||
===Referencias=== | ===Referencias=== | ||
| + | #http://es.wikipedia.org/wiki/Android | ||
| + | #http://androideity.com/2012/07/16/5-lenguajes-para-programar-en-android/ | ||
| + | |||
| + | </div> | ||
Última revisión de 04:52 23 oct 2013
