Diferencia entre revisiones de «Usuario:ManuelRomero/Android2/Introduccion»
De WikiEducator
(→Versiones de Android) |
|||
(30 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"> | ||
Línea 8: | Línea 8: | ||
===Qué es android=== | ===Qué es android=== | ||
*Es una plataforma software y un Sistema Operativo basada en el núcleo de Linux. | *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 19: | ||
<br/> | <br/> | ||
'''''Android''''' es una plataforma de código abierto. | '''''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 35: | Línea 36: | ||
===Entornos de desarrollo información=== | ===Entornos de desarrollo información=== | ||
<br/> | <br/> | ||
− | {{Recursos | + | {{Recursos de la Web| |
*Ver para obtener información de cada entorno | *Ver para obtener información de cada entorno | ||
*http://androideity.com/2012/07/16/5-lenguajes-para-programar-en-android/ | *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> | ||
<div class="slide"> | <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; Seguido muy de cerca por el equipo de Android 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> | ||
<div class="slide"> | <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 68: | Línea 73: | ||
|+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 85: | 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 106: | Línea 125: | ||
</div> | </div> | ||
<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=== | ===Carácterísticas de Android=== | ||
;Almacenamiento | ;Almacenamiento | ||
Línea 126: | 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 | ||
− | |||
− | |||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
+ | |||
===Carácterísticas de Android=== | ===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 157: | Línea 192: | ||
===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 | ||
+ | *Cada una de ellas ha de correr en una máquina virutal Dalvik | ||
*Entre ellas tendremos seguro: | *Entre ellas tendremos seguro: | ||
#contactos | #contactos | ||
Línea 168: | 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. |
− | ===Arquitectura : FrameWork ( | + | </div> |
− | *Tenemos las siguientes: | + | <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 184: | 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=== | + | ===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> | ||
<div class="slide"> | <div class="slide"> | ||
+ | |||
===Dónde está presente Android=== | ===Dónde está presente Android=== | ||
#Smartphones | #Smartphones |
Última revisión de 17:52 23 oct 2013