Este documento describe Android, un sistema operativo móvil basado en Linux. Explica que Android tiene el 51% del mercado de aplicaciones móviles, se desarrolla en Java y es gratuito y de código abierto. También resume las herramientas de desarrollo de Android, sus características principales como la máquina virtual Dalvik y su arquitectura de aplicaciones, componentes y estructura básica.
2. ¿Qué es Android?
•
Sistema operativo orientado a dispositivos móviles
basado en Linux 2.6 (capa HW - SW, kernel)
•
51% del mercado de apps (iOS 40%)
•
Lenguaje de desarrollo JAVA
•
Framework propio
•
Android es gratuito, libre y no requiere licencias
3. ¿Qué es Android?
•
Libertad para los programadores a la hora de
acceder a las funciones del móvil
•
Las apps no difieren del núcleo del teléfono, todas
tienen acceso a los mismos servicios.
•
Cada aplicación se ejecuta en su propio proceso y
máquina virtual, Dalvik, optimizada para entornos
bajos en recursos.
4. Herramientas de desarrollo
•
Emulador Android
•
Android SDK (plugin Eclipse)
•
DDMS ( Dalvik Debug Monitor Service ), gestión de
procesos
•
ADB (Android Debug Bridge), instalador para el
emulador
6. Características de Android
•
La máquina virtual Dalvik: Optimizada para
dispositivos móviles.
•
Navegador integrado: Basado en el motor del
proyecto abierto WebKit. (Safari y Chrome)
•
Gráficos optimizados: Suministrados por una
librería de gráficos 2D. Los gráficos 3D están
basados en la especificación OpenGL ES 1.0, con
soporte para aceleración gráfica por hardware.
7. Características de Android
•
SQLite: Para estructurar el almacenamiento de datos.
•
Soporte multimedia: Común para audio, video, imágenes,
soportando varios formatos (MPEG4, H.264, MP3, AAC, AMR,
JPG, PNG, GIF).
•
Telefonía GSM
•
Bluetooth, 3G, 4G, y WiFi (Si el hardware lo soporta).
•
Cámara, GPS, brújula y acelerómetro (Si el hardware lo soporta).
•
Completo entorno de desarrollo: Incluye un dispositivo emulador,
herramientas de depuración, y un plugin para el IDE Eclipse
9. Arquitectura de Android
•
Aplicaciones: Las aplicaciones base incluyen un cliente
de email, programa de SMS, calendario, mapas,
navegador, contactos, y otros. Todas las aplicaciones
son escritas en el lenguaje de programación Java.
•
Framework de aplicaciones: Los desarrolladores tienen
acceso completo a los mismos APIs del framework
usados por las aplicaciones base.
•
Librerías: incluye un conjunto de librerías C/C++ usadas
por varios componentes del sistema Android. (librerías
de medios, librerías de gráficos, 3d, SQLite, entre otras)
10. Arquitectura de Android
•
Núcleo - Linux: Android depende de un Linux
versión 2.6 para los servicios base del sistema
como seguridad, gestión de memoria, gestión de
procesos, stack de red, y modelo de drivers. El
núcleo también actúa como una capa de
abstracción entre el hardware y el resto del stack
de software.
13. Componentes
•
Actividades: Pantalla de la interfaz de usuario, una aplicación puede tener una o
mas actividades
•
Las vistas (view) son los componentes básicos con los que se construye la
interfaz gráfica de la aplicación
•
Layout: Contenedores de elementos gráficos.
•
Intent: se pueden entender como los mensajes o peticiones que son enviados
entre los distintos componentes de una aplicación o entre distintas aplicaciones.
Mediante un intent se puede mostrar una actividad desde cualquier otra, iniciar
un servicio, enviar un mensaje broadcast, iniciar otra aplicación, etc.
•
Servicios: Tarea que se ejecuta en segundo plano. Ej.: reproducir música en
segundo plano
•
Fragments: Porciones independientes con diseño y lógica para integrar en una
actividad.
14. Componentes
•
Content Provider: un proveedor de contenidos
(content provider) es el mecanismo que se ha
definido en Android para compartir datos entre
aplicaciones.
•
Broadcast Receiver: componente destinado a
detectar y reaccionar ante determinados mensajes
o eventos globales generados por el sistema.
•
Widget: elementos visuales, normalmente
interactivos, que pueden mostrarse en la pantalla
principal (home screen) del dispositivo Android
17. Estructura
•
src: Clases java. Es decir, código.
•
res: Recursos necesarios para la app
•
drawable-?dpi: imágenes o ficheros XML que
dibujen una imagen u objeto gráfico.
•
layout: ficheros XML que dibujan la UI.
•
values: ficheros XML que contienen valores
estáticos: etiquetas de texto, de botones, colores,
etc