TEMA 1 Introducción
LO QUE ABORDAREMOS Qué es Android? Qué lo hace interesante? Arquitectura del sistema Entorno de desarrollo 2
QUÉ ES ANDROID? Sistema operativo para móviles Desarrollado inicialmente por Android Inc. (liderada por Andy Rubin) Adquirida por google en 2005 En 2007 se funda Open Handset Alliance Empresas unidas para desarrollar estándares para móviles Android es presentado oficialmente en 2008 Hasta día de hoy Android sigue evolucionando 3
QUÉ LO HACE INTERESANTE? Enorme variedad de apps. en el Google Play Store. Características del entorno de desarrollo elegido por Google Tecnologías muy extendidas entre la comunidad desarrolladora Principalmente Java y XML Abstracción del hardware Las apps corren en diversos dispositivos de diferentes fabricantes Se obvian tareas más arduas, como programar para una cámara especifica Se desarrolla sobre un núcleo basado en Linux Cada fabricante adapta sus drivers al sistema 4
Kernel linux 2.6 Runtime basado en VM Dalvik Conjunto de librerias C/C++ Framework común a todas las aplicaciones basada en servicios Aplicaciones base implementadas en Java (todas reemplazables) 5
KERNEL DEL SISTEMA Capa inferior basada en estándares abiertos (Linux 2.6) Su principal objetivo es abstraer el HW En él se encuentran los drivers del fabricante Cámara, antena GPS, sensores, etc El desarrollador no accede directamente a esta capa Lo hace a través, de librerías en capas superiores Aunque si debe tomar en cuenta ciertas consideraciones en su funcionamiento 6
KERNEL DEL SISTEMA - FUNCIONES Gestión de procesos Se encarga de gestionar los procesos en ejecución Cada app. se ejecuta en un proceso diferente Generalmente corresponde a una instancia de la MV Dalvik Gestión de usuarios y permisos Se incorpora una serie de garantías de seguridad A nivel de procesos y de usuarios Se crea una cuenta de usuario por cada app. Instalada Los datos generados por una app. serán propios de ese usuario No permite el acceso a otro usuario, a menos que la app. Propietaria lo consienta. Gestión de memoria Optimiza el uso de la memoria El programador no se preocupa por la liberación de recursos Variables, objetos El sistema destruye procesos cuando lo considere necesario 7
LIBRERÍAS NATIVAS En esta capa se encuentran una serie de librerías fundamentales Conforman el corazón de Android Proporcionan la mayoría de las funcionalidades del sistema Están escritas en C/C++ y compiladas para la Arq. del propio procesador. Comúnmente se encapsulan en API accesibles por capas superiores Entre estas librerías podemos encontrar algunas importantes como: 8
LIBRERÍAS NATIVAS Libc Recopilación de cabeceras y bibliotecas estándares del lenguaje C Surface Manager Gestiona las diferentes ventanas y sus componentes Gráficos 2D y 3D Controlan lo referente a gráficos 3D y 2D intereactuando con el HW especifico para este fin Códecs de audio y vídeo Proporcionan todo tipo de funcionalidades relacionadas con audio, video, imágenes y animaciones SQLite Pequeña pero potente base de datos relacional con la que se interactúa con SQL. WebKit Se puede afirmar que se trata del propio navegador de Internet y utilidades para interpretar HTML 9
RUNTIME: LIBRERÍAS JAVA Conjunto de libs. Java que conforman la propia especificación del lenguaje Incluye una serie de bibliotecas homologadas por el sistema Cooperan con la propia MV Dalvik Ejemplo de librerías: Funcionalidades Java de acceso a ficheros (java.io) API de colecciones (java.util) Acceso a protocolos de red (java.net) 10
RUNTIME: MV DALVIK MV sobre la que corren las apps. Java en Android No confundir con la MV Java de Oracle, puesto que el bytecode generado no será compatible Optimizada para minimizar el consumo de memoria y recursos del sistema Utiliza una instancia de la misma por cada app. Ejecutada La MV Java de Oracle ejecuta ficheros binarios.class Dalvik ficheros.dex, previamente se debe compilar a archivos.class 11
FRAMEWORK DE APLICACIONES Recursos que utilizaremos para crear apps. Librerías Java que acceden a los componentes comentados anteriormente Algunas libs. Relevantes: Activity Manager, Bluetooth, Content Provider, Location Manager, Map Libraries, Media Player, Notification Manager, Resource Manager, Sensor Manager, Telephony Manager, View System, Widget Provider, Window Manager 12
APLICACIONES Representa la capa superior de Android Mayor abstracción del HW y ciertas peculiaridades del sistema Simplifica el desarrollo de apps. Basado casi en totalidad en el FW de apps. Se sustenta en uno o varios de los sigs. Componentes: Activities: pantalla de interacción con el usuario Services: tareas en segundo plano Content Providers: gestiona datos manejados por una app Broadcast Receivers: usados para escuchar eventos del dispositivo 13
ENTORNO DE DESARROLLO EDI Eclipse Android SDK Primer ejemplo 14