CAPITULO 1. Visión general y entorno de desarrollo Ulises Alejandro Gómez Gallardo
Objetivos •
Conocer las características de Android, destacando los aspectos que lo hacen diferente de sus competidores.
• Estudiar la arquitectura interna de Android. • Aprender a instalar y trabajar con el entorno de desarrollo (Eclipse + Android SDK). • Enumerar las principales versiones de Android y aprender a elegir la mas idónea para desarrollar nuestras aplicaciones.
• Crear una primera aplicación y estudiar la estructura de un proyecto en Android.
• Conocer donde podemos conseguir documentación sobre Android.
• Aprender a utilizar las herramientas disponibles para detectar errores en el código.
Los orígenes • Google adquiere Android Inc. en el año 2005. Se trataba de una pequeña compañía que acababa de ser creada, orientada a la producción de aplicaciones para terminales móviles.
• En noviembre del 2007 se lanza una primera versión del Android SDK. Al año siguiente aparece el primer móvil con Android (T-Mobile G1). • En octubre de 2007 se abre Android Market para la descarga de aplicaciones.
• En abril del 2009, Google lanza la versión 1.5 del SDK que incorpora nuevas característica como el teclado en pantalla. A finales del 2009 se lanza la versión 2.0 y durante el 2010 las versiones 2.1, 2.2 y 2.3. • En el año 2010 Android se consolida como uno de los sistemas operativos para móviles mas utilizados.
• En el año 2010 Android se consolida como la plataforma para móviles mas importante, alcanzando una cuota de mercado superior al 50%. • En 2012, Google cambia su estrategia en su tienda de descargas online, remplazando Android Market por Google Play Store.
1.4 Arquitectura de Android Daniela Cueva Landa
1.5 Instalación del entorno de desarrollo
http://www.javaya.com.ar/androidya/
1.5.5 Creación de un dispositivo virtual Android(AVD) Lozano Elizondo Iris Zoemy
AVD AVD Name: Name: Nombre Nombre que que quieras quieras dar dar al al nuevo nuevo dispositivo dispositivo virtual virtual
Un dispositivo virtual Android (AVD): Permite emular en tu ordenador cualquier tipo de dispositivo Android.
Device: Device: Dispositivo Dispositivo aa emular. emular. Se Se Indica Indica el el tamaño tamaño de de la la pantalla pantalla en en pulgadas pulgadas yy la la resolución resolución del del dispositivo. dispositivo. Device Device Definition Definition :: Crear Crear nuevos dispositivos nuevos dispositivos
Target: Target: Version Version SDK SDK que que soportara el dispositivo. soportara el dispositivo. Keyboard: Keyboard: Si Si se se selecciona selecciona el el dispositivo dispositivo tiene tiene teclado teclado físico. físico. En En caso caso contrario contrario se se utilizara utilizara el el teclado teclado en en pantalla. pantalla.
U/ABI: U/ABI: Tipo Tipo de de U U yy arquitectura arquitectura que que se se va va aa emular. emular. La La opción opción mas mas habitual habitual es es ARM ARM Skin: Skin: Mostrara Mostrara una una serie serie de de botones: botones: volumen, volumen, teclas teclas de de retorno, retorno, casa, casa, menú, etc.. menú, etc..
Un dispositivo virtual Android (AVD):
Front/back Front/back camera: camera: emulación emulación de de la la cámara cámara delantera delantera yy trasera. trasera.
Permite emular en tu ordenador cualquier tipo de dispositivo Android.
Memory Memory Options: Options: Memoria Memoria que se dedicara que se dedicara al al emulador. emulador. Internal Internal Storage: Storage: Memoria Memoria interna interna del del dispositivo, dispositivo, determina el determina el numero numero de de apps apps yy datos datos que que podrás podrás instalar. instalar.
SD SD Card: Card: Memoria Memoria externa externa del del dispositivo. dispositivo. Size : tamaño Size : tamaño de de la la memoria memoria esta esta creara creara un un nuevo nuevo fichero. fichero. File:un File:un fichero fichero previamente previamente creado. creado.
Teclas de rápido en un emulador
-Inicio: Home -F2:Menu -Esc: Volver -F7:ON/OFF Ctrl+f5/Ctr+f6:Volume n -Ctrl+f11:Orientacion de pantalla -Alt+Intro:Visualizar el emulador a pantalla completa.
Una vez introducida la configuración pulse el botón CREATE AVD
Aparecerá la ventana LAUNCH OPTIONS
Las versione s de Android y Niveles de API
• Antes de empezar a proyectar en Android hay que elegir la versión del sistema para la que deseamos realizar la aplicación. • Las plataformas se identifican de tres formas alternativas: -Versión -Nivel API: Números enteros empezando a 1 -Nombre comercial: Postres en orden alfabético. Las dos primeras versiones , que hubieran correspondido a las letras A y B, no recibieron nombre.
Teclado en pantalla con predicción de texto. Grabación avanzada de audio y video Widgets y live folders Bluetooth estéreo
DONUT Android 1.6 API4
CUPCAKE Android.1.5 API 3
Se fijaron algunos errores de la versión anterior Android.1.1 API 2
Android.1.0 API 1
Primera versión de Android. Nunca se utilizo comercialmente
Búsqueda avanzada en todo el dispositivo. Incorpora gestures y mutitouch.
Mejora de velocidad de ejecución de las aplicaciones. Gingerbread Android2.3 API9
Reconocimiento de t voz, que permite introducir un campo de texto dictado sin utilizar el teclado. Fondos de pantallas animados. Mecanismos para istrar la configuración de la cache e apps.
FROYO Android.2.2 API 8
Android.2.1 API 7
Eclair Android.2.0 API 5
Gestión de os y ofrece mas ajustes en la cámara. Se aumenta el numero de tamaño de ventanas y resolución soportadas
Nuevo interfaz actualizado. Funcionalidad de cortar-copiar y pegar Introduce un nuevo recolector de basura Soporte nativo para telefonía sobre Internet VOIP/SIP
1.6.9. Android 3.0 Nivel de API 11 Victor Adrián López Valdes
1.6.9. Android 3.0 Nivel de API 11 (febrero 2011, Honeycomb) ● ● ● ●
Nueva resolución por defecto WXGA (1280x800) Escritorio 3D con widgets rediseñados Se mejora la reproducción de animaciones 2D/3D Android 3.0 es compatible con las aplicaciones creadas para versiones anteriores. ● Se añaden nuevas alternativas de conectividad: bluetooth A2DP y HSP con streaming de audio, tambien se agrega completa conectividad con teclados usb o bluetooth
Android 3.xx 1.6.10. Android 3.1 Nivel de API 12 (mayo 2011) Permite manejar dispositivos conectados por USB (tanto host como dispositivo). Protocolo de transferencia de fotos y vídeo (PTP/MTP) y de tiempo real (RTP). 1.6.11. Android 3.2 Nivel de API 13 (julio 2011) Optimizaciones para distintos tipos de tableta. Zoom compatible para aplicaciones de tamaño fijo. Sincronización multimedia desde SD.
1.6.12. Android 4.0 Nivel de API 14 (octubre 2011, Ice Cream Sandwich) ● Unifica las versiones 2.x(Telefonos) y 3.x(Tablets). ● Nuevo API de reconocedor facial que permite, entre otras muchas aplicaciones, desbloquear el teléfono. También se mejora en el reconocimiento de voz. ● Aparece un nuevo gestor de tráfico de datos por Internet, donde podremos ver el consumo de forma gráfica. ● Se mejora el API para comunicaciones por NFC y la integración con redes sociales.
1.6.13. Android 4.0.3 Nivel de API 15 (diciembre 2011) ● Se introducen ligeras mejoras en algunas APIs.
1.6.14. Elección de la plataforma de desarrollo
1.7. Creación de un primer programa Gracias al plug-in Android que hemos instalado en el entorno de desarrollo Eclipse, la creación y gestión de proyectos se realizará de forma muy rápida, acelerando los ciclos de desarrollo.
1.7.1. Creación del proyecto 1. Selecciona File > New > Project. Si el plug-in de Android se ha instalado correctamente, el cuadro de diálogo que aparece debe tener un directorio llamado Android que debe contener Android Project. 2. Selecciona Android Project y pulsa Next.
● Project Name: Es el nombre del proyecto. ● Build Target Es la versión de la plataforma con la que será compilada la aplicación. ● Application Name Es el nombre de la aplicación que aparecerá en el dispositivo Android. ● Package Name: Indicamos el paquete con el espacio de nombres utilizado por nuestra aplicación.
Create Activity: Este es el nombre de la clase que será generada por el plug-in. Esta será una subclase de Activity de Android. Una actividades simplemente una clase que se puede ejecutar y modificar. Min SDK Version: Este valor especifica el mínimo nivel del API que requiere tu aplicación. Si el nivel del API introducido coincide con el proporcionado por uno de los targets disponibles, entonces se seleccionará automáticamente Build Target. Otros campos: La casilla de verificación Use default location permite cambiar la ruta del disco donde se crean y almacenan los ficheros de los proyectos
1.8. Ejecución del programa Aurora Lizeth Ruiz González
Una vez creada esta primera aplicación veamos dos alternativas para ejecutarla. • 1.8.1. Ejecución en el emulador • 1.8.2. Ejecución en un terminal real
1.9. Elementos de un proyecto Android • Un proyecto Android esta formado básicamente por un descriptor de la aplicación (AndroidManifest.xml), el código fuente y una serie de ficheros con recursos. • Cada elemento se almacena en una carpeta especifica. • Aprovecharemos el proyecto que acabamos de crear para estudiar la estructura de un proyecto Android: • src: Carpeta que contiene el código fuente de la aplicación. Como puedes observar los ficheros Java se almacenan en un espacio de nombres. • gen: Carpeta que contiene el código generado de forma automática por el SDK. Nunca hay que modificar de forma manual estos ficheros. • (SDK es un conjunto de Librerías, Herramientas de desarrollo, compiladores, interpretes que sirve para crear programas y unirlos para formar un nuevo software.) • • • •
Dentro encontraremos el siguiente fichero: R.java: Define una clase que asocia los recursos de la aplicación con identificadores. De esta forma los recursos podrán ser accedidos desde Java.
• • • • • • • • • • • • • • • • • • •
assets: Carpeta que puede contener una serie arbitraria de ficheros o carpetas que podrán ser utilizados por la aplicación (ficheros de datos, ficheros JAR externos, fuentes, etc.). A diferencia de la carpeta res, nunca se modifica el contenido de los ficheros de esta carpeta. res. Carpeta que contiene los recursos usados por la aplicación. drawable. En esta carpeta se almacenan los ficheros de imágenes y descriptores de imágenes. Layout: Contiene ficheros XML con vistas de la aplicación. Las vistas nos permitirán configurar las diferentes pantallas que compondrán la interfaz de de la aplicación. Serán tratadas en el siguiente capitulo. menú: Ficheros XML con los menús de la aplicación. values: También utilizaremos ficheros XML para indicar valores del tipo string, color o estilo. De esta manera podremos cambiar los valores sin necesidad de ir al código fuente. Por ejemplo, nos permitiría traducir una aplicación a otro idioma anim: Contiene ficheros XML con descripciones de animaciones. xml: Otros ficheros XML requeridos por la aplicación.
• raw: Ficheros adicionales que no se encuentran en formato XML. • doc. Documentación asociada al proyecto.
• AndroidManifestxml: Este fichero describe la aplicación Android. En el se indican las actividades, intenciones, servicios y proveedores de contenido de la aplicación. También se declaran los permisos que requerirá la aplicación. Se indica la versión mínima de Android para poder ejecutarla.
• default.properties: Fichero generado automáticamente por el SDK. Nunca hay que modificarlo. Se utiliza para comprobar la versión del API y otras características cuando se instala la aplicación en el terminal. • (API:una Interfaz de Programación de Aplicaciones)
• 1.10.1. Vista (view) • Son por ejemplo, un botón, una entrada de texto... • 1.10.2. Layout • Un conjunto de vistas agrupadas de una determinada forma, diferentes tipos de Layouts para organizar las vistas ,son objetos descendientes de la clase View. • 1.10.3. Actividad (Activity) • Coloquialmente conocidos como pantallas de la aplicación, se conoce como actividad. Su funcion principal es la creación del interfaz de . • 1.10.4. Servicio (Service) • Es un proceso que se ejecuta “detrás”, sin la necesidad de una interacción con el . • servicios locales: que pueden ser utilizados por aplicaciones del mismo terminal • servicios remotos: que pueden ser utilizados desde otros terminales.
• 1.10.5. Intención (intenta) • Una intención representa la voluntad de realizar alguna acción; • • • •
Lanzar una actividad. Lanzar un servicio. Lanzar un anuncio de tipo broadcast. Comunicarnos con un servicio
Internos o externos a nuestra aplicación. • 1.10.6. Receptor de anúncios (Broadcast receiver) • Recibe y reacciona , son originados por el sistema ,por ejemplo Batería baja, Llamada entrante,...
1.10.7 Proveedores de Jose Arturo Mederes Garza. contenido
Content Provider. • Es aquel mecanismo proporcionado por la plataforma Android para permitir compartir información entre aplicaciones. 1) Crear una nueva clase que extienda a la clase Android ContentProvider. 2)Declarar el nuevo content provider en nuestro fichero AndroidManifest.xml • Query, insert ,update, delete, getType
Documentación y ApiDemos. • http://developer.andriod.com/ • http://www.andriodcurso.com/ • http://stackoverflow.com/
ApiDemos. • Librería que ayuda a analizar código y contiene instrucciones funcionales listas para usarse. • File > New > Project… Android Sample Project.
• • • • • • • • • • •
Accessibility: Aspectos de accesibilidad, como trackball, touch o texto a voz. Animation: Gran variedad de efectos y animaciones. App: Trabajando a nivel de aplicación con Activity, Alarm, Dialog, Service, etc. Content: Describe cómo leer datos desde ficheros, recursos y archivos XML. Graphics: Gran cantidad de ejemplos gráficos tanto en 2D como en 3D. Media: Reproducción de audio y vídeo con las clases MediaPlayer y VideoView. NFC: Ejemplos de uso de Near Field Communication. OS: Servicios del sistema operativo. Incluye sensores, vibrador o envio de SMS. Preference: Varios ejemplos de uso de preferencias. Text: Diferentes ejemplos de manipulación y visualización de texto. Views: Android utiliza como elemento básico de representación la clase View (vista). Tenemos a nuestra disposición gran cantidad de descendientes de esta clase para representar una interfaz gráfica (botones, cajas de texto, entradas...).
Depurar. • @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Object o = null; o.toString(); setContentView(R.layout.activity_main); } • En caso de error: Pulsa Force Close e insertar en el breakpoint “Object o = null “
• Android utiliza el fichero LogCat para registrar todos los problemas, proporciona un mecanismo para introducir mensajes desde nuestro código en este fichero. • Log.e(): Errors • Log.w(): Warnings • Log.i(): Information • Log.d(): Debugging • Log.v(): Verbose
• @Override public void onCreate(Bundle savedInstanceState) { Log.d("HolaMundo","Entramos en onCreate"); super.onCreate(savedInstanceState); Object o = null; o.toString(); setContentView(R.layout.activity_main); } • Nota sobre Java: Para poder utilizar la clase Log se debe importar, para ello añade al principio import android.util.Log; Otra forma es Ctrl-Shift-O, para que se añadan automáticamente. el sistema encuentra dos paquetes esta clase, te preguntará. Ejecuta la aplicación. Aparecerá un error. Para ver el fichero de Log desde Eclipse accede al menú Window / Show View / Others… / Android / LogCat.
Gracias por su atención!
FIN.