Principios de la programación en Android y API básico
A. Conocer los orígenes y características más significativas de Android. B. Requerimientos mínimos del terminar para ejecutar Android. C. Conocer las diferentes versiones de Android. D. Conocer la información disponible de Android. Versión adaptada a partir del trabajo de Tomás Cobo Martínez e Israel Choque Gutiérrez para la asignatura de la titulación de Ingeniería de Telecomunicación, curso 2010/2011 2
1. Introducción a Android 1. Breve historia 2. Características 3. Plataformas 4. Arquitectura 5. Herramientas necesarias 6. Fuentes de información disponibles 2. Introducción a la programación en Android 1. Inicio con Android 2. Configuraciones: Crear un AVD 3. Crear HolaMundo 4. Tipos de aplicaciones Android 3
1. Breve historia 2. Características 3. Plataformas 4. Arquitectura 5. Herramientas necesarias 6. Fuentes de información disponibles 4
1. Breve historia Android es un sistema operativo desarrollado por Android Inc. basado en una versión modificada del kernel de Linux, busca la abstracción al HW. Google compra el SO Android a Android Inc. Noviembre de 2007: primera SDK de Android. Diciembre de 2007: depuración de errores de la SDK. Agosto de 2008: anuncio de Android Market. Octubre de 2008: lanzamiento del primer móvil Android del mercado. febrero de 2009: lanzamiento de la versión 1.1 de Android. Abril de 2009: lanzamiento de la versión 1.5 de Android (Cupcake). Septiembre de 2009: lanzamiento de la versión 1.6 de Android (Donut). 5
Noviembre de 2009: lanzamiento de la versión 2.0/2.1 de Android (Éclair). Junio de 2010: lanzamiento de la versión 2.2 de Android (Froyo). Diciembre de 2010: lanzamiento de la SDK versión 2.3 de Android y lanzamiento de los primeros móviles (Gingebread). 2.3.3, Revision 2 (Julio 2011) Android 3.0 (Febrero 2011) API Level: 11 Android 3.1 (Mayo 2011) API Level: 12 Android 3.2 (Julio 2011) API Level: 13 Android 4.0 (Octubre 2011) API Level: 14 Android 4.0.3 (Marzo 2012) API Level: 15 Android 4.1. JELLY_BEAN (Julio 2012) API Level: 16 Android 4.2. (JELLY_BEAN_MR1) Level: 17 Android 4.3. (JELLY_BEAN_MR2) Level: 18 Logo de Android 4.0 (Ice Cream Sandwich!) Logo de Android 4.1 (Jelly bean) 6
67
In Q2 2011, Android overtook ios to become the market share leader in mobile application downloads. The market shares of Android and ios were 44% and 31%, respectively. Android Overtakes Apple with 44% Worldwide Share of Mobile App Downloads (SINGAPORE - October 24, 2011) Fuente: ABI Research(http://www.abiresearch.com) 2011 Allied Business Intelligence, Inc. 68
2. Características La mayoría del código de Android es libre y abierto. Máquina virtual Dalvik optimizada para dispositivos móviles. Programas escritos en Java, lo que permite la reutilización de aplicaciones ya programadas para otras plataformas. 9
2. Características Navegador web integrado basado en el motor WebKit de código libre. Gráficos optimizados: 2D con implementación propia y 3D con OpenGL ES 1.0 (aceleración por hardware opcional). Soporte multimedia para los formatos más comunes de audio, video e imagen : MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF. Almacenamiento de datos estructurados a través de SQLite. 10
2. Características Comunicaciones: Telefonía GSM, Bluetooth, EDGE, 3G y Wifi, WifiDirect, Near Field Communication. Soporte para otros dispositivos: Cámara, GPS, brújula, acelerómetro, pantallas táctiles. Aplicaciones en Android Market, donde los desarrolladores pueden subir las aplicaciones. Actualmente Android Market ha sido incorporado a Google Play, donde no sólo se distribuyen aplicaciones sino Dispositivos, Libros, Música y vídeos. 11
3. Plataformas Conexión usuario-desarrollador: las plataformas Android están asociadas a un nivel API. Nivel de API: Es el nivel de compatibilidad de la aplicación. Siendo normalmente compatible con niveles anteriores. Existe un método de proporcionar compatibilidad hacia atrás de nuevas características como los fragmentos a través de la biblioteca de funciones de apoyo: Support Library (soportada desde el API level 4). 12
Versión de la plataforma API Level Versión de la plataforma API Level Android 4.3 18 Android 2.3.3, Android 2.3.4 10 Android 4.2 17 Android 2.3, Android 2.3.1, Android 2.3.2 9 Android 4.1 16 Android 2.2.x 8 Android 4.0.3 15 Android 2.1.x 7 Android 4.0 14 Android 2.0.1 6 Android 3.2 13 Android 2.0 5 Android 3.1.x 12 Android 1.6 4 Android 3.0.x 11 Android 1.5 3 Android 1.1 2 Android 1.0 1 13
4. Arquitectura Los componentes del SO Android: Basado en la versión 2.6 del kernel de Linux Conjunto de librerías de que usa el SO. Runtime: Cada aplicación se ejecuta en su propio proceso, una instancia de la maquina virtual Dalvik. Framework: Acceso completo a la API usada por las aplicaciones base. Permite reutilización de capacidades y componentes publicados. Aplicaciones: Escritas en Java. Algunas incluidas. Otras disponibles en Android Market (Google Play). 14
15
4. Arquitectura. Framework Los desarrolladores tienen acceso completo a las mismas APIs usadas por las aplicaciones del núcleo. La arquitectura de aplicación está diseñada para simplificar el reusado de componentes. Cualquier aplicación puede publicar sus capacidades, y otras aplicaciones pueden usarlas (sujetas a las medidas de seguridad del framework). Este mecanismo también permite que otros componentes sean reemplazados por el usuario. 16
4. Arquitectura. Framework Por debajo de todas las aplicaciones existen un conjunto de servicios y sistemas, entre los que se incluyen: Un rico y extensible conjuntos de vistas, incluyendo listas, rejillas, cajas de texto, botones, e incluso un navegador web embebible. Content Providers que permiten publicar datos para que otras aplicaciones accedan a ellos. Un Resource Manager, que proporciona acceso a recursos fuera del código como cadenas, imágenes, etc. Un Notification Manager que permite enviar alertas a la barra de estado Un Activity Manager que maneja el ciclo de vida de las aplicaciones y provee un pila de llamadas común para la navegación entre aplicaciones (backstack). 17
5. Herramientas necesarias La forma más sencilla de desarrollar herramientas para Android es usando la SDK de Android junto con Eclipse ya sea en Windows, Mac OS, o Linux. La SDK tiene los siguientes componentes (entre otros): SDK Tools (<sdk>/tools): Contiene las herramientas necesarias para la depuración y prueba, además de otras utilidades necesarias para desarrollar aplicaciones. La más útil y común es la utilidad abd (Android Debug Bridge). SDK Platform (<sdk>/platforms/<android-version>): Archivos android.jar para construir la aplicación Android para cada versión disponible. Documentación (<sdk>/docs>: Es una copia offline de la última versión de la documentación del API (JavaDocs). Proyectos de ejemplo (<sdk>/platforms/<androidversion>/samples: Código fuente de proyectos de ejemplo (ejemplo: ApiDemo), interesantes para empezar. usb-drivers: Directorio necesario para conectar el entorno de desarrollo con el dispositivo Android. 18
5. Herramientas necesarias También es necesario para compilar y ejecutar la Máquina Virtual: Dalvik VM. Una vez compilada la aplicación, la Android Developer Tools permiten la aplicación en un paquete incluido en el archivo: androidmanifest.xml SDK Manager: Permite mantener actualizada la SDK, así como gestionar los paquetes que nos interesan. AVD Manager: Crea y mantiene los dispositivos virtuales Android (AVDs) 19
6. Fuentes de información disponibles Android es una plataforma de reciente creación pero de constante y rápido desarrollo. Por tanto, las fuente de información disponibles son crecientes y cambiantes día a día. Páginas soportadas/propiedad de Google: o Página principal de desarrollo de Android: http://developer.android.com/index.html o Página oficial de Android: http://www.android.com/ o Android Source Project: http://source.android.com/index.html o Google projects for Android: para añadir funciones a la SDK como Google Maps, http://code.google.com/intl/es-es/android/ 20
6. Fuentes de información disponibles Otras páginas de la comunidad Android son: o Android Developers: http://androiddevelopers.blogspot.com/index.html o Introduction to Android Development: http://www.ibm.com/developerworks/opensource/li brary/os-android-devel/ o Android Wiki: http://en.androidwiki.com/wiki/main_page o Android SO: http://en.wikipedia.org/wiki/android_(operating_syst em) Página de Lars Vogel: http://www.vogella.com 21
1. Inicio con Android 2. Configuraciones: Crear un AVD 3. Crear HolaMundo 4. Tipos de aplicaciones Android 22
1. Inicio con Android Requisitos de desarrollo: Entorno de programación (recomendado Eclipse) Plugin de Android Framework de Android Requisitos hardware para instalar Android(ejemplo Android 3.0 Gingerbread ): Un procesador con una velocidad de 1Ghz 512 Mb de RAM una pantalla mínima de 3,5 pulgadas de dimensión. Se incluirán nuevas resoluciones en el sistema operativo como la de 1280 760 pixeles para pantallas de 4 pulgadas o superiores 23
1. Inicio con Android Ejemplo de instalación del SDK de Android: Descargar de la pagina http://www.eclipse.org/downloads/ la versión Eclipse IDE for Java Developers. Descargar e instalar el SDK de Android de http://developer.android.com/sdk/index.html Tener Java instalado en el ordenador, si no descargarlo en http://java.sun.com/javase/downloads/index.jsp Instalar el plugin de Android Ir al menu Help/Install new Software - Add site y añadir la siguiente dirección: https://dl-ssl.google.com/android/eclipse/ Una vez añadida la url, seleccionar Developer Tools, a continuación instalar, reiniciar Eclipse para aplicar los cambios. 24
2. Crear un AVD Para crear un AVD: En eclipse, seleccionar Window > Android SDK and AVD Manager Seleccionar Virtual Devices en el panel izquierdo Click en New AVD Introducir el nombre de un AVD como "mi_avd" Seleccionar una plataforma (la version del SDK de Android como 2.1). Click en create AVD 25
3. Crear un proyecto HolaMundo En eclipse seleccionar File>New> Project seleccionar "Android Project" y Next Rellenar los campos con el nombre del proyecto, en este caso HelloAndroid Nombre de aplicación: Hello, Android Nombre del paquete: com.example.helloandroid Build Target: (Escoger una plataforma, por ejemplo 2.3) 26
3. Crear un proyecto HolaMundo Ante nosotros debería aparecer un código como el siguiente: package com.example.helloandroid; import android.app.activity; import android.os.bundle; public class HelloAndroid extends Activity { /** Called when the activity is first created.*/ @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); } } 27
3. Crear un proyecto HolaMundo El programa por defecto está basado en la clase Activity que se usa para ejecutar acciones, pero el usuario solo interactúa con una a la vez. El método oncreate es llamado por el sistema Android cuando la aplicación empieza. 28
3. Crear un proyecto HolaMundo Añadiendo las siguientes líneas en negrita usaremos añadiremos un campo de texto: package com.example.helloandroid; import android.app.activity; import android.os.bundle; import android.widget.textview; public class HelloAndroid extends Activity { /** Called when the activity is first created.*/ @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); TextView tv = new TextView(this); tv.settext("hello, Android"); setcontentview(tv); } } 29
3. Crear un proyecto HolaMundo Una interfaz de usuario de Android está compuesta de jerarquías de objetos llamados Views. Cada uno de estos objetos es una subclase de la clase View. Para texto se usaría TextView. Un contexto es una llamada al sistema que provee servicios como resolución de fuentes, obtención de acceso a base de datos y preferencias (settext establece el contexto). ViewGroup ViewGroup View View View View View 30
3. Crear un proyecto HolaMundo seleccionar Run > Run seleccionar Application" "Android El plugin de Eclipse crea automáticamente una nueva configuración de ejecución haciendo uso a continuación del emulador de Android (puede tardar varios minutos en iniciar). Emulador de terminal (versiones 2.x) 31
4. Tipos de aplicaciones Las aplicaciones Android se clasifican en: Activities: Aplicaciones con interfaz gráfica Services: Aplica el mismo concepto de los demonios de Linux Content providers: El administrador de información persistente Servidor de base de datos, basado en SQLite. Broadcast receivers: Aplicaciones que responden a determinados eventos 32