Diferencia entre revisiones de «Usuario:ManuelRomero/Android2/Introduccion»

De WikiEducator
Saltar a: navegación, buscar
(Versiones de Android)
 
(34 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===
;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;  
*De momento es aplicada 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/>
{{Definicion|'''''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)'''''
*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++)
http://androideity.com/2012/07/16/5-lenguajes-para-programar-en-android/
+
</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 19: 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'''''
===comunidad de desarrolladores de Android===
+
</div>
;[http://stackoverflow.com/| Stack Overflow]
+
<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| Google Android Training]
+
;[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 |Android Discuss]
+
;[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
:Es 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 39: 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 60: 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 79: Línea 123:
 
|-
 
|-
 
|}
 
|}
 +
</div>
 +
<div class="slide">
  
===Carácterísticas de Android===
+
===Qué version usan los dispositivos===
2.- CARACTERÍSTICAS:  
+
*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 siguietes tecnologías para conexiones
+
;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 91: 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 99: 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 108: 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 118: 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.
*El framework  de aplicaciones proporciona las siguientes interfaces funcionales:
+
</div>
#Proveedor de contenido
+
<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 geestionar las partes que no son programa como codificación multilenguaje, fotos y efectos de sonido.
+
: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
+
: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)
#Una librería de red
+
#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
===Donde está presente Android===
+
</div>
 +
<div class="slide">
 +
 
 +
===Dónde está presente Android===
 
#Smartphones
 
#Smartphones
 
#Tablets
 
#Tablets
Línea 166: 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




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;
  • 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 el desarrollo de aplicaciones se usa el lenguaje de programación Java

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)
  • Android se puede desarrollar usando diferentes lenguajes :C, VisualBasic (.NET), C++, C#, QT (Que no deja de ser C++)

Entornos de desarrollo

  • Existen diferentes entornos para desarrollar aplicaciones en android.
  1. Basic4Android
  2. Visual Studio con SDK: Android de Mono. C y C#
  3. App Inventor
  4. Live Code Entorno para desarrollar para aplicaciones móviles de diferentes plataformas
  5. In Design CS6
  6. En java con IDE Eclipse, Intellij Idea, y ahora en pruebas Android studio

Comunidad de desarrolladores de Android

Stack Overflow
un sitio colaborativo de preguntas y respuestas para desarrolladores
Los desarrolladores votan las respuestas lo cual da confianza sobre las buenas respuestas
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
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.

Historia de Android

  1. 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
  2. En julio de 2005, Google adquirió Android Inc.
  3. En diciembre de 2006 aumentó notablemente la especulación sobre que el sistema Android de Google entraría en el mercado de la telefonía móvil.
  4. En septiembre de 2007, se conocía que Google había solicitado diversas patentes en el área de la telefonía móvil.
  5. El 5 de noviembre de 2007 se creó la Open Handset Alliance, un consorcio de más de 48 compañias de software y hardware que concluyeron la finalidad de desarrollar est´ndares abiertos para dispositivos móviles.
  6. 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.
  7. 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.

Versiones de Android

breve historia de las versiones de android
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.1, 4.1.1 16 JELLY_BEAN
Android 4.0.3, 4.0.4 15 ICE_CREAM_SANDWICH_MR1
Android 4.0, 4.0.1, 4.0.2 14 ICE_CREAM_SANDWICH
Android 3.2 13 HONEYCOMB_MR2
Android 3.1.x 12 HONEYCOMB_MR1
Android 3.0.x 11 HONEYCOMB
Android 2.3.4-Android 2.3.3 10 GINGERBREAD_MR1

Versiones de Android (Continuacion)

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.2.x 8 FROYO
Android 2.1.x 7 ECLAIR_MR1
Android 2.0.1 6 ECLAIR_0_1
Android 2.0 5 ECLAIR
Android 1.6 4 DONUT
Android 1.5 3 CUPCAKE
Android 1.1 2 BASE_1_1
Android 1.0 1 BASE

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

Carácterísticas de Android

Almacenamiento
Utiliza SQLite: base de datos relacional y ligera.
Conectividad
Soporta las siguientes tecnologías para conexiones
GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, incluyendo A2DP, AVRCP), Wi-Fi, LTE, WiMAX
Mensajería
tanto SMS como MMS
Navegador Web
Basado en código abierte de WebKit junto con JavaScript V8 de Chrome

Carácterísticas de Android

Multimedia
Soporte para medios con formatos comunes de audio, video e imágenes planas
incluye los siguientes soportes

H.263, H.264(1) ,MPEG-4 SP, AMR, AMR-WB(2), AAC, HE-AAC(1), MP3, MIDI, Ogg Vorgis, WAV, JPEG, PNG, GIF Y BMP

  1. En contenedor 3GP o MP4
  2. En contenedor 3GP
Soporte Harware (Siempre que el dispositivo disponga del hardware)
Sensor acelerómetro, cámaram brújula digital, sensor de proximidad y GPS

Carácterísticas de Android

Multipantalla táctil multipunto
entre 5 y 10 puntos de reconocimeintos simultáneos
Multitarea
Soporte Flash
La versión 2.1 de Android soporta Flash 10.1
Tethering
Soporta el uso compartido de conexiones a Internet como un punto de acceso por cable/inalámbrico
Framework de aplicaciones
permite el reemplazo y la reutilización de los componentes.
Máquina virtual Dalvik
Base de llamadas de instancias muy similar a Java. Para entornos de desarrollo

Arquitectura de Android

ArquitecturaAndroid.png

Arquitectura del sistema operativo Android

  • El sistema operativo Android se divide en 5 secciones de 4 niveles principales

Consta de los siguientes niveles que posteriormente comentaremos

  1. Nivel de aplicación
  2. Nivel de arquitectura de software de la aplicación o framework de aplicaciones
  3. Nivel de librerías (Formado por librerías y y nivel de tiempo de ejecución de android
  4. Nivel de Kernel de Linux

NIVEL DE APLICACIONES

  • 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:
  1. contactos
  2. cliente de correo
  3. calendario, y algun otro servicio mínimo
  4. También se incluyen todas las aplicaciones que podemos descargar e instalar desde Google Play

Arquitectura : FrameWork

  • El Framework proporciona muchas interfaces de programación
  • 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.

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:
  1. 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

Arquitectura : FrameWork (entorno de desarrollo de aplicaciones)

  1. Activity
Gestiona las actividades y la pila de ejecución arrancando, parando ocultano o eliminando actividades
  1. Content Provider
Para permitir a las aplicaciones acceder a datos y otros programas de aplicación
  1. Gestor de recursos
para gestionar las partes que no son programa como codificación multilenguaje, fotos y efectos de sonido.
  1. Gestor de notificaciones
para permitir a las aplicaciones notificar a la interfaz de mensajes de usuarios, meidante la barra de estado

Arquitectura : Librerías

  • Son librerías enlazadas de C y C++, conectadas en dos direciones
  1. Hacia arriba con el framework de aplicaciones
  2. Hacia abajo con el kernel del SO

Arquitectura : Librería principal o nativas

  • La libería principal incluye las siguientes:
  1. Una librería de sistema C
  2. Una librería multimedia (Soporta MPEG4, H.264, MP3, AAC, AMR, JPG, PNG)
  3. Librería de administrador de superficies: acceso a la representación 2D y 3D.
  4. SGL Motor gráfico 2D
  5. Una librería de base de datos SQLite

Arquitectura : Librería principal o nativas

  1. Una librería de 3D implemntación de OpenGL ES 1.0
  2. Una librería de fuentes bitmap y renderizado vectorial
  3. Una librería de WebKit para funcionalidades de navegación web.
  4. Librería de seguridad : SSL cifrado de Secure Socket Layer

Arquitectura : RunTime

  • A este nivel tenemos la librería del kernel y la máquina virtual de 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.
  • 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.

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.-

Arquitectura: Nivel de kernel de Linux

  • Esta basado en un kernel 2.6
  • É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

Dónde está presente Android

  1. Smartphones
  2. Tablets
  3. Dispositivos de libros electrónicos
  4. NetBooks
  5. Reproductores MP4
  6. Internet TV