Diferencia entre revisiones de «Usuario:ManuelRomero/Android2/Introduccion»
De WikiEducator
(→Versiones de Android) |
|||
(33 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
{{:Usuario:ManuelRomero/Android2/nav}} | {{:Usuario:ManuelRomero/Android2/nav}} | ||
<br> | <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)''''' |
− | *Existen diferentes entornos para desarrollar aplicaciones en 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 | #Basic4Android | ||
#Visual Studio con SDK: Android de Mono. C y C# | #Visual Studio con SDK: Android de Mono. C y C# | ||
Línea 22: | 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> |
− | ;[http://stackoverflow.com/ | + | <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 | :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 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 42: | 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 63: | 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 82: | 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 94: | 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 102: | 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 111: | 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 121: | 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 169: | 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 17:52 23 oct 2013