Tecnología de Programación Hola, Mundo 1 «Hola, Mundo» en Android DepartamentodeInformática | UniversidaddeValladolid Tecnología de Programación Elaborar una aplicación «Hola, Mundo» para Android es trivial Abrimos eclipse File -> New -> Android Project Project name: Hola Build target: Android 2.2 Package name: uva.tprg.Hola Create Activity: HolaActivity Hola, Mundo Arrancar un dispositivo virtual o conectar un dispositivo físico Run -> Run -> Android Application Félix Prieto ... Y «Hola, Mundo» funciona de modo «mágico» Curso 2011/12 UniversidaddeValladolid Tecnología de Programación Hola, Mundo 2 Eclipse y el dispositivo virtual en ejecución DepartamentodeInformática Tecnología de Programación FÉLiX Hola, Mundo 3 Elementos básicos de eclipse En eclipse podemos utilizar varias vistas simultáneas Un conjunto de vistas constituyen una perspectiva sobre el proyecto Disponibles varias perspectivas «predefinidas» (Java, DDMS, Debug,. . . ) Podemos cambiar la configuración por defecto de una Perspectiva Podemos recuperar la configuración por defecto de una perspectiva Elementos básicos de la perspectiva «Java» Explorador: Selección de Aplicaciones o elementos dentro de ellas Editor JavaDoc: Muestra documentación sobre el código en edición Consola: Mensajes relativos a la compilación y/o ejecución Esquema: Estructura del elemento en edición UniversidaddeValladolid FÉLiX DepartamentodeInformática Tecnología de Programación Hola, Mundo 4 Elementos de un proyecto Android UniversidaddeValladolid DepartamentodeInformática Tecnología de Programación FÉLiX Hola, Mundo 5 Diagrama general de la construcción src: Código java del proyecto organizado en paquetes gen: Código java generado por las herramientas de desarrollo res: Recursos del proyecto almacenados en formato XML AndroidManifest.xml: Identificación, propiedades de la aplicación, permisos requeridos para su ejecución,... UniversidaddeValladolid DepartamentodeInformática Tecnología de Programación FÉLiX Hola, Mundo 6 La primera Actividad UniversidaddeValladolid DepartamentodeInformática Tecnología de Programación FÉLiX Hola, Mundo 7 Clases y ficheros en Java package uva.tprg.Hola; Las clases se organizan en «paquetes» que agrupan clases relacionadas import android.app.Activity; import android.os.Bundle; package se utiliza para declarar el paquete a que pertenecen las clases del fichero Para que una clase pueda ser usada fuera de su paquete hay que declararla como pública public class HolaActivity extends Activity { /∗∗ Called when the activity is first created. ∗/ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } En cada fichero sólo puede existir una clase pública, con el mismo nombre que el fichero La importación de otras clases es explícita, mediante la clausula import Eclipse inserta los import necesarios (shift−control−o) UniversidaddeValladolid DepartamentodeInformática FÉLiX UniversidaddeValladolid DepartamentodeInformática FÉLiX Tecnología de Programación Hola, Mundo 8 Métodos, atributos y visibilidad Sólo se permite herencia simple entre clases extends indica la única clase padre de la actual La marca @override indica que el siguiente método es una redefinición Se admite el polimorfismo sintáctico Existen cuatro niveles de visibilidad: Por defecto, visible para las clases del paquete public, visible para todas las clases private, visible sólo para instancias de la clase protected, visible desde clases de paquete o sus descendientes No es obligatorio, pero evita errores relacionados con la redefinición super.onCreate() hace referencia al precursor del método En resumen HolaActivity es una clase heredera de Activity que redefine el método onCreate Un atributo público, lo es también para escritura, lo que rompe el principio de encapsulación DepartamentodeInformática Tecnología de Programación Hola, Mundo 9 Herencia y redefinición Todos los métodos son funciones, aunque algunos devuelven void UniversidaddeValladolid Tecnología de Programación FÉLiX Hola, Mundo 10 Definición del primer «layout» UniversidaddeValladolid FÉLiX DepartamentodeInformática Tecnología de Programación Hola, Mundo 11 Editando el «layout» <?xml version="1.0" encoding="utf−8"?> <LinearLayout xmlns:android= "http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout> UniversidaddeValladolid DepartamentodeInformática Tecnología de Programación FÉLiX Hola, Mundo 12 Consideraciones sobre el «layout» UniversidaddeValladolid FÉLiX DepartamentodeInformática Tecnología de Programación Hola, Mundo 13 La estructura del «layout» La posición de los elementos siempre es relativa En general las vistas se construyen combinando cajas apiladas vertical y horizontalmente En general es más cómodo utilizar el editor «rico» La columna de la izquierda contiene todos los elementos o Vistas que podemos insertar Las medidas preferidas son dip (pixels independientes de la densidad) y sp (equivalente para texto) No deben aparecer explícitamente: La columna de la derecha contiene el árbol de estructura del layout Podemos cambiar propiedades de una vista mediante un menú contextual colores tipos de letra cadenas de caracteres todos estos elementos aparecen en otros ficheros de recursos UniversidaddeValladolid DepartamentodeInformática Tecnología de Programación FÉLiX Hola, Mundo 14 Creando un nuevo fichero de recursos UniversidaddeValladolid FÉLiX DepartamentodeInformática Tecnología de Programación Hola, Mundo 15 Ficheros de recursos Podemos crear ficheros de recursos de varios tipos Layout, colores, datos, menús,. . . Podemos crear varios ficheros para el mismo recurso Se activará uno de ellos en función de un conjunto de propiedades Idioma, tamaño o posición de pantalla,. . . Los ficheros se almacenan en directorios diferentes Eclipse es capaz de ocuparse de los detalles UniversidaddeValladolid DepartamentodeInformática FÉLiX UniversidaddeValladolid DepartamentodeInformática FÉLiX Tecnología de Programación Hola, Mundo 16 El siguiente paso Conseguir reacciones a las acciones del usuario Lanzar otra actividad Utilizar otros tipos de vista Ofrecer opciones de configuración de la aplicación Esto es: Un «Hola, Mundo» con pretensiones UniversidaddeValladolid DepartamentodeInformática FÉLiX