Diferencia entre revisiones de «Usuario:ManuelRomero/Android2/Introduccion»
De WikiEducator
(→Versiones de Android) |
|||
| (32 revisiones intermedias por el mismo usuario no mostrado) | |||
| Línea 2: | Línea 2: | ||
<br> | <br> | ||
{{#widget:Slides}} | {{#widget:Slides}} | ||
| − | {{MiTitulo| Programación en android | + | {{MiTitulo| Programación en android }} |
<div class="slides layout-regular template-default"> | <div class="slides layout-regular template-default"> | ||
<div class="slide"> | <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. | ||
| Línea 19: | Línea 18: | ||
===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++) | *Android se puede desarrollar usando diferentes lenguajes :C, VisualBasic (.NET), C++, C#, QT (Que no deja de ser C++) | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
| + | |||
===Entornos de desarrollo=== | ===Entornos de desarrollo=== | ||
*Existen diferentes entornos para desarrollar aplicaciones en android. | *Existen diferentes entornos para desarrollar aplicaciones en android. | ||
| Línea 32: | Línea 32: | ||
#In Design CS6 | #In Design CS6 | ||
#En java con IDE Eclipse, Intellij Idea, y ahora en pruebas '''''Android studio''''' | #En java con IDE Eclipse, Intellij Idea, y ahora en pruebas '''''Android studio''''' | ||
| − | |||
</div> | </div> | ||
<div class="slide"> | <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=== | ===Comunidad de desarrolladores de Android=== | ||
| − | ;[http://stackoverflow.com/ | + | ;[http://stackoverflow.com/ Stack Overflow] |
:un sitio colaborativo de preguntas y respuestas para desarrolladores | :un sitio colaborativo de preguntas y respuestas para desarrolladores | ||
:Los desarrolladores votan las respuestas lo cual da confianza sobre las ''buenas'' respuestas | :Los desarrolladores votan las respuestas lo cual da confianza sobre las ''buenas'' respuestas | ||
| − | ;[http://developer.android.com/training/index.html | + | ;[http://developer.android.com/training/index.html Google Android Training] |
:Tenemos numerosas clases agrupadas por temas | :Tenemos numerosas clases agrupadas por temas | ||
:Tenemos un manual de como empezar e ir avanzando | :Tenemos un manual de como empezar e ir avanzando | ||
:Es una importante y garantizada fuente de información | :Es una importante y garantizada fuente de información | ||
| − | ;[https://groups.google.com/group/android-discuss/BfKnSUV-7r0 | + | ;[https://groups.google.com/group/android-discuss/BfKnSUV-7r0 Android Discuss] |
| − | :es un grupo de debate y discusión alojado en google | + | :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. | :Buen sitio para aclarar dudas y aprender trucos y consejos. | ||
</div> | </div> | ||
| Línea 58: | 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" | ||
|+breve historia de las versiones de android | |+breve historia de las versiones de android | ||
!Versión de android!!API!! Nombre en clave | !Versión de android!!API!! Nombre en clave | ||
| + | |- | ||
| + | |Android 4.3||18||JELLY_BEAN | ||
| + | |- | ||
| + | |Android 4.2||17||JELLY_BEAN | ||
|- | |- | ||
|Android 4.2||17||JELLY_BEAN_MR1 | |Android 4.2||17||JELLY_BEAN_MR1 | ||
| Línea 79: | 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 101: | Línea 126: | ||
<div class="slide"> | <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 112: | 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 120: | 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 134: | Línea 179: | ||
===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 143: | Línea 190: | ||
</div> | </div> | ||
<div class="slide"> | <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 | ||
| Línea 157: | Línea 204: | ||
*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> | ||
<div class="slide"> | <div class="slide"> | ||
| Línea 172: | Línea 233: | ||
#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> | ||
<div class="slide"> | <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> | ||
<div class="slide"> | <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 | ||
Última revisión de 04:52 23 oct 2013
