Solución: Te será de ayuda si tienes problemas al resolver una práctica, o si simplemente quieres comparar tu solución con otra diferente.
Nota sobre Java: Si no dominas el lenguaje de programación Java, podrás seguir este libro. Cada vez que aparezca algún concepto complejo sobre Java trataremos de aclararlo. NOTA: Sí que resulta imprescindible disponer de conocimientos sobre programación.
Recursos adicionales: Te proporcionamos la información clave que te ayudará en el desarrollo de tus aplicaciones.
Enlaces de interés: Internet te será de gran ayuda para completar la información necesaria para programar en Android. Te proponemos las páginas más interesantes de cada apartado.
Preguntas de repaso: ¿Has comprendido correctamente los aspectos clave? Sal de dudas haciendo los test de autoevaluación.
Referencias rápidas: Utiliza los anexos para localizar rápidamente esa palabra clave o esa clase que no recuerdas.
De forma adicional, en la web www.androidcurso.com encontrarás:
•Tutoriales sobre Java: ¿sabes lo que es la herencia, el polimorfismo o la sobrecarga en Java? Si no dominas el lenguaje de programación Java, te recomendamos que realices alguno de los tutoriales propuestos.
•Código abierto de proyectos Android: muchos alumnos que han realizado un curso basado en este libro han tenido la generosidad de compartir sus proyectos con todos nosotros. Te recomendamos que consultes la lista de proyectos disponibles de código abierto: puedes aprender mucho estudiando su código. Cuando termines de leer este libro, también tú podrás hacer un proyecto como los que se muestran.
•Material adicional sobre Android: encontrarás, además, nuevos tutoriales, vídeos, referencias, etc., no incluidos en el libro.
•Cursos online: si te interesa ampliar tu formación, puedes matricularte en cursos sobre Android impartidos por la Universidad Politécnica de Valencia. Incluso puedes obtener un título de especialización o de máster de forma 100% online.
CAPÍTULO 1.
Visión general y entorno de desarrollo
La telefonía móvil está cambiando la sociedad actual de una forma tan significativa como lo ha hecho Internet. Esta revolución no ha hecho más que empezar; los nuevos terminales ofrecen unas capacidades similares a un ordenador personal, lo que permite que puedan ser utilizados para leer el correo o navegar por Internet. Pero, a diferencia de un ordenador, un teléfono móvil siempre está en el bolsillo del usuario. Esto permite un nuevo abanico de aplicaciones mucho más cercanas al usuario. De hecho, muchos autores coinciden en afirmar que el nuevo ordenador personal del siglo XXI será un terminal móvil.
El lanzamiento de Android como nueva plataforma para el desarrollo de aplicaciones móviles ha causado una gran expectación y está teniendo una importante aceptación tanto por parte de los usuarios como por parte de la industria. En la actualidad se está convirtiendo en la alternativa dominante frente a otras plataformas como iPhone, Windows Phone o BlackBerry.
A lo largo de este capítulo veremos las características de Android que lo hacen diferente de sus competidores. Se explicará también cómo instalar y trabajar con el entorno de desarrollo (Eclipse + Android SDK).
 |
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 más idónea para desarrollar nuestras aplicaciones.
•Crear una primera aplicación y estudiar su estructura de un proyecto en Android.
•Conocer dónde podemos conseguir documentación sobre Android.
•Aprender a utilizar herramientas para detectar errores en el código.
1.1. ¿Qué hace que Android sea especial?
Como hemos comentado, existen muchas plataformas para móviles (Apple iOS, Windows Phone, BlackBerry, Palm, Java Micro Edition, Linux Mobile (LiMo), etc.); sin embargo, Android presenta una serie de características que lo hacen diferente. Es el primero que combina en una misma solución las siguientes cualidades:
•Plataforma realmente abierta. Es una plataforma de desarrollo libre basada en Linux y de código abierto. Una de sus grandes ventajas es que se puede usar y customizar el sistema sin pagar royalties.
•Adaptable a cualquier tipo de hardware. Android no ha sido diseñado exclusivamente para su uso en teléfonos y tabletas. Hoy en día podemos encontrar relojes, gafas, cámaras, TV, sistema para automóviles, electrodomésticos y una gran variedad de sistemas empotrados que se basan en este sistema operativo, lo cual tiene sus evidentes ventajas, pero también va a suponer un esfuerzo adicional para el programador. La aplicación ha de funcionar correctamente en dispositivos con una gran variedad de tipos de entrada, pantalla, memoria, etc. Esta característica contrasta con la estrategia de Apple: en iOS tenemos que desarrollar una aplicación para iPhone y otra diferente para iPad.
•Portabilidad asegurada. Las aplicaciones finales son desarrolladas en Java, lo que nos asegura que podrán ser ejecutadas en cualquier tipo de CPU, tanto presente como futuro. Esto se consigue gracias al concepto de máquina virtual.
•Arquitectura basada en componentes inspirados en Internet. Por ejemplo, el diseño de la interfaz de usuario se hace en XML, lo que permite que una misma aplicación se ejecute en un móvil de pantalla reducida o en un televisor.
•Filosofía de dispositivo siempre conectado a Internet. Muchas aplicaciones solo funcionan si disponemos de una conexión permanente a Internet. Por ejemplo, comunicaciones interpersonales o navegación con mapas.
•Gran cantidad de servicios incorporados. Por ejemplo, localización basada tanto en GPS como en redes, bases de datos con SQL, reconocimiento y síntesis de voz, navegador, multimedia, etc.
•Aceptable nivel de seguridad. Los programas se encuentran aislados unos de otros gracias al concepto de ejecución dentro de una caja, que hereda de Linux. Además, cada aplicación dispone de una serie de permisos que limitan su rango de actuación (servicios de localización, acceso a Internet, etc.).
•Optimizado para baja potencia y poca memoria. En el diseño de Android se ha tenido en cuenta el hardware específico de los dispositivos móviles. Por ejemplo, Android utiliza la máquina virtual Dalvik. Se trata de una implementación de Google de la máquina virtual Java optimizada para dispositivos móviles.
•Alta calidad de gráficos y sonido. Gráficos vectoriales suavizados, animaciones, gráficos en 3D basados en OpenGL. Incorpora los códecs estándares más comunes de audio y vídeo, incluyendo H.264 (AVC), MP3, AAC, etc.
Читать дальше