SlideShare una empresa de Scribd logo
1 de 79
Descargar para leer sin conexión
UNIDAD 2. EMPEZAMOS CON ANDROID
2.1 DESCRIPCIÓN GENERAL DE LA ARQUITECTURA ANDROID.
2.2 ARQUITECTURA DE UN ANDROID APP.
2.2.1 Componentes de una aplicación para Android.
2.2.2 Otros elementos en una aplicación para Android.
2.3 COMO CREAR UN PROYECTO ANDROID.
2.3.1 Android Studio.
2.3.1.1 Una visión general del IDE de Android Studio.
2.3.1.2 Editor.
2.3.1.3 Vistas.
2.3.1.4 Barra de navegación.
2.3.1.5 Barras de herramientas principales y secundarias.
2.3.1.6 Ventanas de Herramientas.
2.3.1.7 Apariencia.
2.3.2 Creación de un nuevo proyecto.
2.3.2.1 Creación de un nuevo proyecto
2.3.2.2 Descripción de los archivos predeterminados.
2.3.2.3 Ejecución de un proyecto Android.
3.2.4 Uso del emulador de Android (AVD).
2.3.2.5 El uso de un dispositivo real para desarrollar con Android
2.4 CÓMO CREAR NUESTRO PRIMER APP ANDROID.
2.4.1 Creación de la interfaz de usuario del código fuente y no XML.
2.4.2 Utilización de cadenas.
2.5. DISEÑO DE UNA ÚNICA INTERFAZ DE USUARIO (UI).
2.5.1 Vista disponible en Android.
2.5.2 Tipos de paneles (Layaouts).
2.5.3 Posiciones y tamaños.
2.5.4 Componentes básicos.
2.5.5 Personalización de la apariencia de un botón.
2.5.6. Temas y estilos.
2.6. EJERCICIOS.
2.1. Descripción general de la
arquitectura Android
(Fuente: Http://www.techotopia.com/index.php/Android_4_App_Development_Essentials punto 6 )
Android posee una arquitectura en forma de una pila de software que incluye
aplicaciones, un sistema operativo, entorno de ejecución, middleware, servicios y
bibliotecas. Esta arquitectura puede verse mejor, tal vez, siendo respresentada
visualmente como se indica en esta figura. Cada capa de la pila, y los elementos
correspondientes dentro de cada capa, están estrechamente integrados y
cuidadosamente ajustada para proporcionar el desarrollo óptimo de las aplicaciones y
el entorno de ejecución para dispositivos móviles.
Figura 1.1: Arquitectura del sistema Android. Objetos de color verde están escritas en C
/ C + , objetos azules están escritos en Java y se ejecutan en la máquina virtual Dalvik.
El kernel de Linux
Situado en la parte inferior de la pila de software Android, el núcleo de Linux
proporciona un nivel de abstracción entre el hardware del dispositivo y de las capas
superiores de la pila de software Android. Basado en Linux versión 2.6, el kernel
proporciona multitarea preferente, los servicios del sistema base de bajo nivel, tales
como la memoria, el proceso y la administración de energía, además de proporcionar
una pila de red y dispositivo para el hardware, tales como la pantalla del dispositivo,
Wi-Fi y de audio.
El núcleo original de Linux fue desarrollado en 1991 por Linus Torvalds y se combinó
con un conjunto de herramientas, utilidades y compiladores desarrollados por Richard
Stallman en la Free Software Foundation para crear un sistema operativo completo se
conoce como GNU / Linux. Varias distribuciones de Linux se han derivado de estos
fundamentos básicos tales como Ubuntu y Red Hat Enterprise Linux.
Es importante señalar, sin embargo, que Android sólo utiliza el núcleo Linux. Dicho
esto, vale la pena señalar que el núcleo Linux fue desarrollado originalmente para su
uso en los ordenadores tradicionales en forma de equipos de sobremesa y servidores.
De hecho, Linux está ahora más ampliamente desplegada en entornos de servidores
empresariales de misión crítica. Es un testimonio tanto de la potencia de los
dispositivos móviles de hoy en día como de la eficiencia y el rendimiento del núcleo de
Linux que nos encontramos en el centro de la pila de software Android.
Android RunTime- Dalvik Virtual Machine
Como se señaló anteriormente, el núcleo de Linux proporciona un entorno de
ejecución multitarea que permite ejecutar varios procesos simultáneamente. Sería
fácil suponer, por tanto, que cada aplicación Android simplemente ejecuta como un
proceso directamente en el núcleo de Linux. De hecho, cada aplicación que se ejecuta
en un dispositivo Android lo hace dentro de su propia instancia de la máquina virtual
Dalvik (VM).
La ejecución de aplicaciones en máquinas virtuales proporciona una serie de ventajas.
En primer lugar, las aplicaciones son esencialmente un entorno seguro de ejecución
acotada, en la que no pueden interferir perjudicialmente (intencionadamente o no)
con el sistema operativo u otras aplicaciones, ni tampoco pueden acceder
directamente al hardware del dispositivo. En segundo lugar, este nivel de abstracción
forzada hace que la plataforma de las aplicaciones sea neutra en cuanto a que no
están vinculados a ningún hardware específico.
La máquina virtual Dalvik fue desarrollada por Google y se basa en el núcleo de Linux
subyacente para la funcionalidad de bajo nivel. Es más eficiente que el estándar de
Java VM en términos de uso de la memoria se, y específicamente diseñado para
permitir múltiples instancias para ejecutar de manera eficiente dentro de las
limitaciones de recursos de un dispositivo móvil.
Con el fin de ejecutar dentro de una máquina virtual Dalvik, el código de aplicación
debe ser transformado a partir de archivos de clases Java estándar para el ejecutable
Dalvik formato (.dex), que tiene una capacidad de memoria de 50% más pequeño que
el código de bytes de Java estándar. Los archivos de clase Java estándar pueden por lo
general (aunque no siempre) convertirse al formato Dex con la función dx que incluye
el SDK de Android.
Android RunTime - bibliotecas del núcleo
Las bibliotecas o librerías Android Core (también conocidas como las bibliotecas Dalvik)
se dividen en tres categorías principales, cada uno de los cuales merece una
descripción individual:
Bibliotecas específicas Dalvik VM
Este es un conjunto de librerías utilizadas predominantemente para interactuar
directamente con una instancia de la máquina virtual Dalvik y es poco probable que
sea utilizado por la mayoría de los desarrolladores de aplicaciones Android.
Bibliotecas Java Core
Las aplicaciones Android están desarrolladas fundamentalmente con el lenguaje de
programación Java. El entorno de desarrollo Java estándar incluye una amplia gama de
clases que están contenidas en las bibliotecas del núcleo de tiempo de ejecución de
Java. Estas bibliotecas proporcionan soporte para tareas tales como manejo de
cadenas, redes y manipulación de archivos (por nombrar sólo algunas) y son familiar y
ampliamente utilizado por los desarrolladores de Java independientemente de la
plataforma.
Las librerías de Interoperabilidad de Java son una implementación de código abierto
(basado en el proyecto Apache Harmony) de un subconjunto de las bibliotecas del
núcleo de Java estándar que han sido adaptados y transformados para el uso de
aplicaciones que se ejecutan dentro de una máquina virtual Dalvik.
Bibliotecas Android
Esta categoría abarca aquellas bibliotecas basadas en Java que son específicos para el
desarrollo de Android. Ejemplos de bibliotecas en esta categoría incluyen las
bibliotecas marco de aplicación, además de los que facilitan la creación de interfaz de
usuario, el dibujo de gráficos y acceso a la base de datos.
Un resumen de algunas bibliotecas clave del núcleo Android disponibles para el
desarrollador de Android es el siguiente:
• android.app - Proporciona acceso al modelo de solicitud y es la piedra angular de
todas las aplicaciones de Android.
• android.content - Facilita el acceso al contenido, la edición y la mensajería entre
aplicaciones y componentes de aplicaciones.
• android.database - Se utiliza para acceder a los datos publicados por los
proveedores de contenidos e incluye las clases de gestión de base de datos SQLite.
• android.graphics - Un bajo nivel de gráficos 2D API de dibujo incluyendo colores,
puntos, filtros, rectángulos y lienzos.
• android.hardware - Presenta una API que proporciona acceso al hardware, como el
acelerómetro y sensor de luz.
• android.opengl - Una interfaz Java para la API de procesamiento de gráficos 3D
OpenGL ES.
• android.os - proporciona a las aplicaciones el acceso a los servicios del sistema
operativo estándar, incluyendo mensajes, servicios del sistema y la comunicación
entre procesos.
• android.media - Proporciona clases para permitir la reproducción de audio y vídeo.
• android.net - Un conjunto de APIs que proporcionan acceso a la pila de red. Incluye
android.net.wifi, que ofrece acceso a la pila inalámbrica del dispositivo.
• android.provider - Un conjunto de clases que proporcionan acceso a las bases de
datos de proveedores de contenido de Android estándar, tales como las
aplicaciones de calendario y datos de contacto.
• android.text - Se utiliza para representar y manipular texto en una pantalla del
dispositivo.
• android.util - Un conjunto de clases de utilidad para las tareas como la conversión
de cadenas y números, el manejo de XML y la manipulación del fecha y hora..
• android.view - Los bloques de construcción fundamentales de las interfaces de
usuario de aplicaciones.
• android.widget - Una rica colección de componentes de interfaz de usuario pre-
construidos, tales como botones, etiquetas, las vistas de lista, los administradores
de diseño, botones de radio, etc.
• android.webkit - Un conjunto de clases destinado a permitir capacidades de
navegación web que se construirán en las aplicaciones.
Después de haber cubierto las bibliotecas del núcleo basadas en Java en Android
RunTime, ahora es el momento de centrar nuestra atención en las bibliotecas basadas
en C / C ++ contenidas en esta capa de la pila de software Android.
Las bibliotecas de C / C ++
Las bibliotecas del núcleo de Android RunTime descritos en la sección anterior están
basados en Java y proporcionan las APIs primarias para los desarrolladores que crean
aplicaciones para Android. Es importante señalar, sin embargo, que las bibliotecas del
núcleo en realidad no realizan gran parte del trabajo real y están, de hecho,
esencialmente "envueltas en" Java en torno a un conjunto de librerías basadas en
C/C++. Al realizar llamadas, por ejemplo, a la biblioteca android.opengl para dibujar
gráficos en 3D en la pantalla del dispositivo, la biblioteca de hecho, en última instancia
hace que las llamadas a la biblioteca de la OpenGL ES C ++, que, a su vez, funciona con
el núcleo Linux subyacente para realizar las tareas de dibujo.
Las bibliotecas C/C++ se incluyen para cumplir con una amplia y diversa gama de
funciones, incluyendo 2D y 3D de dibujo de gráficos, Secure Sockets Layer (SSL),
gestión de base de datos SQLite, reproducción de audio y vídeo, mapa de bits y
vectores de representación de fuentes, subsistema de presentación y la capa gestión
de gráficos gestión y una implementación de la biblioteca del sistema estándar de C
(libc).
En la práctica, el desarrollador típico de aplicaciones Android accederá a estas
bibliotecas únicamente a través de las APIs de las librerías básicas de Android basados
en Java. En el caso de que necesitara acceso directo a estas bibliotecas, esto se puede
lograr utilizando el Android Native Development Kit (NDK), el propósito de los cuales
es para llamar a los métodos nativos de lenguajes de programación no Java (tales
como C y C ++) desde el código Java utilizando la Java Native Interface (JNI).
Marco de aplicación
El marco de aplicaciones (o Application Framework) es un conjunto de servicios que
forman colectivamente el entorno en el que se ejecutan y se gestionan las aplicaciones
de Android. Este marco implementa el concepto de que las aplicaciones Android se
construyen a partir de componentes reutilizables, intercambiables y reemplazables.
Este concepto se toma un paso más allá, en que una aplicación también es capaz de
publicar sus capacidades junto con los datos correspondientes de forma que puedan
ser encontrados y reutilizados por otras aplicaciones.
El marco Android incluye los siguientes servicios clave:
• Gestor de actividad (Activity Manager)- Controla todos los aspectos del ciclo de
vida de la aplicación y la pila de actividad.
• Los proveedores de contenido (Content Provider) - Permite que las aplicaciones
publicar y compartir datos con otras aplicaciones.
• Resource Manager - Proporciona acceso a recursos de código no incrustado tales
como cadenas, ajustes de color y los diseños de interfaz de usuario.
• Gestión de Notificaciones - Permite a las aplicaciones mostrar alertas y
notificaciones para el usuario.
• Vista System - Un conjunto ampliable vistas utilizados para crear interfaces de
usuario de aplicaciones.
• Gestor de paquetes - El sistema por el cual las aplicaciones son capaces de buscar
información acerca de otras aplicaciones que están instaladas en el dispositivo.
• Gestor de Telefonía - Proporciona información a la aplicación de los servicios de
telefonía disponibles en el dispositivo, como el estado del abonado y la
información.
• Gestor de Localización - Proporciona acceso a los servicios de localización que
permiten a la aplicación recibir actualizaciones sobre los cambios de ubicación.
Aplicaciones
Las aplicaciones están situadas en la parte superior de la pila de software de Android.
Estas comprenden tanto las aplicaciones nativas proporcionadas con la aplicación
Android (por ejemplo, aplicaciones de navegador web y correo electrónico) como las
aplicaciones de terceros instaladas por el usuario después de comprar el dispositivo.
NOTA:
La máquina virtual Dalvik ha sido sustituidA en Android 5 por una máquina virtual más
eficiente conocido como ART ( Android RunTime)
2.2 Arquitectura de una Aplicación
Android
Las aplicaciones Android están escritas en el lenguaje de programación Java. Las
herramientas de SDK de Android compilan el código, junto con todos los datos y
archivos de recursos-en un APK: paquete de Android, que es un archivo con un sufijo
.apk. Un archivo APK contiene todo el contenido de una aplicación para Android y es el
archivo que los dispositivos Android utilizan para instalar la aplicación.
Una vez instalado en un dispositivo, cada aplicación para Android es gestionada en su
propio entorno limitado de seguridad:
• El sistema operativo Android es un sistema multi-usuario de Linux en el que cada
aplicación es un usuario diferente.
• Por defecto, el sistema asigna a cada aplicación un identificador único usuario de
Linux (el ID es utilizado sólo por el sistema y es desconocido para la aplicación). El
sistema establece permisos para todos los archivos en una aplicación para que sólo
el ID de usuario asignado a esa aplicación puede acceder a ellos.
• Cada proceso tiene su propia máquina virtual (VM), por lo que el código de una
aplicación se ejecuta en forma aislada de otras aplicaciones.
• De forma predeterminada, cada aplicación se ejecuta en su propio proceso de
Linux. Android inicia el proceso cuando cualquiera de los componentes de la
aplicación necesita ser ejecutado, a continuación, cierra el proceso cuando ya no es
necesaria o cuando el sistema debe recuperar la memoria para otras aplicaciones.
De esta manera, el sistema Android implementa el principio del mínimo privilegio. Es
decir, cada aplicación, por defecto, sólo tiene acceso a los componentes que necesita
para hacer su trabajo y no más. Esto crea un ambiente muy seguro en el que una
aplicación no puede acceder a partes del sistema para el cual no se le da permiso.
2.2.1 Componentes de una aplicación Android.
Las aplicaciones Android se forman utilizando uno o más de estos componentes:
• Activitys
• Servicios
• Proveedores de contenido
• Receptores de radiodifusión.
Cada uno de estos tipos de componentes tiene una funcionalidad diferente en la
aplicación. Y se activan siguiendo la lógica de la aplicación. Incluso otras aplicaciones
pueden activar algunos de estos componentes.
Activitys
Quienes están familiarizados con los lenguajes de programación orientados a objetos
como Java, C ++ o C # estarán familiarizados con el concepto de encapsular elementos
con funcionalidad para la aplicación en clases, que serán instanciadas como objetos y
manipuladas para crear una aplicación. Dado que las aplicaciones de Android están
escritas en Java, este sigue siendo el concepto. Android, sin embargo, también lleva el
concepto de componentes reutilizables a un nivel superior.
Las aplicaciones Android son creadas para unificar uno o más componentes conocidos
como Activitys. Una actividad es un único módulo, independiente de la funcionalidad
de la aplicación que normalmente se correlaciona directamente con una única pantalla
de interfaz de usuario y su funcionalidad correspondiente. Una aplicación de citas,
podría por ejemplo, tener una pantalla de actividad que mostrara las citas establecidas
para el día actual. La aplicación también se puede utilizar una segunda actividad que
consiste en una pantalla en la que nuevas citas pueden ser introducidos por el usuario.
Las Activitys se piensan como bloques de construcción totalmente reutilizables e
intercambiables que se pueden compartir entre diferentes aplicaciones. Una aplicación
de correo electrónico existente, por ejemplo, puede contener una actividad
específicamente para componer y enviar un mensaje de correo electrónico. Un
desarrollador podría estar escribiendo una aplicación que también tiene un requisito
de enviar un mensaje de correo electrónico. En lugar de desarrollar una actividad de la
composición de correo electrónico específicamente para la nueva aplicación, el
desarrollador puede usar simplemente la actividad de la aplicación de correo
electrónico existente.
Las Activitys se crean como subclases de la clase Android Activity class y deben ser
implementadas de manera que sea totalmente independiente de otras Activitys en la
aplicación. Se puede pensar en ellos como una serie de páginas web. Cada página web
sería el equivalente a una actividad. Al pulsar el botón de retroceso de la actividad
actual es cerrada y la aplicación vuelve a la actividad de invocación de una manera
similar a los navegadores web.
Servicios
Los servicios de Android son procesos que se ejecutan en segundo plano y que no
tienen una interfaz de usuario. Ellos se pueden iniciar y posteriormente se gestionan
desde las Activitys, los receptores de radiodifusión u otros servicios. Los servicios de
Android son ideales para situaciones en las que una aplicación necesita para continuar
la ejecución de tareas, pero no necesariamente necesitan una interfaz de usuario para
que sea visible para el usuario. Aunque los servicios carecen de una interfaz de
usuario, que todavía puede notificar al usuario de eventos utilizando las notificaciones
y “toasts”/ avisos (pequeños mensajes de notificación que aparecen en la pantalla sin
interrumpir la actividad visible en ese momento) y también son capaces de emitir
“Intents”.
A los servicios Android se les da una prioridad más alta por el tiempo de ejecución
Android que a muchos otros procesos, y sólo se dará por terminado, como último
recurso por el sistema con el fin de liberar recursos. En el caso de que el Runtime
necesite matar un Servicio, sin embargo, se reiniciará automáticamente tan pronto
como los recursos necesarios estén disponibles. Un servicio puede reducir el riesgo de
finalización por la que se declara a sí mismo como tener que ejecutar en el primer
plano. Esto se consigue haciendo una llamada a startForeground (). Esto sólo se
recomienda para situaciones en las que la terminación sería perjudicial para la
experiencia del usuario (por ejemplo, si el usuario está escuchando el audio que se
transmite por el servicio).
Ejemplos de situaciones en que un Servicio puede ser una solución práctica incluyen,
como se ha mencionado anteriormente, la transmisión de audio que debe continuar
cuando la aplicación ya no está activo, o una aplicación de seguimiento del mercado de
valores que hay que notificar al usuario cuando una parte realiza un precio
determinado.
Proveedores de contenido
Los proveedores de contenido implementan un mecanismo para el intercambio de
datos entre aplicaciones. Cualquier aplicación puede proporcionar otras aplicaciones
con acceso a los datos subyacentes a través de la implementación de un proveedor de
contenidos que incluye la posibilidad de añadir, eliminar y consultar los datos (sujeto a
los permisos). El acceso a los datos se realiza a través de un identificador uniforme de
recursos (URI) definido por el proveedor de contenido. Los datos pueden ser
compartidos en forma de un archivo o una base de datos SQLite entera.
Las aplicaciones nativas de Android incluyen un número de proveedores de contenido
estándar permitiendo que las aplicaciones accedan a los datos, como contactos y
archivos multimedia.
Los proveedores de contenidos disponibles actualmente en un sistema Android se
pueden localizar usando un dispositivo de resolución contenido (Content Resolver).
Receptores de transmisicón o Broadcast
Los receptores de radiodifusión son el mecanismo por el cual las aplicaciones son
capaces de responder a Broadcast Intents (avisos de radiodifusión). Un receptor de
transmisión debe ser registrado por una aplicación y configurado con un filtro de
Intents para indicar los tipos de emisión en la que está interesado. Cuando se emite
un Intent de coincidencia, el receptor será invocado por el Android Runtime,
independientemente de si la aplicación que ha registrado el receptor está ejecutando
en ese momento. Después, el receptor tiene 5 segundos para completar las tareas que
le competen (tales como el lanzamiento de un servicio, las actualizaciones de datos o
la emisión de una notificación al usuario) antes de regresar. Receptores de broadcast
funcionan en segundo plano y no tienen una interfaz de usuario.
2.2. Otros elementos y Android App
Además de los componentes, hay otros elementos que son importantes en la
arquitectura de una aplicación Android.
Intents
Intents son el mecanismo por el que una actividad es capaz de lanzar otra y poner en
práctica el flujo a través de las Activitys que componen una aplicación. Intents consiste
en una descripción de la operación a realizar y, opcionalmente, los datos sobre los que
se va a realizar.
Intents pueden ser explícitos, solicitan la puesta en marcha de una actividad específica
haciendo referencia a la actividad por nombre de la clase, o implícita por el que conste
el tipo de acción a realizar o proporcionar datos de un tipo específico en el que la
acción se va a realizar. En el caso de los Intens implícitas, el Android Runtime
seleccionará la actividad a poner en marcha que mejor coincida con los criterios
especificados por el Intent mediante un proceso conocido como Intent Resolution.
Broadcast Intents
Otro tipo de Intent, la Broadcast Intent o de difusión, es un gran Intent del
sistema que se envía a todas las aplicaciones que se han registrado como
“interesados” en Broadcast Receiver. El sistema Android, por ejemplo, suelen
enviará Intents de difusión para indicar cambios en el estado del dispositivo,
tales como la realización de inicio del sistema, la conexión de una fuente de
alimentación externa al dispositivo o la pantalla está encendida o apagada.
Un Broadcast Intent puede ser normal (asíncrono) en el que se envía a todos los
receptores de radiodifusión interesadas en más o menos al mismo tiempo, o de
manera en que se envía a un receptor en un momento en el que se puede
procesarlo y luego ser pasado al siguiente receptor Broadcast.
Vistas
Se trata de elementos de interfaz de usuario IU que se dibujan en pantalla incluyendo
botones, casillas de verificación, listas, formularios, etc.
Diseños o Layouts
Ver las jerarquías que controlan el formato de la pantalla y el aspecto de las vistas
Fragmentos
Un fragmento representa un comportamiento o una porción de interfaz de usuario en
una actividad. Se pueden combinar múltiples fragmentos en una sola actividad para
construir una interfaz de usuario multi-panel y la reutilizar un fragmento en múltiples
Activitys. Se puede pensar en un fragmento como una sección modular de una
actividad, que tiene su propio ciclo de vida, recibe sus propios eventos de entrada, y
que se pueden agregar o quitar mientras que la actividad está en marcha (como una
especie de "sub actividad " que se pueda reutilizar en diferentes Activitys).
Un fragmento siempre debe estar integrado en una actividad y el ciclo de vida del
fragmento se ve directamente afectado por el ciclo de vida de la actividad de acogida.
Por ejemplo, cuando se detiene la actividad, se detienen todos los fragmentos, y
cuando se destruye la actividad, también se destruyen todos los fragmentos. Sin
embargo, mientras que una actividad se está ejecutando, se puede manipular de
forma independiente cada fragmento, tales como añadir o eliminar.
Application Resources o recursos de aplicaciones
Además del archivo de manifiesto y los archivos de Dex que contienen el código de
bytes ejecutable de la máquina virtual Dalvik, una aplicación para Android también
contendrá típicamente una colección de archivos de recursos. Estos archivos contienen
recursos tales como las cadenas, imágenes, fuentes y colores que aparecen en la
interfaz de usuario junto con la representación XML de los diseños de interfaz de
usuario. De forma predeterminada, estos archivos se almacenan en el subdirectorio
/res de la jerarquía del proyecto de la aplicación.
El manifiesto de aplicación
Es la unión que reúne los diferentes elementos que componen una aplicación es el
archivo de manifiesto de aplicación. Es dentro de este archivo basado en XML que la
aplicación se describen las Activitys, servicios, receptores de radiodifusión,
proveedores de datos y permisos que componen la aplicación completa.
Contexto de aplicación
Cuando se compila una aplicación, se crea una clase denominada R que contiene
referencias a los recursos de la aplicación. El archivo de manifiesto de aplicación y
estos recursos se combinan para crear lo que se conoce como el contexto de
aplicación. Este contexto, representada por la clase Android Context class, se puede
utilizar en el código de la aplicación para acceder a los recursos de la aplicación en
tiempo de ejecución. Además, una amplia gama de métodos puede ser llamado en el
contexto de una aplicación para recopilar información y realizar cambios en el entorno
de la aplicación en tiempo de ejecución.
Para saber más:
Como su nombre indica, es el contexto de la situación actual de la aplicación /
objeto. Permite que los objetos creados recientemente comprendan lo que ha
estado pasando. Normalmente se llama a él para obtener información con
respecto a otra parte de su programa (actividad, paquete /
Usted puede obtener el contexto invocando getApplicationContext (),
getContext (), getBaseContext () o
Los usos típicos de contexto:
• Creación de nuevos objetos
listeners:
TextView tv =newTextView(getContext
=newSimpleCursorAdapter(getApplicationContext
• Acceder a los recursos comunes estándar:
LAYOUT_INFLATER_SERVICE
context.getSystemService(LAYOUT_INFLATER_SERVICE
getApplicationContext().getSharedPreferences
• Acceso a los componentes Implícitamente:
broadcast, intent:
getApplicationContext().getContentResolver
2.3 Cómo crear
2. 3.1 Android Studio.
2. 3.1.1 Una visión general del
La pantalla de bienvenida se
proyectos abiertos en ese momento
cualquier momento seleccionando el Archivo
Android Studio fue previamente
la herramienta saltará la pantalla de bienvenida
marcha, abriendo automáticamente el proyecto anteriormente activo.
estado pasando. Normalmente se llama a él para obtener información con
respecto a otra parte de su programa (actividad, paquete / aplicación)
Usted puede obtener el contexto invocando getApplicationContext (),
getContext (), getBaseContext () o this (cuando está en la activity class
Los usos típicos de contexto:
Creación de nuevos objetos: la creación de nuevas vistas, adaptadores
getContext());ListAdapter adapter
getApplicationContext(),...);
Acceder a los recursos comunes estándar: Servicios como
LAYOUT_INFLATER_SERVICE, SharedPreferences:
YOUT_INFLATER_SERVICE)
getSharedPreferences(*name*,*mode*);
Acceso a los componentes Implícitamente: En cuanto a los proveedores de contenidos,
getContentResolver().query(uri,...);
Cómo crear un Proyecto Android
3.1.1 Una visión general del IDE Android Studio.
La pantalla de bienvenida se presenta cada vez que Android Studio s
en ese momento (los proyectos abiertos se puede
cualquier momento seleccionando el Archivo - > Cerrar proyecto desde
tudio fue previamente cerrado mientras un proyecto todavía
la pantalla de bienvenida la próxima vez que se
, abriendo automáticamente el proyecto anteriormente activo.
estado pasando. Normalmente se llama a él para obtener información con
aplicación)
Usted puede obtener el contexto invocando getApplicationContext (),
ty class).
s, adaptadores, o
Servicios como
s proveedores de contenidos,
Android
tudio se ejecuta sin
se pueden cerrar en
desde el menú). Si
todavía estaba abierto,
próxima vez que se ponga en
Además de una lista de proyectos recientes, el menú de inicio rápido proporciona una
gama de opciones para realizar tareas como abrir, crear e importar. Además, la opción
Configurar permite acceder al SDK Manager junto con una amplia gama de
configuraciones y opciones.
Cuando se crea un nuevo proyecto, o
principal de Android Studio. Cuando varios proyectos están abiertos simultáneamente,
cada uno se le asignará su propia ventana principal. La configuración exacta de la
ventana variará dependiendo de
última vez que el proyecto
2.3.1.2 Editor.
La ventana del editor muestra el contenido
trabajando actualmente. Lo que se muestra en esta ubicación, sin embargo, está
sujeto a contexto. Por ejemplo, d
código. Por el contrario, c
usuario, aparecerá la herramienta Diseñador de interfaz de usuario. Cuando hay varios
archivos abiertos, cada archivo está representado
del borde superior
2.3.1.3 Vistas
Además del Editor, una especie
Vistas o views.
Las vistas son ventanas auxiliares para mostrar información, introducir datos, etc.
Además de una lista de proyectos recientes, el menú de inicio rápido proporciona una
gama de opciones para realizar tareas como abrir, crear e importar. Además, la opción
te acceder al SDK Manager junto con una amplia gama de
es y opciones.
Cuando se crea un nuevo proyecto, o existe uno ya abierto, aparecerá la ventana
principal de Android Studio. Cuando varios proyectos están abiertos simultáneamente,
se le asignará su propia ventana principal. La configuración exacta de la
ventana variará dependiendo de las herramientas y los paneles que
última vez que el proyecto fue abierto.
La ventana del editor muestra el contenido del archivo en el que el desarrollador está
trabajando actualmente. Lo que se muestra en esta ubicación, sin embargo, está
Por ejemplo, durante la edición de código, aparecerá el editor de
Por el contrario, cuando se trabaja en un archivo de diseño de interfaz de
usuario, aparecerá la herramienta Diseñador de interfaz de usuario. Cuando hay varios
, cada archivo está representado por una pestaña situada a lo largo
, una especie de ventanas secundaria conforma la IDE, la
Las vistas son ventanas auxiliares para mostrar información, introducir datos, etc.
Además de una lista de proyectos recientes, el menú de inicio rápido proporciona una
gama de opciones para realizar tareas como abrir, crear e importar. Además, la opción
te acceder al SDK Manager junto con una amplia gama de
bierto, aparecerá la ventana
principal de Android Studio. Cuando varios proyectos están abiertos simultáneamente,
se le asignará su propia ventana principal. La configuración exacta de la
se mostraban la
del archivo en el que el desarrollador está
trabajando actualmente. Lo que se muestra en esta ubicación, sin embargo, está
urante la edición de código, aparecerá el editor de
n archivo de diseño de interfaz de
usuario, aparecerá la herramienta Diseñador de interfaz de usuario. Cuando hay varios
por una pestaña situada a lo largo
la IDE, las llamamos
Las vistas son ventanas auxiliares para mostrar información, introducir datos, etc.
Se pueden utilizar para múltiples propósitos, incluyendo la visualización de la
estructura de árbol de un directorio o incluso mostrar el contenido de una consulta
SQL.
El tipo de vista que se mostrará depende del tipo
En la imagen anterior se muestran dos
• La vista de la izquierda muestra la estru
proyectos.
• La vista horizontal muestra un registro de eventos donde hay una lista de
todos los eventos significativos que se están produciendo a me
ejecuta el proyecto
3.1.4 Barra de Navegación.
La barra de navegación proporciona una manera conveniente para moverse por los
archivos y carpetas que componen el proyecto. Al hacer clic en un elemento en la
barra de navegación se desplegará un menú con las subcarpetas y archivos en esa
ubicación lista para la selecció
herramientas del proyecto.
2.3.1.5 Principales y Secundarios barras de
La barra de herramientas principal contiene una selección de accesos directos a las
acciones que se realizan con frecue
proporcionan un acceso más rápido a un grupo selecto de las acciones de la barra de
menús. La barra de herramientas se puede personalizar haciendo clic derecho en la
barra y seleccionando “Customize menus and t
Se pueden utilizar para múltiples propósitos, incluyendo la visualización de la
ctura de árbol de un directorio o incluso mostrar el contenido de una consulta
El tipo de vista que se mostrará depende del tipo de archivo que se está editando
En la imagen anterior se muestran dos vistas:
La vista de la izquierda muestra la estructura de árbol del directorio de
La vista horizontal muestra un registro de eventos donde hay una lista de
todos los eventos significativos que se están produciendo a me
ejecuta el proyecto.
Navegación.
gación proporciona una manera conveniente para moverse por los
archivos y carpetas que componen el proyecto. Al hacer clic en un elemento en la
barra de navegación se desplegará un menú con las subcarpetas y archivos en esa
ubicación lista para la selección. Esto proporciona una alternativa a la ventana de
herramientas del proyecto.
3.1.5 Principales y Secundarios barras de herramientas.
La barra de herramientas principal contiene una selección de accesos directos a las
acciones que se realizan con frecuencia. Los botones de la barra de herramientas
proporcionan un acceso más rápido a un grupo selecto de las acciones de la barra de
menús. La barra de herramientas se puede personalizar haciendo clic derecho en la
“Customize menus and toolbars”
Se pueden utilizar para múltiples propósitos, incluyendo la visualización de la
ctura de árbol de un directorio o incluso mostrar el contenido de una consulta
de archivo que se está editando.
ctura de árbol del directorio de
La vista horizontal muestra un registro de eventos donde hay una lista de
todos los eventos significativos que se están produciendo a medida que se
gación proporciona una manera conveniente para moverse por los
archivos y carpetas que componen el proyecto. Al hacer clic en un elemento en la
barra de navegación se desplegará un menú con las subcarpetas y archivos en esa
n. Esto proporciona una alternativa a la ventana de
La barra de herramientas principal contiene una selección de accesos directos a las
ncia. Los botones de la barra de herramientas
proporcionan un acceso más rápido a un grupo selecto de las acciones de la barra de
menús. La barra de herramientas se puede personalizar haciendo clic derecho en la
Además de la barra de herramientas principal
barra de herramientas secundaria.
2.3.1.6 Ventana de Herramienta
Además de la ventana vista del proyecto, Android Studio también incluye otras
ventanas, que, cuando está activada, se muestran
ventana principal. Al menú de acceso rápido
acceder con solo pasar el puntero del ratón sobre el botón situado en la esquina
izquierda de la barra de estado sin hacer clic en el botón del ratón.
barra de herramientas principal, cada vista puede contener su propia
barra de herramientas secundaria.
Herramientas.
Además de la ventana vista del proyecto, Android Studio también incluye otras
uando está activada, se muestran en la parte inferior y los
l menú de acceso rápido de la ventana de herramientas se puede
acceder con solo pasar el puntero del ratón sobre el botón situado en la esquina
a de estado sin hacer clic en el botón del ratón.
, cada vista puede contener su propia
Además de la ventana vista del proyecto, Android Studio también incluye otras
en la parte inferior y los lados de la
ventana de herramientas se puede
acceder con solo pasar el puntero del ratón sobre el botón situado en la esquina
Pueden activarse seleccionando: V
esquina inferior izquierda.
Habilita una serie de botones que se muestran alrededor del IDE:
Esos botones son para most
Android Studio ofrece. Las
• Proyecto - La vista del proyecto proporciona una visión general de la estructura
de archivos que componen el proyecto, y
los archivos. En general, hacer doble clic en un archivo en la ventana de
proyecto hará que ese archivo pa
apropiada.
• Estructura - La estructura herramienta proporciona una visión de alto
la estructura del archivo de código fuente que se muestra actualmente en el
editor. Esta información incluye una lista de elementos tales como clases,
métodos y variables en el archivo. Al seleccionar un elemento de la lista de
estructuras le llevará a la ubicación en el archivo de origen en la
editor.
Pueden activarse seleccionando: View Tool Buttons o presionando el botón en la
una serie de botones que se muestran alrededor del IDE:
Esos botones son para mostrar y ocultar cada una de las ventanas de herramientas
s más utilizadas son las siguientes:
La vista del proyecto proporciona una visión general de la estructura
chivos que componen el proyecto, y permite una navegación rápida entre
los archivos. En general, hacer doble clic en un archivo en la ventana de
proyecto hará que ese archivo pase a ser cargado en la herramienta de edición
La estructura herramienta proporciona una visión de alto
la estructura del archivo de código fuente que se muestra actualmente en el
editor. Esta información incluye una lista de elementos tales como clases,
métodos y variables en el archivo. Al seleccionar un elemento de la lista de
vará a la ubicación en el archivo de origen en la
s o presionando el botón en la
rar y ocultar cada una de las ventanas de herramientas que
La vista del proyecto proporciona una visión general de la estructura
navegación rápida entre
los archivos. En general, hacer doble clic en un archivo en la ventana de
ser cargado en la herramienta de edición
La estructura herramienta proporciona una visión de alto nivel de
la estructura del archivo de código fuente que se muestra actualmente en el
editor. Esta información incluye una lista de elementos tales como clases,
métodos y variables en el archivo. Al seleccionar un elemento de la lista de
vará a la ubicación en el archivo de origen en la ventana del
• Favoritos - Una variedad de items del proyecto pueden ser añadidos a la lista
de favoritos. Haciendo clic derecho sobre un archivo en la ventana de proyecto,
por ejemplo, proporciona acceso a la opción de menú Agregar a Favoritos. Del
mismo modo, un método en un archivo fuente se puede agregar como favorito
haciendo clic derecho sobre él en la ventana de herramientas Estructura. Nada
añade a una lista de Favoritos se puede acceder a través de esta ventana
Favoritos herramienta.
• Construir variantes - La acumulación de variantes de ventana de la herramienta
proporciona una forma rápida de configurar diferentes tipos de generación
para el proyecto actual de la aplicación (por ejemplo, diferentes formaciones
para la depuración y liberación de versiones de la aplicación, o varias
composiciones para dirigirse a diferentes categorías de dispositivos).
• Mensajes - La herramienta Mensajes graba la salida desede el sistema de
construcción Gradle (Gradle es el sistema subyacente utilizado por Android
Studio para la construcción de las diferentes partes de los proyectos en
aplicaciones ejecutables) y puede ser útil para identificar las causas de los
problemas de compilación al compilar proyectos de aplicaciones.
• Android - La ventana de la herramienta Android proporciona acceso al sistema
de depuración Android. Dentro de las tareas de esta ventana, se pueden
realizar tareas tales como monitorizar la salida de una aplicación en ejecución,
realizar capturas de pantalla y vídeos de la aplicación, la detención de un
proceso y realizar tareas básicas de depuración.
• Terminal - Proporciona acceso a una ventana de terminal en el sistema en el
que se está ejecutando Android Studio. En los sistemas Windows esta es la
interfaz de línea de comandos, mientras que en los sistemas Linux y Mac OS X,
esto toma la forma de una terminal.
• Ejecutar - La ventana de herramientas de ejecución está disponible cuando una
aplicación se está ejecutando y proporciona una vista de los resultados de la
ejecución, junto con opciones para detener o reiniciar un proceso en ejecución.
Si una aplicación falla al instalar y ejecutar en un dispositivo o emulador, esta
ventana suele proporcionar información de diagnóstico relacionada con el
problema.
• Registro de eventos - La ventana de registro de eventos muestra los mensajes
relacionados con eventos y Activitys realizadas dentro de Android Studio. La
construcción exitosa de un proyecto, por ejemplo, o el hecho de que una
aplicación se está ejecutando será reportada dentro de esta ventana.
• Gradle Consola - La consola Gradle se utiliza para mostrar todas las salidas del
sistema Gradle como los proyectos que se construyen desde dentro de Android
Studio. Esto incluirá información sobre el éxito o el fracaso del proceso de
construcción junto con los detalles de los errores o advertencias.
• Maven Proyectos - Maven es un gestor y sistema de construcción de proyectos
diseñado para facilitar el desarrollo de proyectos complejos basados en Java y
se superpone en muchas zonas con la funcionalidad proporcionada por Gradle.
Google ha elegido Gradle como el sistema de construcción subyacente para el
desarrollo de Android, por lo que a menos que ya están familiarizados con
Maven o tienen proyectos Maven existentes para importar, a su vez será mejor
invertido en el aprendizaje y la adopción de Gradle para sus proyectos. La
ventana de herramientas proyectos Maven se puede utilizar para agregar,
administrar e importa
• Gradle - La ventana de la herramienta Gradle proporciona una vista en las
tareas Gradle que conforman la configuración de generación de proyectos. La
ventana se muestran las tareas que están involucrados en la elaboración de los
distintos elementos del proyecto en una aplicación ejecutable. Ha
en una tarea Gradle y selecciona la opción de menú Abrir Gradle Config para
cargar el archivo de
será cubierto con mayo
• Commandere - La herramienta
combinación de las
jerarquía de archivos del proyecto atravesar los diferentes elementos que
componen las clases para ser inspeccionado y se carga en el editor o diseñador
ventanas.
• Diseñador - Disponible cuando el diseñador de interfaz de usuario está activo,
esta ventana de herramientas proporciona acceso a los paneles árbol de
componentes y las pr
2.3.1.7 Interfaz.
La interfaz del proyecto se puede seleccionar mediante el acceso al menú:
Quick Switch Scheme > Switch Look and Feel
"Darcula":
Google ha elegido Gradle como el sistema de construcción subyacente para el
desarrollo de Android, por lo que a menos que ya están familiarizados con
ienen proyectos Maven existentes para importar, a su vez será mejor
invertido en el aprendizaje y la adopción de Gradle para sus proyectos. La
ventana de herramientas proyectos Maven se puede utilizar para agregar,
importar proyectos basados en Android Studio.
La ventana de la herramienta Gradle proporciona una vista en las
tareas Gradle que conforman la configuración de generación de proyectos. La
ventana se muestran las tareas que están involucrados en la elaboración de los
ntos elementos del proyecto en una aplicación ejecutable. Ha
en una tarea Gradle y selecciona la opción de menú Abrir Gradle Config para
cargar el archivo de construir Gradle para el proyecto actual en el editor. Gradle
será cubierto con mayor detalle más adelante en este libro.
La herramienta Commander puede ser descrit
combinación de las herramientas de proyecto y estructura, que permite
jerarquía de archivos del proyecto atravesar los diferentes elementos que
ponen las clases para ser inspeccionado y se carga en el editor o diseñador
Disponible cuando el diseñador de interfaz de usuario está activo,
esta ventana de herramientas proporciona acceso a los paneles árbol de
componentes y las propiedades del diseño.
del proyecto se puede seleccionar mediante el acceso al menú:
Quick Switch Scheme > Switch Look and Feel. Este es el aspecto del esquema
Google ha elegido Gradle como el sistema de construcción subyacente para el
desarrollo de Android, por lo que a menos que ya están familiarizados con
ienen proyectos Maven existentes para importar, a su vez será mejor
invertido en el aprendizaje y la adopción de Gradle para sus proyectos. La
ventana de herramientas proyectos Maven se puede utilizar para agregar,
La ventana de la herramienta Gradle proporciona una vista en las
tareas Gradle que conforman la configuración de generación de proyectos. La
ventana se muestran las tareas que están involucrados en la elaboración de los
ntos elementos del proyecto en una aplicación ejecutable. Haz clic derecho
en una tarea Gradle y selecciona la opción de menú Abrir Gradle Config para
Gradle para el proyecto actual en el editor. Gradle
puede ser descrita como una
de proyecto y estructura, que permite a la
jerarquía de archivos del proyecto atravesar los diferentes elementos que
ponen las clases para ser inspeccionado y se carga en el editor o diseñador
Disponible cuando el diseñador de interfaz de usuario está activo,
esta ventana de herramientas proporciona acceso a los paneles árbol de
del proyecto se puede seleccionar mediante el acceso al menú: View >
. Este es el aspecto del esquema
Atajos de teclado Android Studio
Android Studio incluye una gran cantidad de atajos de teclado diseñados para ahorrar
tiempo al realizar tareas comunes. Un mapa de
ver e imprimir desde dentro de la ventana del proyecto Android Studio seleccionando
la opción Help -> Default Keymap Reference
Importación de proyectos de Eclipse
Para importar Proyectos desarrollados con Eclipse, selecciona Import Project:
A continuación, busca el directorio donde se almacena el proyecto de Eclipse:
Y, por último, selecciona el directorio donde se creará el nuevo proyecto de
Android:
Atajos de teclado Android Studio
tudio incluye una gran cantidad de atajos de teclado diseñados para ahorrar
tiempo al realizar tareas comunes. Un mapa de accesos directos de teclado
ver e imprimir desde dentro de la ventana del proyecto Android Studio seleccionando
> Default Keymap Reference.
Importación de proyectos de Eclipse
Para importar Proyectos desarrollados con Eclipse, selecciona Import Project:
el directorio donde se almacena el proyecto de Eclipse:
el directorio donde se creará el nuevo proyecto de
tudio incluye una gran cantidad de atajos de teclado diseñados para ahorrar
accesos directos de teclado se puede
ver e imprimir desde dentro de la ventana del proyecto Android Studio seleccionando
Para importar Proyectos desarrollados con Eclipse, selecciona Import Project:
el directorio donde se almacena el proyecto de Eclipse:
el directorio donde se creará el nuevo proyecto de Studio
Es probable que tengas que modificar la versión del SDK del proyecto. Sigue estos
pasos:
1.- En la vista Mensajes se puede observar que hay un error, lo que indica que
instalar la plataforma que falta. Esto es así porque el SDK utilizado en el proyecto
Eclipse está ausente en Android Studio. La versión SDK orig
nuestro ejemplo, pero tenemos sólo la versión 19. Para solucionarlo, seleccione el
archivo build.grade de la aplicación.
2.- Modificar el parámetro de compiledSdkVersion con el número de versión que tiene
instalada en su SDK. En nuestro ejemplo, es el número 19.
3.- Presione "Try Again" para construir el proyecto de nuevo.
que modificar la versión del SDK del proyecto. Sigue estos
En la vista Mensajes se puede observar que hay un error, lo que indica que
talar la plataforma que falta. Esto es así porque el SDK utilizado en el proyecto
Eclipse está ausente en Android Studio. La versión SDK original era el número 10 en
nuestro ejemplo, pero tenemos sólo la versión 19. Para solucionarlo, seleccione el
build.grade de la aplicación.
Modificar el parámetro de compiledSdkVersion con el número de versión que tiene
instalada en su SDK. En nuestro ejemplo, es el número 19.
Presione "Try Again" para construir el proyecto de nuevo.
que modificar la versión del SDK del proyecto. Sigue estos
En la vista Mensajes se puede observar que hay un error, lo que indica que hay que
talar la plataforma que falta. Esto es así porque el SDK utilizado en el proyecto
nal era el número 10 en
nuestro ejemplo, pero tenemos sólo la versión 19. Para solucionarlo, seleccione el
Modificar el parámetro de compiledSdkVersion con el número de versión que tiene
2.3.2 Creación de un nuevo proyecto.
2.3.2.1 Creación de un nuevo proyecto.
Obtendrás este cuadro de diálogo para introducir los principales aspectos del nuevo
proyecto:
Nombre de la aplicación: es el nombre que aparece en el icono en el dispositivo
Android . Es el texto que el usuario de la App ve en su dispositivo.
Nombre del módulo: es el nombre del proyecto en el IDE. Es el nombre para identificar
el proyecto para el desarrollador
Nombre del paquete: es el nombre del paquete de Java, donde se almacenará el
código fuente de la aplicación. Por lo general, utiliza la notación DNS
nombre debe ser siempre el mismo para una aplicación
com.mycompany.apps.mygame
n de un nuevo proyecto.
3.2.1 Creación de un nuevo proyecto.
Obtendrás este cuadro de diálogo para introducir los principales aspectos del nuevo
: es el nombre que aparece en el icono en el dispositivo
l texto que el usuario de la App ve en su dispositivo.
: es el nombre del proyecto en el IDE. Es el nombre para identificar
proyecto para el desarrollador.
es el nombre del paquete de Java, donde se almacenará el
ódigo fuente de la aplicación. Por lo general, utiliza la notación DNS a la inversa
siempre el mismo para una aplicación, por ejemplo
com.mycompany.apps.mygame
Obtendrás este cuadro de diálogo para introducir los principales aspectos del nuevo
: es el nombre que aparece en el icono en el dispositivo
: es el nombre del proyecto en el IDE. Es el nombre para identificar
es el nombre del paquete de Java, donde se almacenará el
a la inversa. Este
, por ejemplo
Ubicación del proyecto: Es el directorio donde se almacenará el proyecto.
Mínimo Requerido SDK: es la versión más baja de Android que
usando el nivel de la API
debe establecer este a la versión más baja disponible que permite su aplicación para
conjunto de características del núcleo. Si alguna de las funciones de su aplicación sólo
es posible en las versiones más recientes de Android y no es
características del núcleo de la aplicación, se puede habilitar la función sólo
ejecuta sobre las versiones que lo soportan.
Pulse Siguiente y el siguiente diálogo aparecerá una plantilla
aplicaciones típicas. Seleccione Actividad en blanco
Pulse Siguiente. Un nuevo diálogo aparecerá donde se puede nombrar la actividad
principal y diseño principal. Veremos más tarde
BienvenidoActivity y bienvenido_layout.
Es el directorio donde se almacenará el proyecto.
: es la versión más baja de Android que tu aplicación
. Para dar soporte a tantos dispositivos como
debe establecer este a la versión más baja disponible que permite su aplicación para
conjunto de características del núcleo. Si alguna de las funciones de su aplicación sólo
es posible en las versiones más recientes de Android y no es crítica para el conjunto de
características del núcleo de la aplicación, se puede habilitar la función sólo
las versiones que lo soportan.
Pulse Siguiente y el siguiente diálogo aparecerá una plantilla para seleccionar
licaciones típicas. Seleccione Actividad en blanco (Blank Activity):
. Un nuevo diálogo aparecerá donde se puede nombrar la actividad
principal y diseño principal. Veremos más tarde lo que esto significa. Vamos a utilizar
ty y bienvenido_layout.
Es el directorio donde se almacenará el proyecto.
tu aplicación soporta,
como sea posible,
debe establecer este a la versión más baja disponible que permite su aplicación para el
conjunto de características del núcleo. Si alguna de las funciones de su aplicación sólo
crítica para el conjunto de
características del núcleo de la aplicación, se puede habilitar la función sólo cuando se
para seleccionar para las
. Un nuevo diálogo aparecerá donde se puede nombrar la actividad
lo que esto significa. Vamos a utilizar
Pulse Finalizar y el IDE se iniciará:
Para visualizar las vistas pulse
Tool Windows > Project
Pulse Finalizar y el IDE se iniciará:
las vistas pulse el botón de la izquierda "1: Proyecto" o el menú" o el menú View >
Vamos a trabajar principalmente con el directorio src:
2.3.2.2 Descripción de los archivos por defecto del p
Para ver los archivos del proyecto A
del proyecto, se muestran
y el contenido de los archivos del proyecto
Vamos a trabajar principalmente con el directorio src:
IMPORTANTE
El nombre del paquete debe ser único. No
puede haber dos paquetes instalados en un
dispositivo Android con el mismo nombre
de paquete. Por esta razón, es importante
usar la sintaxis de DNS inversa para
nombrarlos. En el desarrollo de
aplicaciones y distribución
Android Market (Google Play) debe
utilizar tus propios nombres de paquetes
únicos.
IMPORTANTE
El Nombre de la actividad no puede incluir
acentos o caracteres especiales, como la
"ñ"
3.2.2 Descripción de los archivos por defecto del proyecto.
ver los archivos del proyecto Android creado por Android Studio, acce
se muestran los directorios que más nos interesan. Y esta es la estructura
do de los archivos del proyecto.
nombre del paquete debe ser único. No
puede haber dos paquetes instalados en un
dispositivo Android con el mismo nombre
de paquete. Por esta razón, es importante
usar la sintaxis de DNS inversa para
nombrarlos. En el desarrollo de
ión a través del
Google Play) debes
propios nombres de paquetes
El Nombre de la actividad no puede incluir
acentos o caracteres especiales, como la
royecto.
tudio, accede a la vista
ta es la estructura
Directorio /build/
Almacena una serie de elementos de código generados
el proyecto. Cada vez que compila el proyecto, Android
Java utilizadas para administrar los recursos de la aplicación.
(en el directorio /build/source/r/debug/package/)
Directorio /src/main/
Contiene el código fuente y los recursos
de la aplicación, código de la interfaz
gráfica, clases auxiliares, etc.
Inicialmente, Android Studio crea el
código básico de la actividad principal
con el nombre definido
en el paquete Java. En n
com.tema2.eje1.bienvenido.
Directorio /src/main/java/
Contiene todos los arc
conforman la Aplicación
Studio oculta el sufijo
pueden ser identificados por un círculo
con un C dentrol).
Directorio /src/main/res/
Recursos: Contiene todos los archivos
necesarios para el proyecto: imágenes,
vídeos, cadenas (para la localización de
la aplicación), etc. Cada tipo de recurso
se ha de almacenar en su propia
subcarpeta.
drawable-X/: contiene
de la aplicación.
layout/: contiene todos los archivos
del código fuente de las diferentes
pantallas de la interfaz gráfica.
Menu/: contiene los menús de la
aplicación.
Values: contiene otros recursos de la
aplicación, tales como
(strings.xml), estilos (styl
colores (colors.xml), etc.
xml/: contiene los archivos XML
alimentan la aplicación.
raw/: contiene recursos adicionales,
por lo general en un formato
diferente a XML.
ena una serie de elementos de código generados automáticamente al compilar
el proyecto. Cada vez que compila el proyecto, Android generará archivos de código
Java utilizadas para administrar los recursos de la aplicación. El más importante
/build/source/r/debug/package/)
Contiene el código fuente y los recursos
de la aplicación, código de la interfaz
gráfica, clases auxiliares, etc.
, Android Studio crea el
código básico de la actividad principal,
definido anteriormente
el paquete Java. En nuestro ejemplo
com.tema2.eje1.bienvenido.
main/java/
Contiene todos los archivos .java que
conforman la Aplicación. Android
el sufijo .java (Ellos
pueden ser identificados por un círculo
/res/
Recursos: Contiene todos los archivos
necesarios para el proyecto: imágenes,
vídeos, cadenas (para la localización de
la aplicación), etc. Cada tipo de recurso
macenar en su propia
: contiene las imágenes
/: contiene todos los archivos
del código fuente de las diferentes
pantallas de la interfaz gráfica.
/: contiene los menús de la
: contiene otros recursos de la
aplicación, tales como strings
(strings.xml), estilos (styles.xml),
colores (colors.xml), etc.
/: contiene los archivos XML que
la aplicación.
/: contiene recursos adicionales,
por lo general en un formato
automáticamente al compilar
archivos de código
más importante R.java
La clase R contiene un conjunto de constantes con el ID de cada recurso incluido en el
/res/folder. De esta forma, el desarrollador puede acceder fácilmente a los recursos a
partir del código fuente a través de esta clase.
NOTA: La carpeta build contiene más
Android Studio. Si abrís
directorio apk donde se genera la aplicación instalable.
IMPORTANTE
La clase R.java se genera automáticamente y no debe ser modificado
desarrollador. Se reconstruy
build.gradle
Contiene parámetros para la construcción del proyecto, tales como el número de
versión del SDK, Versión mínima Android que será capaz de ejecutar la aplicación, etc.
Directorio /libs/
Es donde el directorio donde se
Archivo AndroidManifest.xml:
Es un archivo XML con las principales características de la aplicación, tales como la
identificación (nombre, versión, icono, etc.
servicios, etc.) o los permisos necesarios para ejecutar la aplicación.
2.3.2.3 Ejecución de un
En primer lugar vamos a a
Administrador de AVD presion
captura de pantalla. Si utilizamos el emulador
botón indicado por el círculo rojo:
Seleccionamos Genymotion
Pulse el botón Ejecutar:
lase R contiene un conjunto de constantes con el ID de cada recurso incluido en el
, el desarrollador puede acceder fácilmente a los recursos a
partir del código fuente a través de esta clase.
contiene más subdirectorios de los que se muestran
ese directorio desde el sistema y verás
donde se genera la aplicación instalable.
La clase R.java se genera automáticamente y no debe ser modificado
desarrollador. Se reconstruye cada vez que se compila el proyecto.
Contiene parámetros para la construcción del proyecto, tales como el número de
versión del SDK, Versión mínima Android que será capaz de ejecutar la aplicación, etc.
Es donde el directorio donde se almacenan las bibliotecas de los tipo JAR.
AndroidManifest.xml:
las principales características de la aplicación, tales como la
n (nombre, versión, icono, etc.), sus componentes (Activitys
servicios, etc.) o los permisos necesarios para ejecutar la aplicación.
un Proyecto Android
En primer lugar vamos a abrir Android Virtual Device (AVD). Si
VD presionaremos el botón que indica la primera
captura de pantalla. Si utilizamos el emulador Genymotion, utilizaremos el segundo
botón indicado por el círculo rojo:
Seleccionamos Genymotion y pulsamos Start:
lase R contiene un conjunto de constantes con el ID de cada recurso incluido en el
, el desarrollador puede acceder fácilmente a los recursos a
los que se muestran en
entre otros, el
La clase R.java se genera automáticamente y no debe ser modificado por el
Contiene parámetros para la construcción del proyecto, tales como el número de
versión del SDK, Versión mínima Android que será capaz de ejecutar la aplicación, etc.
JAR.
las principales características de la aplicación, tales como la
Activitys, mensajes,
AVD). Si utilizamos el
primera flecha en la
, utilizaremos el segundo
Aparecerá una lista con los dispositivos disponibles:
Pulsamos el botón Aceptar y se ejecuta la aplicación
Verás que Android Studio ha generado e
2.3.2.4 Uso del emulador de Android (
El simulador de Android se puede inicia
El botón "Volver", permite cerrar una aplicación
on los dispositivos disponibles:
ptar y se ejecuta la aplicación:
ha generado el típico programa "Hello World
4 Uso del emulador de Android (AVD)
El simulador de Android se puede iniciar desde la barra de herramientas:
", permite cerrar una aplicación y regresar al escritorio
l típico programa "Hello World"
r desde la barra de herramientas:
escritorio Android:
Pantalla de inicio. Podemos acceder a
todas las aplicaciones instaladas con el
botón señalado por la flecha
captura de pantalla:
Para modificar el idioma del sistema operativo, pulse
siguiente pantalla:
Y a continuación, haga clic en
. Podemos acceder a
todas las aplicaciones instaladas con el
botón señalado por la flecha roja en la
Obtendremos la ventana de inicio,
donde se muestran todas las
aplicaciones instaladas:
Para modificar el idioma del sistema operativo, pulse el icono “Settings”
ga clic en "Seleccionar idioma":
Obtendremos la ventana de inicio,
donde se muestran todas las
ettings” y aparecerá la
2.3.2.5 . El uso de un dispositivo real para desarrollar con Android
Para habilitar el uso de un dispositivo real para
que activar la depuración USB para Android.
Después de conectar el dispositivo a través del cable USB al ordenador, ac
Depuración USB.
Cómo activar la depuración USB en Android KitKat y Jelly Bean (4.2 y
posteriores)
Abrimos Settings> About phone
veces en el Build number
3.2.5 . El uso de un dispositivo real para desarrollar con Android
Para habilitar el uso de un dispositivo real para pruebas de Aplicaciones Android tiene
que activar la depuración USB para Android.
el dispositivo a través del cable USB al ordenador, ac
Cómo activar la depuración USB en Android KitKat y Jelly Bean (4.2 y
About phone (vamos al final de la pantalla) > y puls
Build number hasta obtener el mensaje "Tu eres ahora desarrollador
3.2.5 . El uso de un dispositivo real para desarrollar con Android
Aplicaciones Android tienes
el dispositivo a través del cable USB al ordenador, activamos
Cómo activar la depuración USB en Android KitKat y Jelly Bean (4.2 y
) > y pulsamos varias
desarrollador".
Pulsa el botón "atrás" y observa
"Opciones de desarrollo"
"Depuración USB".
Cómo activar la depuración USB en Android 4.1 y 4.0
Abrimos Settings> Developer options
USB . En este caso es más fácil.
Cómo activar la depuración USB en Android 2.3
más recientes
En este caso es muy fácil. Seleccione Ajustes> Aplicaciones> Desarrollo > Depuración
USB (Settings>Applications
.
observa que una nueva opción ha aparecido
(“Developer options”). Haz presión sobre ella y activa
ómo activar la depuración USB en Android 4.1 y 4.0
Developer options. Y luego activamos la opción de depuración
USB . En este caso es más fácil.
Cómo activar la depuración USB en Android 2.3 Gingerbread
e caso es muy fácil. Seleccione Ajustes> Aplicaciones> Desarrollo > Depuración
Applications> Development> USB debugging:):
e una nueva opción ha aparecido. Denominada:
z presión sobre ella y activa
Y luego activamos la opción de depuración
Gingerbread y versiones
e caso es muy fácil. Seleccione Ajustes> Aplicaciones> Desarrollo > Depuración
2.4 Cómo crear nuestra primera
aplicación Android
A continuación vamos a explicar cómo crear un proyecto
creado en el punto anterior.
Nuestro primer proyecto Android consistirá en una única pantalla con un mensaje de
bienvenida. En la vista izquierda, proyecto, ampliamos las diferentes entradas
haciendo clic en las flechas de los nodos co
Abre el archivo Bienvenido.java
Observa que la clase BienvenidoActivity
(Activity class) (la extiende)
Una actividad es un componente de una apl
aplicación puede tener un montón de
una de ellas al mismo tiempo
Activity representa el componente principal de la interfaz gráfica de una aplicación
Android. Podemos pensar en una
lenguaje de programación visual.
A lo largo de la vida de una actividad
• Activa (Running): La actividad se encuentra en la parte superior de la pila. Es
visible y posee el foco.
• Pausada: La actividad es visible, pero no tiene el foco. Se pone
cuando otra actividad es
llena la totalidad de la pantalla. Cuando una actividad está totalmente oculta
por la que está en la parte superior, se pone en estado detenido.
• Detenido: Cuando la actividad no es vi
preferencias, etc ...
• Destruidos: cuando la actividad termina o
sale de la Pila de Activitys
onCreate () se invoca cuando la actividad
tareas de inicialización, como la creación de la interfaz de usuario de la actividad.
4 Cómo crear nuestra primera
aplicación Android
vamos a explicar cómo crear un proyecto a partir
en el punto anterior.
Nuestro primer proyecto Android consistirá en una única pantalla con un mensaje de
En la vista izquierda, proyecto, ampliamos las diferentes entradas
haciendo clic en las flechas de los nodos correspondientes.
Bienvenido.java, puedes ver el código fuente de la aplicación Android
BienvenidoActivity es una subclase de la clase de a
extiende)
componente de una aplicación que realiza acciones. Una
aplicación puede tener un montón de Activitys, aunque el usuario sólo interactúa con
una de ellas al mismo tiempo.
el componente principal de la interfaz gráfica de una aplicación
r en una activity (o actividad) como una ventana en otro
lenguaje de programación visual.
A lo largo de la vida de una actividad, esta atraviesa una serie de estados:
(Running): La actividad se encuentra en la parte superior de la pila. Es
posee el foco.
La actividad es visible, pero no tiene el foco. Se pone
cuando otra actividad está en la parte superior de la pila y es transparente o no
llena la totalidad de la pantalla. Cuando una actividad está totalmente oculta
por la que está en la parte superior, se pone en estado detenido.
: Cuando la actividad no es visible. Por lo general, almacena
: cuando la actividad termina o es matada por Android
Activitys.
se invoca cuando la actividad es cargada la primera vez. Se utiliza para
tareas de inicialización, como la creación de la interfaz de usuario de la actividad.
a partir del que hemos
Nuestro primer proyecto Android consistirá en una única pantalla con un mensaje de
En la vista izquierda, proyecto, ampliamos las diferentes entradas
e de la aplicación Android:
es una subclase de la clase de actividad,
icación que realiza acciones. Una
usuario sólo interactúa con
el componente principal de la interfaz gráfica de una aplicación
como una ventana en otro
una serie de estados:
(Running): La actividad se encuentra en la parte superior de la pila. Es
La actividad es visible, pero no tiene el foco. Se pone en este estado
en la parte superior de la pila y es transparente o no
llena la totalidad de la pantalla. Cuando una actividad está totalmente oculta
por la que está en la parte superior, se pone en estado detenido.
sible. Por lo general, almacena el estado,
por Android Runtime. Y
la primera vez. Se utiliza para
tareas de inicialización, como la creación de la interfaz de usuario de la actividad.
La interfaz de usuario de Android se compone de
que define el diseño de la interfaz de usuario, como por ejemplo un botón, una
imagen, una etiqueta de texto, etc. Cada uno de estos objetos pertenecen a una clase
que hereda de la superclase
Los objetos View (vista)
gráfica de una aplicación, de una manera similar como controles en Java o .NET.
Android proporciona una gran cantidad de controles básicos tales como cuadros de
texto, botones, listas, imágenes, pero podemos c
personalizados creando subclases de éstos.
En nuestro proyecto que llamamos a la vista (creada
bienvenido_layout del método onCreate
// Invoca su método de la superclase
super.onCreate (savedIns
// Establece la vista: activity_bienvenido.
setContentView (R.layout.bienvenido_layout);
Podemos ver el contenido de este archivo
el directorio src/main/res
BienvenidoActivity.java, al pulsar en el botón en el lado de archiv
XML file”:
La interfaz de usuario de Android se compone de Vistas/Views. Una vista es un objeto
que define el diseño de la interfaz de usuario, como por ejemplo un botón, una
imagen, una etiqueta de texto, etc. Cada uno de estos objetos pertenecen a una clase
que hereda de la superclase Vista/View.
son los componentes básicos que construyen la interfaz
gráfica de una aplicación, de una manera similar como controles en Java o .NET.
Android proporciona una gran cantidad de controles básicos tales como cuadros de
texto, botones, listas, imágenes, pero podemos crear nuestros propios componentes
subclases de éstos.
que llamamos a la vista (creada automáticamente)
del método onCreate():
// Invoca su método de la superclase
super.onCreate (savedInstanceState);
// Establece la vista: activity_bienvenido.
setContentView (R.layout.bienvenido_layout);
Podemos ver el contenido de este archivo bienvenido_layout.xml seleccionándolo en
/res/layaout/ o desde el editor, si estamos trabajando con
BienvenidoActivity.java, al pulsar en el botón en el lado de archivo del lado “Related
vista es un objeto
que define el diseño de la interfaz de usuario, como por ejemplo un botón, una
imagen, una etiqueta de texto, etc. Cada uno de estos objetos pertenecen a una clase
componentes básicos que construyen la interfaz
gráfica de una aplicación, de una manera similar como controles en Java o .NET.
Android proporciona una gran cantidad de controles básicos tales como cuadros de
rear nuestros propios componentes
automáticamente)
seleccionándolo en
mos trabajando con
del lado “Related
Lo estudiaremos en detalle en unidades posteriores. Contiene dos elementos y sus
parámetros:
• RelativeLayout: define la forma en que se organizan los distintos elementos.
• TextView: es un elemento de texto que m
Hola mundo! será el texto que se muestr
Una manera cómoda de ajustar el zoom
de la pantalla de diseño
tamaño del dispositivo para el espacio
disponible en la ventana, como lo
tenemos en la captura de pantalla.
Seleccionado de la vista es
"diseño"/”Design”. Con este modo,
podemos ver el aspecto que tendrá
el dispositivo seleccionado, si bien
internamente, el archivo está en
formato XML y a menudo tendremos
que acceder al código fuente para
ajustarlo. Puede hacerlo pulsando la
pestaña "Texto" indicada por la flecha.
Y obtendrá la siguiente
Lo estudiaremos en detalle en unidades posteriores. Contiene dos elementos y sus
: define la forma en que se organizan los distintos elementos.
es un elemento de texto que mostrará la cadena "Hola mundo!
! será el texto que se muestre .
Una manera cómoda de ajustar el zoom
de la pantalla de diseño es ajustar el
tamaño del dispositivo para el espacio
ventana, como lo
tenemos en la captura de pantalla.
eleccionado de la vista es
. Con este modo,
podemos ver el aspecto que tendrá en
el dispositivo seleccionado, si bien
, el archivo está en
formato XML y a menudo tendremos
ue acceder al código fuente para
ajustarlo. Puede hacerlo pulsando la
" indicada por la flecha.
imagen:
Lo estudiaremos en detalle en unidades posteriores. Contiene dos elementos y sus
: define la forma en que se organizan los distintos elementos.
"Hola mundo!"
El archivo R.java (generado automáticamente) no debe ser modificado
referencias estáticas (atributos de clase) a todos los recursos de la aplicación, de esa
manera podemos acceder a ellos desde nuestro código fuente, para
R.layout.bienvenido_layout
Busque el texto "bienvenido_layout" en el archivo R.java y
El archivo AndroidManifest.xml
los Intents, servicios, proveedores de contenido y fragmentos de la aplicación.
También contiene la declaración de los permisos requeridos por
la versión de Android mínima para ejecutarlo.
Intents: representa la intención o
realiza una acción. Intents se utilizan para:
• Iniciar Activitys.
• Enviar eventos a múltiples recepto
El archivo project.properties
modificado. Se utiliza para comprobar la versión de la API y otros parámetros cuando
la aplicación está instalada en un dispositivo.
Por último, el archivo build.gradle
construcción de la App, como
compilación, así como el número de versión de la aplicación
El archivo R.java (generado automáticamente) no debe ser modificado
referencias estáticas (atributos de clase) a todos los recursos de la aplicación, de esa
manera podemos acceder a ellos desde nuestro código fuente, para por ejemplo
R.layout.bienvenido_layout
Busque el texto "bienvenido_layout" en el archivo R.java y observe su declaración.
AndroidManifest.xml describe la aplicación Android. Contiene las
, proveedores de contenido y fragmentos de la aplicación.
También contiene la declaración de los permisos requeridos por la aplicación.
ndroid mínima para ejecutarlo.
la intención o la solicitud, por lo que uno de los
se utilizan para:
eventos a múltiples receptores.
project.properties: se genera automáticamente por el SDK. No debe
. Se utiliza para comprobar la versión de la API y otros parámetros cuando
la aplicación está instalada en un dispositivo.
build.gradle se utiliza para indicar parámetros para la
de la App, como la versión del SDK, versión mínima y la versión de
compilación, así como el número de versión de la aplicación
El archivo R.java (generado automáticamente) no debe ser modificado. Contiene
referencias estáticas (atributos de clase) a todos los recursos de la aplicación, de esa
por ejemplo:
observe su declaración.
ntiene las Activitys,
, proveedores de contenido y fragmentos de la aplicación.
la aplicación. Contiene
, por lo que uno de los componentes
: se genera automáticamente por el SDK. No debe ser
. Se utiliza para comprobar la versión de la API y otros parámetros cuando
se utiliza para indicar parámetros para la
versión del SDK, versión mínima y la versión de
Nota
Para quitar la barra de herramientas superior con el nombre
el archivo AndroidManifest.xml
android:theme="@style/AppTheme" por
android:theme="@android:style/Theme.NoTitleBar"
Esto eliminará el título para toda la aplicación. Si nosotros queremos
una actividad, podemos añadir en nuestro código Java:
// Eliminación de la barra de título
this.requestWindowFeature (
Para quitar la barra de herramientas superior con el nombre de la aplicación, editamos
AndroidManifest.xml y reemplazamos :
android:theme="@style/AppTheme" por
android:theme="@android:style/Theme.NoTitleBar"
Esto eliminará el título para toda la aplicación. Si nosotros queremos solo eliminarlo de
podemos añadir en nuestro código Java:
ón de la barra de título
this.requestWindowFeature (Window.FEATURE_NO_TITLE);
de la aplicación, editamos
solo eliminarlo de
2.4.1 Creación de la interfaz de usu
Podemos modificar nuestro ejemplo para cre
del código fuente en lugar de utilizar el archivo XML:
Añadimos las instrucciones para el método onCreate e importamos la clase TextView
(import android.widget.TextView
Nota: Puede añadir el "Import"
Enter. El import android.widget.TextView
En este ejemplo hemos utilizado la subclase de
texto.
En nuestro ejemplo, la etiqueta de
Para crear esta etiqueta, necesitamos para proveer como parámetro una instancia del
contexto de la aplicación Android. Un contexto es un identificador de sistema que
permite acceder a los recursos, las preferencias, bases de
aplicación. La clase Activity
actividad se puede pasar como el contexto de la App escribiendo
El método setText() establece el texto que tendrá la etiqueta.
Por último utilizamos el método
usuario de la actividad.
Al ejecutar nuestro ejemplo:
4.1 Creación de la interfaz de usuario del código fuente y no XML
Podemos modificar nuestro ejemplo para crear la vista en tiempo de ejecución a partir
del código fuente en lugar de utilizar el archivo XML:
ñadimos las instrucciones para el método onCreate e importamos la clase TextView
import android.widget.TextView).
mport" necesario puedes seleccionar TextView y pulsar
import android.widget.TextView será añadido.
En este ejemplo hemos utilizado la subclase de TextView, que crea una etiqueta de
etiqueta de TextView se crea en el constructor de la Activity.
necesitamos para proveer como parámetro una instancia del
contexto de la aplicación Android. Un contexto es un identificador de sistema que
permite acceder a los recursos, las preferencias, bases de datos,
aplicación. La clase Activity se hereda de la clase Context; para ello la instancia de
actividad se puede pasar como el contexto de la App escribiendo this.
establece el texto que tendrá la etiqueta.
s el método setContentView() para configurar la inte
jecutar nuestro ejemplo:
ario del código fuente y no XML.
ar la vista en tiempo de ejecución a partir
ñadimos las instrucciones para el método onCreate e importamos la clase TextView
TextView y pulsar Alt +
, que crea una etiqueta de
tructor de la Activity.
necesitamos para proveer como parámetro una instancia del
contexto de la aplicación Android. Un contexto es un identificador de sistema que
datos, etc. desde la
se hereda de la clase Context; para ello la instancia de
() para configurar la interfaz de
Ejercicio 1
Modificar el mensaje que aparece cuando se ejecuta la aplicación del punto número 4
accediendo a la propiedad Text
El nuevo mensaje que debe aparecer es
2.4.2 Trabajo con cadenas
Puedes ver en nuestro ejemplo que Android Studio ha creado una etiqueta con el texto
"Hello World" en bienvenido_layout.xml. Aunque se puede insertar cadenas en el
código de la aplicación, ésta no es la mejor opción. Las cadenas se insertan
generalmente en un archivo separado llamado
fácilmente aplicaciones.
Seleccione el TextView en la vista Graphic
desplazarse en busca del parámetro "texto"
Esta propiedad almacena el valor:
Modificar el mensaje que aparece cuando se ejecuta la aplicación del punto número 4
a propiedad Text.
que debe aparecer es "Hola, soy TUNOMBRE" .
4.2 Trabajo con cadenas
er en nuestro ejemplo que Android Studio ha creado una etiqueta con el texto
ienvenido_layout.xml. Aunque se puede insertar cadenas en el
código de la aplicación, ésta no es la mejor opción. Las cadenas se insertan
generalmente en un archivo separado llamado strings.xml. Esto permite
TextView en la vista Graphic en bienvenido_layout.xml . A continuación,
el parámetro "texto" entre sus propiedades:
Esta propiedad almacena el valor: @string/hello_world.
Modificar el mensaje que aparece cuando se ejecuta la aplicación del punto número 4
er en nuestro ejemplo que Android Studio ha creado una etiqueta con el texto
ienvenido_layout.xml. Aunque se puede insertar cadenas en el
código de la aplicación, ésta no es la mejor opción. Las cadenas se insertan
. Esto permite traducir
en bienvenido_layout.xml . A continuación,
@string significa que el valor de esta cadena se almacena
que contiene todas las cadenas de la aplicación).
cadena en el archivo string.xml
Se puede ver al abrir el archivo de /
Una manera fácil de editar est
en la vista gráfica y luego pulsando el botón "... " :
En esta ventana de diálogo las cadenas pueden ser editada
nuevas. Y se añadirán automát
significa que el valor de esta cadena se almacena en el archivo strings.xml (la
que contiene todas las cadenas de la aplicación). /hello_word es el identificador de la
cadena en el archivo string.xml
Se puede ver al abrir el archivo de /src/main/res/values/strings.xml:
Una manera fácil de editar estas cadenas es mediante la selección de las propiedades
la vista gráfica y luego pulsando el botón "... " :
En esta ventana de diálogo las cadenas pueden ser editadas y se pueden crear otras
se añadirán automáticamente al archivo strings.xml.
en el archivo strings.xml (la
es el identificador de la
de las propiedades
se pueden crear otras
Ejercicio 2
Cambiar el texto que aparece en el ejemplo (punto 4) modificando el archivo
strings.xml en /res/values
El nuevo mensaje debe ser "Hola, Soy TU NOMBRE y he sido capaz de modificar el
mensaje de bienvenida!" .
2.5 Diseño de una sola interfaz de
usuario (UI)
Los Layouts son elementos no visibles que están a cargo de la organización de los
componentes (widgets) que incluimos en la interfaz de usuario (UI). Se puede pensar
en estos elementos como paneles en los que colocar los componentes y que son
posicionados en un lugar determinado.
En el punto 4 utilizamos un diseño en el archivo bienvenido_layout.xml
Importante
Nos referiremos a los componentes en Android como Vistas/Views o Widgets a lo
largo del curso. Ya sean visibles (botones, texto, menús,...) o no lo sean (Layouts).
En Android el diseño de las interfaces se implementan a través de archivos XML
(Layouts). Aquí tienes un ejemplo:
EJEMPLO 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_world"
/>
</LinearLayout>
La estructura general de un archivo de interfaz XML en Android es simple. Es un árbol
de objetos XML, donde cada nodo es el nombre de una clase (o subclase) de la View.
En nuestro ejemplo usamos las clases LinearLayout y TextView.
Se puede utilizar cualquier subclase de la vista, incluso nuestras propias subclases
personalizadas.
El layaout LinearLayout organiza todos sus elementos secundarios en una fila
(horizontal o vertical) . En el siguiente punto veremos diferentes tipos de disposiciones
y de sus particularidades.
Esta estructura XML hace que sea más fácil para crear interfaces de usuario. Se basa en
el modelo de desarrollo web, donde se separan la presentación (interfaz) y la lógica.
En nuestro ejemplo anterior, sólo hay un elemento de Vista: TextView, que tiene tres
atributos y un elemento de diseño (Layaout): LinearLayout , el cual tiene cuatro
atributo. Esta es la descripción de esos atributos :
El título de la aplicación y la cadena "Hola Mundo" se definen en el archivo
src/main/res/values/strings.xml.
Android Studio permite editar los archivos XML en modo texto o en formato gráfico
(Design).
En esta ventana podemos diseñar visualmente la interfaz arrastrando los widgets
deseados desde la "paleta"
2.5.1 Vistas disponibles en Android.
Es muy fácil de construir interfaces de usuario en Android gracias a la utilización de
Views.
Hay muchas subclases de la vista
tales como:
• Botones7 Buttons
• Etiquetas/Labels
• Campos de texto / Text Fields
• Imágenes / Images
• Las casillas de verificación
• Etc.
Como hemos visto en el punto anterior,
vista llamada Layout.
En los Layouts podemos incluir otra
una interfaz de usuario más complej
2.5.2 Tipos de Layouts
FrameLayout
Un ejemplo de usos diferentes con un Fram
http://blog.neteril.org/blog/2013/10/10/f
5.1 Vistas disponibles en Android.
il de construir interfaces de usuario en Android gracias a la utilización de
la vista, que son objetos que tiene una representación visual,
/ Text Fields
Las casillas de verificación / Checkboxes
Como hemos visto en el punto anterior, las vistas deben ser colocadas en otro tipo de
podemos incluir otras Vistas o podemos anidar otros Layouts
nterfaz de usuario más compleja.
(paneles)
Un ejemplo de usos diferentes con un FrameLayout:
http://blog.neteril.org/blog/2013/10/10/framelayout-your-best-ui-friend/
il de construir interfaces de usuario en Android gracias a la utilización de
presentación visual,
s en otro tipo de
Layouts para crear
friend/
Ésta es la disposición más sencilla en Android. Un FrameLayout coloca todos sus
elementos secundarios alineados co
cada nuevo componente agregado se
coloca sobre el resto. Por lo general se
utiliza para colocar un único elemento.
También se puede utilizar para colocar
varios elementos, pero sólo uno de
ellos es visible al mismo tiempo,
modificando su atributo visible.
Los componentes incluidos en un
FrameLayout puede estab
propiedades android:layout_width
android:layout_height, que puede
contener los siguientes valores:
• fill_parent el componente hijo tendrá la misma dimensión que la disposición de
diseño contenedor.
• wrap_content: el componente hijo adapta
contenido.
• gravity: permite controlar su posición relativa
Ejemplo:
<?xml version="1.0" encoding="utf
<FrameLayout
xmlns:android="http://schemas.android.com/apk/
android:id="@+id/FrameLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
<AnalogClock
android:id="@+id/analogClock1"
android:layout_width="wrap_content"
android:layout_h
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_visibility="invisible"
android:text="CheckBox"
<TextView
android:id="@+id/textView1"
Ésta es la disposición más sencilla en Android. Un FrameLayout coloca todos sus
elementos secundarios alineados con la esquina superior izquierda, de tal manera que
cada nuevo componente agregado se
Por lo general se
utiliza para colocar un único elemento.
También se puede utilizar para colocar
varios elementos, pero sólo uno de
al mismo tiempo,
visible.
Los componentes incluidos en un
FrameLayout puede establecer sus
android:layout_width y
, que puede
contener los siguientes valores:
el componente hijo tendrá la misma dimensión que la disposición de
.
el componente hijo adaptará su tamaño del tamaño de su
controlar su posición relativa.
encoding="utf-8"?>
http://schemas.android.com/apk/res/android
android:id="@+id/FrameLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
android:id="@+id/analogClock1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
android:id="@+id/checkBox1"
droid:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_visibility="invisible"
android:text="CheckBox" />
android:id="@+id/textView1"
Ésta es la disposición más sencilla en Android. Un FrameLayout coloca todos sus
, de tal manera que
el componente hijo tendrá la misma dimensión que la disposición de
l tamaño de su
res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|center_horizontal"
android:layout_marginLeft="18dp"
android:layout_visibility="invisible"
android:text="Testo de prueba.
</FrameLayout>
LinearLayout
Vertical u horizontal:
El panel LinearLayout alinea todos sus componentes hijo horizontal o verticalmente en
función del valor de la propiedad
Al igual que con la FrameLayout, las prop
android:layout_height se puede ajustar.
Además, la propiedad A
relativa de los componentes contenidos en el mismo.
Ejemplo
<br><?xml version="1.0"
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
<AnalogClock
android:id="@+id/analogClock1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|center_horizontal"
android:layout_marginLeft="18dp"
android:layout_visibility="invisible"
android:text="Testo de prueba. HOLA" />
alinea todos sus componentes hijo horizontal o verticalmente en
a propiedad Android:orientation "vertical" u "horizontal".
Al igual que con la FrameLayout, las propiedades android:layout_width
se puede ajustar.
Android:layout_weight, permite establecer la dimensión
relativa de los componentes contenidos en el mismo.
version="1.0" encoding="utf-8"?>
http://schemas.android.com/apk/res/android
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
:orientation="vertical" >
android:id="@+id/analogClock1"
android:layout_gravity="top|center_horizontal"
alinea todos sus componentes hijo horizontal o verticalmente en
"vertical" u "horizontal".
:layout_width y
, permite establecer la dimensión
http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CheckBox" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
</LinearLayout>
Si incluimos dos componentes EditText y establecemos layout_weight = "1" en uno de
ellos y layout_weight = "2" en la otra, se le asignará toda la superficie disponible del
panel para los dos, pero la segunda altura de EditarText será el doble que la primera.
TableLayout
Ejemplo TableLayout: http://columna80.wordpress.com/2012/11/05/diseos-android-
bsicos-tablelayout/
El panel TableLayout distribuye todos sus componentes hijo como si fuera una tabla
con sus filas y columnas.
La estructura de la tabla se encuentra de forma similar a una tabla HTML, indicando
sus filas como (objetos TableRow) y columnas.
Como regla general, la anchura de cada columna será el más ancho de todas sus
celdas, aunque hay algunas propiedades que modifican este comportamiento:
• android:stretchColumns
• android:shrinkColumns
• android:collapseColumns
Todas estas propiedades pueden establecer una lista de índices separados por comas,
por ejemplo:
android: stretchColumns = "1,2,3
columnas se pueden estirar para conseguir todo el espacio disponible, de esta manera:
android: stretchColumns = "*".
android: layout_span
Ejemplo
<br><?xml version="1.0"
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android
android:layout_width="fill_parent"
android:layout_height="fill_parent"
<TableRow>
<AnalogClock
android:id="@+id/analo
android:layout_width="wrap_content"
android:layout_height="wrap_content"
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CheckBox"
</TableRow>
<TableRow>
stretchColumns
shrinkColumns
collapseColumns
Todas estas propiedades pueden establecer una lista de índices separados por comas,
android: stretchColumns = "1,2,3" o un asterisco para indicar que todas las
columnas se pueden estirar para conseguir todo el espacio disponible, de esta manera:
android: stretchColumns = "*".
version="1.0" encoding="utf-8"?>
http://schemas.android.com/apk/res/android
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
android:id="@+id/analogClock1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
d:text="CheckBox" />
Todas estas propiedades pueden establecer una lista de índices separados por comas,
asterisco para indicar que todas las
columnas se pueden estirar para conseguir todo el espacio disponible, de esta manera:
http://schemas.android.com/apk/res/android"
<RadioButton
android:id="@+id/radioButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RadioButton" />
<RadioButton
android:id="@+id/radioButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RadioButton" />
</TableRow>
<TableRow>
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="2"
android:span="2"
android:text="Button" />
</TableRow>
</TableLayout>
RelativeLayout
El panel RelativeLayout permite especificar la posición de cada componente de una
forma relativa con respecto a su elemento padre o cualquier otro elemento incluido en
la misma disposición. Podrás, por ejemplo, indicar que un nuevo componente X se
colocará justo debajo de otro componente y alineado
RelativeLayout (el que los contiene).
Un panel RelativeLayout
principales son:
Posición relativa con respecto a otro control:
• android:layout_above.
• android:layout_below.
• android:layout_toLeftOf.
• android:layout_toRightOf.
• android:layout_alignLeft.
• android:layout_alignRight.
• android:layout_alignTop.
• android:layout_alignBottom.
• android:layout_alignBaseline.
Posición relativa con respecto a la disposición de los padres:
• android:layout_alignParentLeft.
• android:layout_alignParentRight.
• android:layout_alignParentTop.
• android:layout_alignParentBottom.
• android:layout_centerHorizontal.
• android:layout_centerVertical.
• android:layout_centerInParent.
Valores de márgenes (también están disponi
• android:layout_margin.
• android:layout_marginBottom.
• android:layout_marginTop.
• android:layout_marginLeft.
• android:layout_marginRight.
colocará justo debajo de otro componente y alineado a la derecha de su panel
RelativeLayout (el que los contiene).
RelativeLayout tiene muchas propiedades de cada componente. Los
con respecto a otro control:
layout_above.
android:layout_below.
:layout_toLeftOf.
android:layout_toRightOf.
android:layout_alignLeft.
android:layout_alignRight.
android:layout_alignTop.
android:layout_alignBottom.
android:layout_alignBaseline.
con respecto a la disposición de los padres:
ut_alignParentLeft.
android:layout_alignParentRight.
android:layout_alignParentTop.
android:layout_alignParentBottom.
android:layout_centerHorizontal.
android:layout_centerVertical.
android:layout_centerInParent.
alores de márgenes (también están disponibles para el resto de los tipos
android:layout_margin.
android:layout_marginBottom.
android:layout_marginTop.
android:layout_marginLeft.
android:layout_marginRight.
a la derecha de su panel
tiene muchas propiedades de cada componente. Los
bles para el resto de los tipos Layout):
El relleno o espacio entre los componentes (también están disponibles para el resto de
los tipos de Layout):
• android:padding.
• android:paddingBottom.
• android:paddingTop.
• android:paddingLeft.
• android:paddingRight.
Ejemplo
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<AnalogClock
android:id="@+id/analogClock1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/analogClock1"
android:text="Button" />
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/analogClock1"
android:text="CheckBox" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_marginLeft="18dp"
android:text="Testo de prueba. HOLA" />
</RelativeLayout>
En este ejemplo, estamos utilizando nuevas propiedades: "layout_alignParentTop"
para alinear el componente de la parte superior del layout, "layout_below" para
añadir un elemento a continuación de otro, "layout_alignParentRight" para agregar el
elemento a la parte derecha de la, y finalmente, "layout_alignParentBotton" para
añadir un elemento a la parte inferior de la layout.
AbsoluteLayout
Permite especificar las coordenadas (x , y) para cada elemento .
Ejemplo
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<AnalogClock
android:id="@+id/analogClock1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CheckBox" />
<Button
android:id="@+id/button1"
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android

Más contenido relacionado

La actualidad más candente

Taller de prog. en android
Taller de prog. en androidTaller de prog. en android
Taller de prog. en androidKarla Silva
 
12j sistemaandroid texto
12j sistemaandroid texto12j sistemaandroid texto
12j sistemaandroid textoHenry Ortiz
 
"Android de la A a la Z" -- Unidad 3
"Android de la A a la Z" -- Unidad 3"Android de la A a la Z" -- Unidad 3
"Android de la A a la Z" -- Unidad 3Android UNAM
 
Tutorial Android 1
Tutorial Android 1Tutorial Android 1
Tutorial Android 1newimagenio
 
"Android de la A a la Z" -- Unidad 4
"Android de la A a la Z" -- Unidad 4"Android de la A a la Z" -- Unidad 4
"Android de la A a la Z" -- Unidad 4Android UNAM
 
"Android de la A a la Z" -- Unidad 5
"Android de la A a la Z" -- Unidad 5"Android de la A a la Z" -- Unidad 5
"Android de la A a la Z" -- Unidad 5Android UNAM
 
"Android de la A a la Z" -- Unidad 6
"Android de la A a la Z" -- Unidad 6"Android de la A a la Z" -- Unidad 6
"Android de la A a la Z" -- Unidad 6Android UNAM
 
Desarrollo android - 2 - arquitectura del sistema
Desarrollo android   - 2 - arquitectura del sistemaDesarrollo android   - 2 - arquitectura del sistema
Desarrollo android - 2 - arquitectura del sistemaEmilio Aviles Avila
 
Plataforma .Net
Plataforma .NetPlataforma .Net
Plataforma .Netmellcv
 
"Android de la A a la Z" -- Unidad 2
"Android de la A a la Z" -- Unidad 2"Android de la A a la Z" -- Unidad 2
"Android de la A a la Z" -- Unidad 2Android UNAM
 
"Android de la A a la Z" -- Unidad 8
"Android de la A a la Z" -- Unidad 8"Android de la A a la Z" -- Unidad 8
"Android de la A a la Z" -- Unidad 8Android UNAM
 
Ha2 cm40 eq2-netbeans
Ha2 cm40 eq2-netbeansHa2 cm40 eq2-netbeans
Ha2 cm40 eq2-netbeansAnel MG
 

La actualidad más candente (17)

Taller de prog. en android
Taller de prog. en androidTaller de prog. en android
Taller de prog. en android
 
Curso desarrollo en android
Curso desarrollo en androidCurso desarrollo en android
Curso desarrollo en android
 
12j sistemaandroid texto
12j sistemaandroid texto12j sistemaandroid texto
12j sistemaandroid texto
 
"Android de la A a la Z" -- Unidad 3
"Android de la A a la Z" -- Unidad 3"Android de la A a la Z" -- Unidad 3
"Android de la A a la Z" -- Unidad 3
 
Curso Introducción a android
Curso Introducción a androidCurso Introducción a android
Curso Introducción a android
 
Tutorial Android 1
Tutorial Android 1Tutorial Android 1
Tutorial Android 1
 
"Android de la A a la Z" -- Unidad 4
"Android de la A a la Z" -- Unidad 4"Android de la A a la Z" -- Unidad 4
"Android de la A a la Z" -- Unidad 4
 
"Android de la A a la Z" -- Unidad 5
"Android de la A a la Z" -- Unidad 5"Android de la A a la Z" -- Unidad 5
"Android de la A a la Z" -- Unidad 5
 
Exposición - Android
Exposición - AndroidExposición - Android
Exposición - Android
 
"Android de la A a la Z" -- Unidad 6
"Android de la A a la Z" -- Unidad 6"Android de la A a la Z" -- Unidad 6
"Android de la A a la Z" -- Unidad 6
 
Desarrollo android - 2 - arquitectura del sistema
Desarrollo android   - 2 - arquitectura del sistemaDesarrollo android   - 2 - arquitectura del sistema
Desarrollo android - 2 - arquitectura del sistema
 
Entornos gráficos de GNU/Linux
Entornos gráficos de GNU/LinuxEntornos gráficos de GNU/Linux
Entornos gráficos de GNU/Linux
 
Android
AndroidAndroid
Android
 
Plataforma .Net
Plataforma .NetPlataforma .Net
Plataforma .Net
 
"Android de la A a la Z" -- Unidad 2
"Android de la A a la Z" -- Unidad 2"Android de la A a la Z" -- Unidad 2
"Android de la A a la Z" -- Unidad 2
 
"Android de la A a la Z" -- Unidad 8
"Android de la A a la Z" -- Unidad 8"Android de la A a la Z" -- Unidad 8
"Android de la A a la Z" -- Unidad 8
 
Ha2 cm40 eq2-netbeans
Ha2 cm40 eq2-netbeansHa2 cm40 eq2-netbeans
Ha2 cm40 eq2-netbeans
 

Similar a Unidad 2 Primeros pasos con android

Arquitectura android
Arquitectura androidArquitectura android
Arquitectura androidalerop
 
Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1Jorge Ulises
 
Arquitectura 63583.pptx
Arquitectura 63583.pptxArquitectura 63583.pptx
Arquitectura 63583.pptxlvaroTorres26
 
Fo 2-introduccion-android-arquitectura-de-sistema
Fo 2-introduccion-android-arquitectura-de-sistemaFo 2-introduccion-android-arquitectura-de-sistema
Fo 2-introduccion-android-arquitectura-de-sistemaMike Chavez
 
O.S Android
O.S AndroidO.S Android
O.S Androidbliys
 
Terminado,sistmas operativos
Terminado,sistmas operativosTerminado,sistmas operativos
Terminado,sistmas operativosJoseteMarta11
 
Presentacion para la Flagship Store de Telefónica
Presentacion para la Flagship Store de TelefónicaPresentacion para la Flagship Store de Telefónica
Presentacion para la Flagship Store de TelefónicaJavier Tellez Dones
 
Android: Caracterización de Plataforma Móvil
Android: Caracterización de Plataforma MóvilAndroid: Caracterización de Plataforma Móvil
Android: Caracterización de Plataforma MóvilSantiago Mejía Sánchez
 
Diapositiva sobre android
Diapositiva sobre androidDiapositiva sobre android
Diapositiva sobre androidpexoxaprincess
 
Sistema Operativo Android
Sistema Operativo AndroidSistema Operativo Android
Sistema Operativo AndroidAlfredo Aguayo
 
Republica bolivariana de venezuela 2
Republica bolivariana de venezuela 2Republica bolivariana de venezuela 2
Republica bolivariana de venezuela 2cristian Salazar L
 
Sistema Operativo Android
Sistema Operativo AndroidSistema Operativo Android
Sistema Operativo AndroidIrma_Virgilio
 
Tecnología androide
Tecnología androideTecnología androide
Tecnología androideMishelle Ruiz
 
Tecnología androide
Tecnología androideTecnología androide
Tecnología androideMishelle Ruiz
 
Android de la A a la Z - Unidad 3
Android de la A a la Z - Unidad 3Android de la A a la Z - Unidad 3
Android de la A a la Z - Unidad 3Jorge Ulises
 
Android
AndroidAndroid
AndroidCOECYS
 

Similar a Unidad 2 Primeros pasos con android (20)

Arquitectura android
Arquitectura androidArquitectura android
Arquitectura android
 
Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1
 
Arquitectura 63583.pptx
Arquitectura 63583.pptxArquitectura 63583.pptx
Arquitectura 63583.pptx
 
Fo 2-introduccion-android-arquitectura-de-sistema
Fo 2-introduccion-android-arquitectura-de-sistemaFo 2-introduccion-android-arquitectura-de-sistema
Fo 2-introduccion-android-arquitectura-de-sistema
 
Androidoriiginal
AndroidoriiginalAndroidoriiginal
Androidoriiginal
 
O.S Android
O.S AndroidO.S Android
O.S Android
 
Terminado,sistmas operativos
Terminado,sistmas operativosTerminado,sistmas operativos
Terminado,sistmas operativos
 
Presentacion para la Flagship Store de Telefónica
Presentacion para la Flagship Store de TelefónicaPresentacion para la Flagship Store de Telefónica
Presentacion para la Flagship Store de Telefónica
 
Android: Caracterización de Plataforma Móvil
Android: Caracterización de Plataforma MóvilAndroid: Caracterización de Plataforma Móvil
Android: Caracterización de Plataforma Móvil
 
Diapositiva sobre android
Diapositiva sobre androidDiapositiva sobre android
Diapositiva sobre android
 
Sistema Operativo Android
Sistema Operativo AndroidSistema Operativo Android
Sistema Operativo Android
 
Sistema Operativo Android
Sistema Operativo AndroidSistema Operativo Android
Sistema Operativo Android
 
Republica bolivariana de venezuela 2
Republica bolivariana de venezuela 2Republica bolivariana de venezuela 2
Republica bolivariana de venezuela 2
 
Sistema Operativo Android
Sistema Operativo AndroidSistema Operativo Android
Sistema Operativo Android
 
Tecnología androide
Tecnología androideTecnología androide
Tecnología androide
 
Tecnología androide
Tecnología androideTecnología androide
Tecnología androide
 
App inventor
App inventorApp inventor
App inventor
 
Curso Desarrollo Android
Curso Desarrollo AndroidCurso Desarrollo Android
Curso Desarrollo Android
 
Android de la A a la Z - Unidad 3
Android de la A a la Z - Unidad 3Android de la A a la Z - Unidad 3
Android de la A a la Z - Unidad 3
 
Android
AndroidAndroid
Android
 

Último

Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfCarol Andrea Eraso Guerrero
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIAAbelardoVelaAlbrecht1
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFlor Idalia Espinoza Ortega
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 

Último (20)

Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamica
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 

Unidad 2 Primeros pasos con android

  • 1. UNIDAD 2. EMPEZAMOS CON ANDROID 2.1 DESCRIPCIÓN GENERAL DE LA ARQUITECTURA ANDROID. 2.2 ARQUITECTURA DE UN ANDROID APP. 2.2.1 Componentes de una aplicación para Android. 2.2.2 Otros elementos en una aplicación para Android. 2.3 COMO CREAR UN PROYECTO ANDROID. 2.3.1 Android Studio. 2.3.1.1 Una visión general del IDE de Android Studio. 2.3.1.2 Editor. 2.3.1.3 Vistas. 2.3.1.4 Barra de navegación. 2.3.1.5 Barras de herramientas principales y secundarias. 2.3.1.6 Ventanas de Herramientas. 2.3.1.7 Apariencia. 2.3.2 Creación de un nuevo proyecto. 2.3.2.1 Creación de un nuevo proyecto 2.3.2.2 Descripción de los archivos predeterminados. 2.3.2.3 Ejecución de un proyecto Android. 3.2.4 Uso del emulador de Android (AVD). 2.3.2.5 El uso de un dispositivo real para desarrollar con Android 2.4 CÓMO CREAR NUESTRO PRIMER APP ANDROID. 2.4.1 Creación de la interfaz de usuario del código fuente y no XML. 2.4.2 Utilización de cadenas. 2.5. DISEÑO DE UNA ÚNICA INTERFAZ DE USUARIO (UI). 2.5.1 Vista disponible en Android. 2.5.2 Tipos de paneles (Layaouts). 2.5.3 Posiciones y tamaños. 2.5.4 Componentes básicos. 2.5.5 Personalización de la apariencia de un botón. 2.5.6. Temas y estilos. 2.6. EJERCICIOS.
  • 2. 2.1. Descripción general de la arquitectura Android (Fuente: Http://www.techotopia.com/index.php/Android_4_App_Development_Essentials punto 6 ) Android posee una arquitectura en forma de una pila de software que incluye aplicaciones, un sistema operativo, entorno de ejecución, middleware, servicios y bibliotecas. Esta arquitectura puede verse mejor, tal vez, siendo respresentada visualmente como se indica en esta figura. Cada capa de la pila, y los elementos correspondientes dentro de cada capa, están estrechamente integrados y cuidadosamente ajustada para proporcionar el desarrollo óptimo de las aplicaciones y el entorno de ejecución para dispositivos móviles. Figura 1.1: Arquitectura del sistema Android. Objetos de color verde están escritas en C / C + , objetos azules están escritos en Java y se ejecutan en la máquina virtual Dalvik. El kernel de Linux Situado en la parte inferior de la pila de software Android, el núcleo de Linux proporciona un nivel de abstracción entre el hardware del dispositivo y de las capas superiores de la pila de software Android. Basado en Linux versión 2.6, el kernel proporciona multitarea preferente, los servicios del sistema base de bajo nivel, tales como la memoria, el proceso y la administración de energía, además de proporcionar una pila de red y dispositivo para el hardware, tales como la pantalla del dispositivo, Wi-Fi y de audio.
  • 3. El núcleo original de Linux fue desarrollado en 1991 por Linus Torvalds y se combinó con un conjunto de herramientas, utilidades y compiladores desarrollados por Richard Stallman en la Free Software Foundation para crear un sistema operativo completo se conoce como GNU / Linux. Varias distribuciones de Linux se han derivado de estos fundamentos básicos tales como Ubuntu y Red Hat Enterprise Linux. Es importante señalar, sin embargo, que Android sólo utiliza el núcleo Linux. Dicho esto, vale la pena señalar que el núcleo Linux fue desarrollado originalmente para su uso en los ordenadores tradicionales en forma de equipos de sobremesa y servidores. De hecho, Linux está ahora más ampliamente desplegada en entornos de servidores empresariales de misión crítica. Es un testimonio tanto de la potencia de los dispositivos móviles de hoy en día como de la eficiencia y el rendimiento del núcleo de Linux que nos encontramos en el centro de la pila de software Android. Android RunTime- Dalvik Virtual Machine Como se señaló anteriormente, el núcleo de Linux proporciona un entorno de ejecución multitarea que permite ejecutar varios procesos simultáneamente. Sería fácil suponer, por tanto, que cada aplicación Android simplemente ejecuta como un proceso directamente en el núcleo de Linux. De hecho, cada aplicación que se ejecuta en un dispositivo Android lo hace dentro de su propia instancia de la máquina virtual Dalvik (VM). La ejecución de aplicaciones en máquinas virtuales proporciona una serie de ventajas. En primer lugar, las aplicaciones son esencialmente un entorno seguro de ejecución acotada, en la que no pueden interferir perjudicialmente (intencionadamente o no) con el sistema operativo u otras aplicaciones, ni tampoco pueden acceder directamente al hardware del dispositivo. En segundo lugar, este nivel de abstracción forzada hace que la plataforma de las aplicaciones sea neutra en cuanto a que no están vinculados a ningún hardware específico. La máquina virtual Dalvik fue desarrollada por Google y se basa en el núcleo de Linux subyacente para la funcionalidad de bajo nivel. Es más eficiente que el estándar de Java VM en términos de uso de la memoria se, y específicamente diseñado para permitir múltiples instancias para ejecutar de manera eficiente dentro de las limitaciones de recursos de un dispositivo móvil. Con el fin de ejecutar dentro de una máquina virtual Dalvik, el código de aplicación debe ser transformado a partir de archivos de clases Java estándar para el ejecutable Dalvik formato (.dex), que tiene una capacidad de memoria de 50% más pequeño que el código de bytes de Java estándar. Los archivos de clase Java estándar pueden por lo general (aunque no siempre) convertirse al formato Dex con la función dx que incluye el SDK de Android. Android RunTime - bibliotecas del núcleo Las bibliotecas o librerías Android Core (también conocidas como las bibliotecas Dalvik) se dividen en tres categorías principales, cada uno de los cuales merece una descripción individual:
  • 4. Bibliotecas específicas Dalvik VM Este es un conjunto de librerías utilizadas predominantemente para interactuar directamente con una instancia de la máquina virtual Dalvik y es poco probable que sea utilizado por la mayoría de los desarrolladores de aplicaciones Android. Bibliotecas Java Core Las aplicaciones Android están desarrolladas fundamentalmente con el lenguaje de programación Java. El entorno de desarrollo Java estándar incluye una amplia gama de clases que están contenidas en las bibliotecas del núcleo de tiempo de ejecución de Java. Estas bibliotecas proporcionan soporte para tareas tales como manejo de cadenas, redes y manipulación de archivos (por nombrar sólo algunas) y son familiar y ampliamente utilizado por los desarrolladores de Java independientemente de la plataforma. Las librerías de Interoperabilidad de Java son una implementación de código abierto (basado en el proyecto Apache Harmony) de un subconjunto de las bibliotecas del núcleo de Java estándar que han sido adaptados y transformados para el uso de aplicaciones que se ejecutan dentro de una máquina virtual Dalvik. Bibliotecas Android Esta categoría abarca aquellas bibliotecas basadas en Java que son específicos para el desarrollo de Android. Ejemplos de bibliotecas en esta categoría incluyen las bibliotecas marco de aplicación, además de los que facilitan la creación de interfaz de usuario, el dibujo de gráficos y acceso a la base de datos. Un resumen de algunas bibliotecas clave del núcleo Android disponibles para el desarrollador de Android es el siguiente: • android.app - Proporciona acceso al modelo de solicitud y es la piedra angular de todas las aplicaciones de Android. • android.content - Facilita el acceso al contenido, la edición y la mensajería entre aplicaciones y componentes de aplicaciones. • android.database - Se utiliza para acceder a los datos publicados por los proveedores de contenidos e incluye las clases de gestión de base de datos SQLite. • android.graphics - Un bajo nivel de gráficos 2D API de dibujo incluyendo colores, puntos, filtros, rectángulos y lienzos. • android.hardware - Presenta una API que proporciona acceso al hardware, como el acelerómetro y sensor de luz. • android.opengl - Una interfaz Java para la API de procesamiento de gráficos 3D OpenGL ES. • android.os - proporciona a las aplicaciones el acceso a los servicios del sistema operativo estándar, incluyendo mensajes, servicios del sistema y la comunicación entre procesos. • android.media - Proporciona clases para permitir la reproducción de audio y vídeo.
  • 5. • android.net - Un conjunto de APIs que proporcionan acceso a la pila de red. Incluye android.net.wifi, que ofrece acceso a la pila inalámbrica del dispositivo. • android.provider - Un conjunto de clases que proporcionan acceso a las bases de datos de proveedores de contenido de Android estándar, tales como las aplicaciones de calendario y datos de contacto. • android.text - Se utiliza para representar y manipular texto en una pantalla del dispositivo. • android.util - Un conjunto de clases de utilidad para las tareas como la conversión de cadenas y números, el manejo de XML y la manipulación del fecha y hora.. • android.view - Los bloques de construcción fundamentales de las interfaces de usuario de aplicaciones. • android.widget - Una rica colección de componentes de interfaz de usuario pre- construidos, tales como botones, etiquetas, las vistas de lista, los administradores de diseño, botones de radio, etc. • android.webkit - Un conjunto de clases destinado a permitir capacidades de navegación web que se construirán en las aplicaciones. Después de haber cubierto las bibliotecas del núcleo basadas en Java en Android RunTime, ahora es el momento de centrar nuestra atención en las bibliotecas basadas en C / C ++ contenidas en esta capa de la pila de software Android. Las bibliotecas de C / C ++ Las bibliotecas del núcleo de Android RunTime descritos en la sección anterior están basados en Java y proporcionan las APIs primarias para los desarrolladores que crean aplicaciones para Android. Es importante señalar, sin embargo, que las bibliotecas del núcleo en realidad no realizan gran parte del trabajo real y están, de hecho, esencialmente "envueltas en" Java en torno a un conjunto de librerías basadas en C/C++. Al realizar llamadas, por ejemplo, a la biblioteca android.opengl para dibujar gráficos en 3D en la pantalla del dispositivo, la biblioteca de hecho, en última instancia hace que las llamadas a la biblioteca de la OpenGL ES C ++, que, a su vez, funciona con el núcleo Linux subyacente para realizar las tareas de dibujo. Las bibliotecas C/C++ se incluyen para cumplir con una amplia y diversa gama de funciones, incluyendo 2D y 3D de dibujo de gráficos, Secure Sockets Layer (SSL), gestión de base de datos SQLite, reproducción de audio y vídeo, mapa de bits y vectores de representación de fuentes, subsistema de presentación y la capa gestión de gráficos gestión y una implementación de la biblioteca del sistema estándar de C (libc). En la práctica, el desarrollador típico de aplicaciones Android accederá a estas bibliotecas únicamente a través de las APIs de las librerías básicas de Android basados en Java. En el caso de que necesitara acceso directo a estas bibliotecas, esto se puede lograr utilizando el Android Native Development Kit (NDK), el propósito de los cuales es para llamar a los métodos nativos de lenguajes de programación no Java (tales como C y C ++) desde el código Java utilizando la Java Native Interface (JNI).
  • 6. Marco de aplicación El marco de aplicaciones (o Application Framework) es un conjunto de servicios que forman colectivamente el entorno en el que se ejecutan y se gestionan las aplicaciones de Android. Este marco implementa el concepto de que las aplicaciones Android se construyen a partir de componentes reutilizables, intercambiables y reemplazables. Este concepto se toma un paso más allá, en que una aplicación también es capaz de publicar sus capacidades junto con los datos correspondientes de forma que puedan ser encontrados y reutilizados por otras aplicaciones. El marco Android incluye los siguientes servicios clave: • Gestor de actividad (Activity Manager)- Controla todos los aspectos del ciclo de vida de la aplicación y la pila de actividad. • Los proveedores de contenido (Content Provider) - Permite que las aplicaciones publicar y compartir datos con otras aplicaciones. • Resource Manager - Proporciona acceso a recursos de código no incrustado tales como cadenas, ajustes de color y los diseños de interfaz de usuario. • Gestión de Notificaciones - Permite a las aplicaciones mostrar alertas y notificaciones para el usuario. • Vista System - Un conjunto ampliable vistas utilizados para crear interfaces de usuario de aplicaciones. • Gestor de paquetes - El sistema por el cual las aplicaciones son capaces de buscar información acerca de otras aplicaciones que están instaladas en el dispositivo. • Gestor de Telefonía - Proporciona información a la aplicación de los servicios de telefonía disponibles en el dispositivo, como el estado del abonado y la información. • Gestor de Localización - Proporciona acceso a los servicios de localización que permiten a la aplicación recibir actualizaciones sobre los cambios de ubicación. Aplicaciones Las aplicaciones están situadas en la parte superior de la pila de software de Android. Estas comprenden tanto las aplicaciones nativas proporcionadas con la aplicación Android (por ejemplo, aplicaciones de navegador web y correo electrónico) como las aplicaciones de terceros instaladas por el usuario después de comprar el dispositivo. NOTA: La máquina virtual Dalvik ha sido sustituidA en Android 5 por una máquina virtual más eficiente conocido como ART ( Android RunTime)
  • 7. 2.2 Arquitectura de una Aplicación Android Las aplicaciones Android están escritas en el lenguaje de programación Java. Las herramientas de SDK de Android compilan el código, junto con todos los datos y archivos de recursos-en un APK: paquete de Android, que es un archivo con un sufijo .apk. Un archivo APK contiene todo el contenido de una aplicación para Android y es el archivo que los dispositivos Android utilizan para instalar la aplicación. Una vez instalado en un dispositivo, cada aplicación para Android es gestionada en su propio entorno limitado de seguridad: • El sistema operativo Android es un sistema multi-usuario de Linux en el que cada aplicación es un usuario diferente. • Por defecto, el sistema asigna a cada aplicación un identificador único usuario de Linux (el ID es utilizado sólo por el sistema y es desconocido para la aplicación). El sistema establece permisos para todos los archivos en una aplicación para que sólo el ID de usuario asignado a esa aplicación puede acceder a ellos. • Cada proceso tiene su propia máquina virtual (VM), por lo que el código de una aplicación se ejecuta en forma aislada de otras aplicaciones. • De forma predeterminada, cada aplicación se ejecuta en su propio proceso de Linux. Android inicia el proceso cuando cualquiera de los componentes de la aplicación necesita ser ejecutado, a continuación, cierra el proceso cuando ya no es necesaria o cuando el sistema debe recuperar la memoria para otras aplicaciones. De esta manera, el sistema Android implementa el principio del mínimo privilegio. Es decir, cada aplicación, por defecto, sólo tiene acceso a los componentes que necesita para hacer su trabajo y no más. Esto crea un ambiente muy seguro en el que una aplicación no puede acceder a partes del sistema para el cual no se le da permiso. 2.2.1 Componentes de una aplicación Android. Las aplicaciones Android se forman utilizando uno o más de estos componentes: • Activitys • Servicios • Proveedores de contenido • Receptores de radiodifusión. Cada uno de estos tipos de componentes tiene una funcionalidad diferente en la aplicación. Y se activan siguiendo la lógica de la aplicación. Incluso otras aplicaciones pueden activar algunos de estos componentes.
  • 8. Activitys Quienes están familiarizados con los lenguajes de programación orientados a objetos como Java, C ++ o C # estarán familiarizados con el concepto de encapsular elementos con funcionalidad para la aplicación en clases, que serán instanciadas como objetos y manipuladas para crear una aplicación. Dado que las aplicaciones de Android están escritas en Java, este sigue siendo el concepto. Android, sin embargo, también lleva el concepto de componentes reutilizables a un nivel superior. Las aplicaciones Android son creadas para unificar uno o más componentes conocidos como Activitys. Una actividad es un único módulo, independiente de la funcionalidad de la aplicación que normalmente se correlaciona directamente con una única pantalla de interfaz de usuario y su funcionalidad correspondiente. Una aplicación de citas, podría por ejemplo, tener una pantalla de actividad que mostrara las citas establecidas para el día actual. La aplicación también se puede utilizar una segunda actividad que consiste en una pantalla en la que nuevas citas pueden ser introducidos por el usuario. Las Activitys se piensan como bloques de construcción totalmente reutilizables e intercambiables que se pueden compartir entre diferentes aplicaciones. Una aplicación de correo electrónico existente, por ejemplo, puede contener una actividad específicamente para componer y enviar un mensaje de correo electrónico. Un desarrollador podría estar escribiendo una aplicación que también tiene un requisito de enviar un mensaje de correo electrónico. En lugar de desarrollar una actividad de la composición de correo electrónico específicamente para la nueva aplicación, el desarrollador puede usar simplemente la actividad de la aplicación de correo electrónico existente. Las Activitys se crean como subclases de la clase Android Activity class y deben ser implementadas de manera que sea totalmente independiente de otras Activitys en la aplicación. Se puede pensar en ellos como una serie de páginas web. Cada página web sería el equivalente a una actividad. Al pulsar el botón de retroceso de la actividad actual es cerrada y la aplicación vuelve a la actividad de invocación de una manera similar a los navegadores web. Servicios Los servicios de Android son procesos que se ejecutan en segundo plano y que no tienen una interfaz de usuario. Ellos se pueden iniciar y posteriormente se gestionan desde las Activitys, los receptores de radiodifusión u otros servicios. Los servicios de Android son ideales para situaciones en las que una aplicación necesita para continuar la ejecución de tareas, pero no necesariamente necesitan una interfaz de usuario para que sea visible para el usuario. Aunque los servicios carecen de una interfaz de usuario, que todavía puede notificar al usuario de eventos utilizando las notificaciones y “toasts”/ avisos (pequeños mensajes de notificación que aparecen en la pantalla sin interrumpir la actividad visible en ese momento) y también son capaces de emitir “Intents”.
  • 9. A los servicios Android se les da una prioridad más alta por el tiempo de ejecución Android que a muchos otros procesos, y sólo se dará por terminado, como último recurso por el sistema con el fin de liberar recursos. En el caso de que el Runtime necesite matar un Servicio, sin embargo, se reiniciará automáticamente tan pronto como los recursos necesarios estén disponibles. Un servicio puede reducir el riesgo de finalización por la que se declara a sí mismo como tener que ejecutar en el primer plano. Esto se consigue haciendo una llamada a startForeground (). Esto sólo se recomienda para situaciones en las que la terminación sería perjudicial para la experiencia del usuario (por ejemplo, si el usuario está escuchando el audio que se transmite por el servicio). Ejemplos de situaciones en que un Servicio puede ser una solución práctica incluyen, como se ha mencionado anteriormente, la transmisión de audio que debe continuar cuando la aplicación ya no está activo, o una aplicación de seguimiento del mercado de valores que hay que notificar al usuario cuando una parte realiza un precio determinado. Proveedores de contenido Los proveedores de contenido implementan un mecanismo para el intercambio de datos entre aplicaciones. Cualquier aplicación puede proporcionar otras aplicaciones con acceso a los datos subyacentes a través de la implementación de un proveedor de contenidos que incluye la posibilidad de añadir, eliminar y consultar los datos (sujeto a los permisos). El acceso a los datos se realiza a través de un identificador uniforme de recursos (URI) definido por el proveedor de contenido. Los datos pueden ser compartidos en forma de un archivo o una base de datos SQLite entera. Las aplicaciones nativas de Android incluyen un número de proveedores de contenido estándar permitiendo que las aplicaciones accedan a los datos, como contactos y archivos multimedia. Los proveedores de contenidos disponibles actualmente en un sistema Android se pueden localizar usando un dispositivo de resolución contenido (Content Resolver). Receptores de transmisicón o Broadcast Los receptores de radiodifusión son el mecanismo por el cual las aplicaciones son capaces de responder a Broadcast Intents (avisos de radiodifusión). Un receptor de transmisión debe ser registrado por una aplicación y configurado con un filtro de Intents para indicar los tipos de emisión en la que está interesado. Cuando se emite un Intent de coincidencia, el receptor será invocado por el Android Runtime, independientemente de si la aplicación que ha registrado el receptor está ejecutando en ese momento. Después, el receptor tiene 5 segundos para completar las tareas que le competen (tales como el lanzamiento de un servicio, las actualizaciones de datos o la emisión de una notificación al usuario) antes de regresar. Receptores de broadcast funcionan en segundo plano y no tienen una interfaz de usuario.
  • 10. 2.2. Otros elementos y Android App Además de los componentes, hay otros elementos que son importantes en la arquitectura de una aplicación Android. Intents Intents son el mecanismo por el que una actividad es capaz de lanzar otra y poner en práctica el flujo a través de las Activitys que componen una aplicación. Intents consiste en una descripción de la operación a realizar y, opcionalmente, los datos sobre los que se va a realizar. Intents pueden ser explícitos, solicitan la puesta en marcha de una actividad específica haciendo referencia a la actividad por nombre de la clase, o implícita por el que conste el tipo de acción a realizar o proporcionar datos de un tipo específico en el que la acción se va a realizar. En el caso de los Intens implícitas, el Android Runtime seleccionará la actividad a poner en marcha que mejor coincida con los criterios especificados por el Intent mediante un proceso conocido como Intent Resolution. Broadcast Intents Otro tipo de Intent, la Broadcast Intent o de difusión, es un gran Intent del sistema que se envía a todas las aplicaciones que se han registrado como “interesados” en Broadcast Receiver. El sistema Android, por ejemplo, suelen enviará Intents de difusión para indicar cambios en el estado del dispositivo, tales como la realización de inicio del sistema, la conexión de una fuente de alimentación externa al dispositivo o la pantalla está encendida o apagada. Un Broadcast Intent puede ser normal (asíncrono) en el que se envía a todos los receptores de radiodifusión interesadas en más o menos al mismo tiempo, o de manera en que se envía a un receptor en un momento en el que se puede procesarlo y luego ser pasado al siguiente receptor Broadcast. Vistas Se trata de elementos de interfaz de usuario IU que se dibujan en pantalla incluyendo botones, casillas de verificación, listas, formularios, etc. Diseños o Layouts Ver las jerarquías que controlan el formato de la pantalla y el aspecto de las vistas Fragmentos
  • 11. Un fragmento representa un comportamiento o una porción de interfaz de usuario en una actividad. Se pueden combinar múltiples fragmentos en una sola actividad para construir una interfaz de usuario multi-panel y la reutilizar un fragmento en múltiples Activitys. Se puede pensar en un fragmento como una sección modular de una actividad, que tiene su propio ciclo de vida, recibe sus propios eventos de entrada, y que se pueden agregar o quitar mientras que la actividad está en marcha (como una especie de "sub actividad " que se pueda reutilizar en diferentes Activitys). Un fragmento siempre debe estar integrado en una actividad y el ciclo de vida del fragmento se ve directamente afectado por el ciclo de vida de la actividad de acogida. Por ejemplo, cuando se detiene la actividad, se detienen todos los fragmentos, y cuando se destruye la actividad, también se destruyen todos los fragmentos. Sin embargo, mientras que una actividad se está ejecutando, se puede manipular de forma independiente cada fragmento, tales como añadir o eliminar. Application Resources o recursos de aplicaciones Además del archivo de manifiesto y los archivos de Dex que contienen el código de bytes ejecutable de la máquina virtual Dalvik, una aplicación para Android también contendrá típicamente una colección de archivos de recursos. Estos archivos contienen recursos tales como las cadenas, imágenes, fuentes y colores que aparecen en la interfaz de usuario junto con la representación XML de los diseños de interfaz de usuario. De forma predeterminada, estos archivos se almacenan en el subdirectorio /res de la jerarquía del proyecto de la aplicación. El manifiesto de aplicación Es la unión que reúne los diferentes elementos que componen una aplicación es el archivo de manifiesto de aplicación. Es dentro de este archivo basado en XML que la aplicación se describen las Activitys, servicios, receptores de radiodifusión, proveedores de datos y permisos que componen la aplicación completa. Contexto de aplicación Cuando se compila una aplicación, se crea una clase denominada R que contiene referencias a los recursos de la aplicación. El archivo de manifiesto de aplicación y estos recursos se combinan para crear lo que se conoce como el contexto de aplicación. Este contexto, representada por la clase Android Context class, se puede utilizar en el código de la aplicación para acceder a los recursos de la aplicación en tiempo de ejecución. Además, una amplia gama de métodos puede ser llamado en el contexto de una aplicación para recopilar información y realizar cambios en el entorno de la aplicación en tiempo de ejecución. Para saber más: Como su nombre indica, es el contexto de la situación actual de la aplicación / objeto. Permite que los objetos creados recientemente comprendan lo que ha
  • 12. estado pasando. Normalmente se llama a él para obtener información con respecto a otra parte de su programa (actividad, paquete / Usted puede obtener el contexto invocando getApplicationContext (), getContext (), getBaseContext () o Los usos típicos de contexto: • Creación de nuevos objetos listeners: TextView tv =newTextView(getContext =newSimpleCursorAdapter(getApplicationContext • Acceder a los recursos comunes estándar: LAYOUT_INFLATER_SERVICE context.getSystemService(LAYOUT_INFLATER_SERVICE getApplicationContext().getSharedPreferences • Acceso a los componentes Implícitamente: broadcast, intent: getApplicationContext().getContentResolver 2.3 Cómo crear 2. 3.1 Android Studio. 2. 3.1.1 Una visión general del La pantalla de bienvenida se proyectos abiertos en ese momento cualquier momento seleccionando el Archivo Android Studio fue previamente la herramienta saltará la pantalla de bienvenida marcha, abriendo automáticamente el proyecto anteriormente activo. estado pasando. Normalmente se llama a él para obtener información con respecto a otra parte de su programa (actividad, paquete / aplicación) Usted puede obtener el contexto invocando getApplicationContext (), getContext (), getBaseContext () o this (cuando está en la activity class Los usos típicos de contexto: Creación de nuevos objetos: la creación de nuevas vistas, adaptadores getContext());ListAdapter adapter getApplicationContext(),...); Acceder a los recursos comunes estándar: Servicios como LAYOUT_INFLATER_SERVICE, SharedPreferences: YOUT_INFLATER_SERVICE) getSharedPreferences(*name*,*mode*); Acceso a los componentes Implícitamente: En cuanto a los proveedores de contenidos, getContentResolver().query(uri,...); Cómo crear un Proyecto Android 3.1.1 Una visión general del IDE Android Studio. La pantalla de bienvenida se presenta cada vez que Android Studio s en ese momento (los proyectos abiertos se puede cualquier momento seleccionando el Archivo - > Cerrar proyecto desde tudio fue previamente cerrado mientras un proyecto todavía la pantalla de bienvenida la próxima vez que se , abriendo automáticamente el proyecto anteriormente activo. estado pasando. Normalmente se llama a él para obtener información con aplicación) Usted puede obtener el contexto invocando getApplicationContext (), ty class). s, adaptadores, o Servicios como s proveedores de contenidos, Android tudio se ejecuta sin se pueden cerrar en desde el menú). Si todavía estaba abierto, próxima vez que se ponga en
  • 13. Además de una lista de proyectos recientes, el menú de inicio rápido proporciona una gama de opciones para realizar tareas como abrir, crear e importar. Además, la opción Configurar permite acceder al SDK Manager junto con una amplia gama de configuraciones y opciones. Cuando se crea un nuevo proyecto, o principal de Android Studio. Cuando varios proyectos están abiertos simultáneamente, cada uno se le asignará su propia ventana principal. La configuración exacta de la ventana variará dependiendo de última vez que el proyecto 2.3.1.2 Editor. La ventana del editor muestra el contenido trabajando actualmente. Lo que se muestra en esta ubicación, sin embargo, está sujeto a contexto. Por ejemplo, d código. Por el contrario, c usuario, aparecerá la herramienta Diseñador de interfaz de usuario. Cuando hay varios archivos abiertos, cada archivo está representado del borde superior 2.3.1.3 Vistas Además del Editor, una especie Vistas o views. Las vistas son ventanas auxiliares para mostrar información, introducir datos, etc. Además de una lista de proyectos recientes, el menú de inicio rápido proporciona una gama de opciones para realizar tareas como abrir, crear e importar. Además, la opción te acceder al SDK Manager junto con una amplia gama de es y opciones. Cuando se crea un nuevo proyecto, o existe uno ya abierto, aparecerá la ventana principal de Android Studio. Cuando varios proyectos están abiertos simultáneamente, se le asignará su propia ventana principal. La configuración exacta de la ventana variará dependiendo de las herramientas y los paneles que última vez que el proyecto fue abierto. La ventana del editor muestra el contenido del archivo en el que el desarrollador está trabajando actualmente. Lo que se muestra en esta ubicación, sin embargo, está Por ejemplo, durante la edición de código, aparecerá el editor de Por el contrario, cuando se trabaja en un archivo de diseño de interfaz de usuario, aparecerá la herramienta Diseñador de interfaz de usuario. Cuando hay varios , cada archivo está representado por una pestaña situada a lo largo , una especie de ventanas secundaria conforma la IDE, la Las vistas son ventanas auxiliares para mostrar información, introducir datos, etc. Además de una lista de proyectos recientes, el menú de inicio rápido proporciona una gama de opciones para realizar tareas como abrir, crear e importar. Además, la opción te acceder al SDK Manager junto con una amplia gama de bierto, aparecerá la ventana principal de Android Studio. Cuando varios proyectos están abiertos simultáneamente, se le asignará su propia ventana principal. La configuración exacta de la se mostraban la del archivo en el que el desarrollador está trabajando actualmente. Lo que se muestra en esta ubicación, sin embargo, está urante la edición de código, aparecerá el editor de n archivo de diseño de interfaz de usuario, aparecerá la herramienta Diseñador de interfaz de usuario. Cuando hay varios por una pestaña situada a lo largo la IDE, las llamamos Las vistas son ventanas auxiliares para mostrar información, introducir datos, etc.
  • 14. Se pueden utilizar para múltiples propósitos, incluyendo la visualización de la estructura de árbol de un directorio o incluso mostrar el contenido de una consulta SQL. El tipo de vista que se mostrará depende del tipo En la imagen anterior se muestran dos • La vista de la izquierda muestra la estru proyectos. • La vista horizontal muestra un registro de eventos donde hay una lista de todos los eventos significativos que se están produciendo a me ejecuta el proyecto 3.1.4 Barra de Navegación. La barra de navegación proporciona una manera conveniente para moverse por los archivos y carpetas que componen el proyecto. Al hacer clic en un elemento en la barra de navegación se desplegará un menú con las subcarpetas y archivos en esa ubicación lista para la selecció herramientas del proyecto. 2.3.1.5 Principales y Secundarios barras de La barra de herramientas principal contiene una selección de accesos directos a las acciones que se realizan con frecue proporcionan un acceso más rápido a un grupo selecto de las acciones de la barra de menús. La barra de herramientas se puede personalizar haciendo clic derecho en la barra y seleccionando “Customize menus and t Se pueden utilizar para múltiples propósitos, incluyendo la visualización de la ctura de árbol de un directorio o incluso mostrar el contenido de una consulta El tipo de vista que se mostrará depende del tipo de archivo que se está editando En la imagen anterior se muestran dos vistas: La vista de la izquierda muestra la estructura de árbol del directorio de La vista horizontal muestra un registro de eventos donde hay una lista de todos los eventos significativos que se están produciendo a me ejecuta el proyecto. Navegación. gación proporciona una manera conveniente para moverse por los archivos y carpetas que componen el proyecto. Al hacer clic en un elemento en la barra de navegación se desplegará un menú con las subcarpetas y archivos en esa ubicación lista para la selección. Esto proporciona una alternativa a la ventana de herramientas del proyecto. 3.1.5 Principales y Secundarios barras de herramientas. La barra de herramientas principal contiene una selección de accesos directos a las acciones que se realizan con frecuencia. Los botones de la barra de herramientas proporcionan un acceso más rápido a un grupo selecto de las acciones de la barra de menús. La barra de herramientas se puede personalizar haciendo clic derecho en la “Customize menus and toolbars” Se pueden utilizar para múltiples propósitos, incluyendo la visualización de la ctura de árbol de un directorio o incluso mostrar el contenido de una consulta de archivo que se está editando. ctura de árbol del directorio de La vista horizontal muestra un registro de eventos donde hay una lista de todos los eventos significativos que se están produciendo a medida que se gación proporciona una manera conveniente para moverse por los archivos y carpetas que componen el proyecto. Al hacer clic en un elemento en la barra de navegación se desplegará un menú con las subcarpetas y archivos en esa n. Esto proporciona una alternativa a la ventana de La barra de herramientas principal contiene una selección de accesos directos a las ncia. Los botones de la barra de herramientas proporcionan un acceso más rápido a un grupo selecto de las acciones de la barra de menús. La barra de herramientas se puede personalizar haciendo clic derecho en la
  • 15. Además de la barra de herramientas principal barra de herramientas secundaria. 2.3.1.6 Ventana de Herramienta Además de la ventana vista del proyecto, Android Studio también incluye otras ventanas, que, cuando está activada, se muestran ventana principal. Al menú de acceso rápido acceder con solo pasar el puntero del ratón sobre el botón situado en la esquina izquierda de la barra de estado sin hacer clic en el botón del ratón. barra de herramientas principal, cada vista puede contener su propia barra de herramientas secundaria. Herramientas. Además de la ventana vista del proyecto, Android Studio también incluye otras uando está activada, se muestran en la parte inferior y los l menú de acceso rápido de la ventana de herramientas se puede acceder con solo pasar el puntero del ratón sobre el botón situado en la esquina a de estado sin hacer clic en el botón del ratón. , cada vista puede contener su propia Además de la ventana vista del proyecto, Android Studio también incluye otras en la parte inferior y los lados de la ventana de herramientas se puede acceder con solo pasar el puntero del ratón sobre el botón situado en la esquina
  • 16. Pueden activarse seleccionando: V esquina inferior izquierda. Habilita una serie de botones que se muestran alrededor del IDE: Esos botones son para most Android Studio ofrece. Las • Proyecto - La vista del proyecto proporciona una visión general de la estructura de archivos que componen el proyecto, y los archivos. En general, hacer doble clic en un archivo en la ventana de proyecto hará que ese archivo pa apropiada. • Estructura - La estructura herramienta proporciona una visión de alto la estructura del archivo de código fuente que se muestra actualmente en el editor. Esta información incluye una lista de elementos tales como clases, métodos y variables en el archivo. Al seleccionar un elemento de la lista de estructuras le llevará a la ubicación en el archivo de origen en la editor. Pueden activarse seleccionando: View Tool Buttons o presionando el botón en la una serie de botones que se muestran alrededor del IDE: Esos botones son para mostrar y ocultar cada una de las ventanas de herramientas s más utilizadas son las siguientes: La vista del proyecto proporciona una visión general de la estructura chivos que componen el proyecto, y permite una navegación rápida entre los archivos. En general, hacer doble clic en un archivo en la ventana de proyecto hará que ese archivo pase a ser cargado en la herramienta de edición La estructura herramienta proporciona una visión de alto la estructura del archivo de código fuente que se muestra actualmente en el editor. Esta información incluye una lista de elementos tales como clases, métodos y variables en el archivo. Al seleccionar un elemento de la lista de vará a la ubicación en el archivo de origen en la s o presionando el botón en la rar y ocultar cada una de las ventanas de herramientas que La vista del proyecto proporciona una visión general de la estructura navegación rápida entre los archivos. En general, hacer doble clic en un archivo en la ventana de ser cargado en la herramienta de edición La estructura herramienta proporciona una visión de alto nivel de la estructura del archivo de código fuente que se muestra actualmente en el editor. Esta información incluye una lista de elementos tales como clases, métodos y variables en el archivo. Al seleccionar un elemento de la lista de vará a la ubicación en el archivo de origen en la ventana del
  • 17. • Favoritos - Una variedad de items del proyecto pueden ser añadidos a la lista de favoritos. Haciendo clic derecho sobre un archivo en la ventana de proyecto, por ejemplo, proporciona acceso a la opción de menú Agregar a Favoritos. Del mismo modo, un método en un archivo fuente se puede agregar como favorito haciendo clic derecho sobre él en la ventana de herramientas Estructura. Nada añade a una lista de Favoritos se puede acceder a través de esta ventana Favoritos herramienta. • Construir variantes - La acumulación de variantes de ventana de la herramienta proporciona una forma rápida de configurar diferentes tipos de generación para el proyecto actual de la aplicación (por ejemplo, diferentes formaciones para la depuración y liberación de versiones de la aplicación, o varias composiciones para dirigirse a diferentes categorías de dispositivos). • Mensajes - La herramienta Mensajes graba la salida desede el sistema de construcción Gradle (Gradle es el sistema subyacente utilizado por Android Studio para la construcción de las diferentes partes de los proyectos en aplicaciones ejecutables) y puede ser útil para identificar las causas de los problemas de compilación al compilar proyectos de aplicaciones. • Android - La ventana de la herramienta Android proporciona acceso al sistema de depuración Android. Dentro de las tareas de esta ventana, se pueden realizar tareas tales como monitorizar la salida de una aplicación en ejecución, realizar capturas de pantalla y vídeos de la aplicación, la detención de un proceso y realizar tareas básicas de depuración. • Terminal - Proporciona acceso a una ventana de terminal en el sistema en el que se está ejecutando Android Studio. En los sistemas Windows esta es la interfaz de línea de comandos, mientras que en los sistemas Linux y Mac OS X, esto toma la forma de una terminal. • Ejecutar - La ventana de herramientas de ejecución está disponible cuando una aplicación se está ejecutando y proporciona una vista de los resultados de la ejecución, junto con opciones para detener o reiniciar un proceso en ejecución. Si una aplicación falla al instalar y ejecutar en un dispositivo o emulador, esta ventana suele proporcionar información de diagnóstico relacionada con el problema. • Registro de eventos - La ventana de registro de eventos muestra los mensajes relacionados con eventos y Activitys realizadas dentro de Android Studio. La construcción exitosa de un proyecto, por ejemplo, o el hecho de que una aplicación se está ejecutando será reportada dentro de esta ventana. • Gradle Consola - La consola Gradle se utiliza para mostrar todas las salidas del sistema Gradle como los proyectos que se construyen desde dentro de Android Studio. Esto incluirá información sobre el éxito o el fracaso del proceso de construcción junto con los detalles de los errores o advertencias. • Maven Proyectos - Maven es un gestor y sistema de construcción de proyectos diseñado para facilitar el desarrollo de proyectos complejos basados en Java y se superpone en muchas zonas con la funcionalidad proporcionada por Gradle.
  • 18. Google ha elegido Gradle como el sistema de construcción subyacente para el desarrollo de Android, por lo que a menos que ya están familiarizados con Maven o tienen proyectos Maven existentes para importar, a su vez será mejor invertido en el aprendizaje y la adopción de Gradle para sus proyectos. La ventana de herramientas proyectos Maven se puede utilizar para agregar, administrar e importa • Gradle - La ventana de la herramienta Gradle proporciona una vista en las tareas Gradle que conforman la configuración de generación de proyectos. La ventana se muestran las tareas que están involucrados en la elaboración de los distintos elementos del proyecto en una aplicación ejecutable. Ha en una tarea Gradle y selecciona la opción de menú Abrir Gradle Config para cargar el archivo de será cubierto con mayo • Commandere - La herramienta combinación de las jerarquía de archivos del proyecto atravesar los diferentes elementos que componen las clases para ser inspeccionado y se carga en el editor o diseñador ventanas. • Diseñador - Disponible cuando el diseñador de interfaz de usuario está activo, esta ventana de herramientas proporciona acceso a los paneles árbol de componentes y las pr 2.3.1.7 Interfaz. La interfaz del proyecto se puede seleccionar mediante el acceso al menú: Quick Switch Scheme > Switch Look and Feel "Darcula": Google ha elegido Gradle como el sistema de construcción subyacente para el desarrollo de Android, por lo que a menos que ya están familiarizados con ienen proyectos Maven existentes para importar, a su vez será mejor invertido en el aprendizaje y la adopción de Gradle para sus proyectos. La ventana de herramientas proyectos Maven se puede utilizar para agregar, importar proyectos basados en Android Studio. La ventana de la herramienta Gradle proporciona una vista en las tareas Gradle que conforman la configuración de generación de proyectos. La ventana se muestran las tareas que están involucrados en la elaboración de los ntos elementos del proyecto en una aplicación ejecutable. Ha en una tarea Gradle y selecciona la opción de menú Abrir Gradle Config para cargar el archivo de construir Gradle para el proyecto actual en el editor. Gradle será cubierto con mayor detalle más adelante en este libro. La herramienta Commander puede ser descrit combinación de las herramientas de proyecto y estructura, que permite jerarquía de archivos del proyecto atravesar los diferentes elementos que ponen las clases para ser inspeccionado y se carga en el editor o diseñador Disponible cuando el diseñador de interfaz de usuario está activo, esta ventana de herramientas proporciona acceso a los paneles árbol de componentes y las propiedades del diseño. del proyecto se puede seleccionar mediante el acceso al menú: Quick Switch Scheme > Switch Look and Feel. Este es el aspecto del esquema Google ha elegido Gradle como el sistema de construcción subyacente para el desarrollo de Android, por lo que a menos que ya están familiarizados con ienen proyectos Maven existentes para importar, a su vez será mejor invertido en el aprendizaje y la adopción de Gradle para sus proyectos. La ventana de herramientas proyectos Maven se puede utilizar para agregar, La ventana de la herramienta Gradle proporciona una vista en las tareas Gradle que conforman la configuración de generación de proyectos. La ventana se muestran las tareas que están involucrados en la elaboración de los ntos elementos del proyecto en una aplicación ejecutable. Haz clic derecho en una tarea Gradle y selecciona la opción de menú Abrir Gradle Config para Gradle para el proyecto actual en el editor. Gradle puede ser descrita como una de proyecto y estructura, que permite a la jerarquía de archivos del proyecto atravesar los diferentes elementos que ponen las clases para ser inspeccionado y se carga en el editor o diseñador Disponible cuando el diseñador de interfaz de usuario está activo, esta ventana de herramientas proporciona acceso a los paneles árbol de del proyecto se puede seleccionar mediante el acceso al menú: View > . Este es el aspecto del esquema
  • 19. Atajos de teclado Android Studio Android Studio incluye una gran cantidad de atajos de teclado diseñados para ahorrar tiempo al realizar tareas comunes. Un mapa de ver e imprimir desde dentro de la ventana del proyecto Android Studio seleccionando la opción Help -> Default Keymap Reference Importación de proyectos de Eclipse Para importar Proyectos desarrollados con Eclipse, selecciona Import Project: A continuación, busca el directorio donde se almacena el proyecto de Eclipse: Y, por último, selecciona el directorio donde se creará el nuevo proyecto de Android: Atajos de teclado Android Studio tudio incluye una gran cantidad de atajos de teclado diseñados para ahorrar tiempo al realizar tareas comunes. Un mapa de accesos directos de teclado ver e imprimir desde dentro de la ventana del proyecto Android Studio seleccionando > Default Keymap Reference. Importación de proyectos de Eclipse Para importar Proyectos desarrollados con Eclipse, selecciona Import Project: el directorio donde se almacena el proyecto de Eclipse: el directorio donde se creará el nuevo proyecto de tudio incluye una gran cantidad de atajos de teclado diseñados para ahorrar accesos directos de teclado se puede ver e imprimir desde dentro de la ventana del proyecto Android Studio seleccionando Para importar Proyectos desarrollados con Eclipse, selecciona Import Project: el directorio donde se almacena el proyecto de Eclipse: el directorio donde se creará el nuevo proyecto de Studio
  • 20. Es probable que tengas que modificar la versión del SDK del proyecto. Sigue estos pasos: 1.- En la vista Mensajes se puede observar que hay un error, lo que indica que instalar la plataforma que falta. Esto es así porque el SDK utilizado en el proyecto Eclipse está ausente en Android Studio. La versión SDK orig nuestro ejemplo, pero tenemos sólo la versión 19. Para solucionarlo, seleccione el archivo build.grade de la aplicación. 2.- Modificar el parámetro de compiledSdkVersion con el número de versión que tiene instalada en su SDK. En nuestro ejemplo, es el número 19. 3.- Presione "Try Again" para construir el proyecto de nuevo. que modificar la versión del SDK del proyecto. Sigue estos En la vista Mensajes se puede observar que hay un error, lo que indica que talar la plataforma que falta. Esto es así porque el SDK utilizado en el proyecto Eclipse está ausente en Android Studio. La versión SDK original era el número 10 en nuestro ejemplo, pero tenemos sólo la versión 19. Para solucionarlo, seleccione el build.grade de la aplicación. Modificar el parámetro de compiledSdkVersion con el número de versión que tiene instalada en su SDK. En nuestro ejemplo, es el número 19. Presione "Try Again" para construir el proyecto de nuevo. que modificar la versión del SDK del proyecto. Sigue estos En la vista Mensajes se puede observar que hay un error, lo que indica que hay que talar la plataforma que falta. Esto es así porque el SDK utilizado en el proyecto nal era el número 10 en nuestro ejemplo, pero tenemos sólo la versión 19. Para solucionarlo, seleccione el Modificar el parámetro de compiledSdkVersion con el número de versión que tiene
  • 21. 2.3.2 Creación de un nuevo proyecto. 2.3.2.1 Creación de un nuevo proyecto. Obtendrás este cuadro de diálogo para introducir los principales aspectos del nuevo proyecto: Nombre de la aplicación: es el nombre que aparece en el icono en el dispositivo Android . Es el texto que el usuario de la App ve en su dispositivo. Nombre del módulo: es el nombre del proyecto en el IDE. Es el nombre para identificar el proyecto para el desarrollador Nombre del paquete: es el nombre del paquete de Java, donde se almacenará el código fuente de la aplicación. Por lo general, utiliza la notación DNS nombre debe ser siempre el mismo para una aplicación com.mycompany.apps.mygame n de un nuevo proyecto. 3.2.1 Creación de un nuevo proyecto. Obtendrás este cuadro de diálogo para introducir los principales aspectos del nuevo : es el nombre que aparece en el icono en el dispositivo l texto que el usuario de la App ve en su dispositivo. : es el nombre del proyecto en el IDE. Es el nombre para identificar proyecto para el desarrollador. es el nombre del paquete de Java, donde se almacenará el ódigo fuente de la aplicación. Por lo general, utiliza la notación DNS a la inversa siempre el mismo para una aplicación, por ejemplo com.mycompany.apps.mygame Obtendrás este cuadro de diálogo para introducir los principales aspectos del nuevo : es el nombre que aparece en el icono en el dispositivo : es el nombre del proyecto en el IDE. Es el nombre para identificar es el nombre del paquete de Java, donde se almacenará el a la inversa. Este , por ejemplo
  • 22. Ubicación del proyecto: Es el directorio donde se almacenará el proyecto. Mínimo Requerido SDK: es la versión más baja de Android que usando el nivel de la API debe establecer este a la versión más baja disponible que permite su aplicación para conjunto de características del núcleo. Si alguna de las funciones de su aplicación sólo es posible en las versiones más recientes de Android y no es características del núcleo de la aplicación, se puede habilitar la función sólo ejecuta sobre las versiones que lo soportan. Pulse Siguiente y el siguiente diálogo aparecerá una plantilla aplicaciones típicas. Seleccione Actividad en blanco Pulse Siguiente. Un nuevo diálogo aparecerá donde se puede nombrar la actividad principal y diseño principal. Veremos más tarde BienvenidoActivity y bienvenido_layout. Es el directorio donde se almacenará el proyecto. : es la versión más baja de Android que tu aplicación . Para dar soporte a tantos dispositivos como debe establecer este a la versión más baja disponible que permite su aplicación para conjunto de características del núcleo. Si alguna de las funciones de su aplicación sólo es posible en las versiones más recientes de Android y no es crítica para el conjunto de características del núcleo de la aplicación, se puede habilitar la función sólo las versiones que lo soportan. Pulse Siguiente y el siguiente diálogo aparecerá una plantilla para seleccionar licaciones típicas. Seleccione Actividad en blanco (Blank Activity): . Un nuevo diálogo aparecerá donde se puede nombrar la actividad principal y diseño principal. Veremos más tarde lo que esto significa. Vamos a utilizar ty y bienvenido_layout. Es el directorio donde se almacenará el proyecto. tu aplicación soporta, como sea posible, debe establecer este a la versión más baja disponible que permite su aplicación para el conjunto de características del núcleo. Si alguna de las funciones de su aplicación sólo crítica para el conjunto de características del núcleo de la aplicación, se puede habilitar la función sólo cuando se para seleccionar para las . Un nuevo diálogo aparecerá donde se puede nombrar la actividad lo que esto significa. Vamos a utilizar
  • 23. Pulse Finalizar y el IDE se iniciará: Para visualizar las vistas pulse Tool Windows > Project Pulse Finalizar y el IDE se iniciará: las vistas pulse el botón de la izquierda "1: Proyecto" o el menú" o el menú View >
  • 24. Vamos a trabajar principalmente con el directorio src: 2.3.2.2 Descripción de los archivos por defecto del p Para ver los archivos del proyecto A del proyecto, se muestran y el contenido de los archivos del proyecto Vamos a trabajar principalmente con el directorio src: IMPORTANTE El nombre del paquete debe ser único. No puede haber dos paquetes instalados en un dispositivo Android con el mismo nombre de paquete. Por esta razón, es importante usar la sintaxis de DNS inversa para nombrarlos. En el desarrollo de aplicaciones y distribución Android Market (Google Play) debe utilizar tus propios nombres de paquetes únicos. IMPORTANTE El Nombre de la actividad no puede incluir acentos o caracteres especiales, como la "ñ" 3.2.2 Descripción de los archivos por defecto del proyecto. ver los archivos del proyecto Android creado por Android Studio, acce se muestran los directorios que más nos interesan. Y esta es la estructura do de los archivos del proyecto. nombre del paquete debe ser único. No puede haber dos paquetes instalados en un dispositivo Android con el mismo nombre de paquete. Por esta razón, es importante usar la sintaxis de DNS inversa para nombrarlos. En el desarrollo de ión a través del Google Play) debes propios nombres de paquetes El Nombre de la actividad no puede incluir acentos o caracteres especiales, como la royecto. tudio, accede a la vista ta es la estructura
  • 25. Directorio /build/ Almacena una serie de elementos de código generados el proyecto. Cada vez que compila el proyecto, Android Java utilizadas para administrar los recursos de la aplicación. (en el directorio /build/source/r/debug/package/) Directorio /src/main/ Contiene el código fuente y los recursos de la aplicación, código de la interfaz gráfica, clases auxiliares, etc. Inicialmente, Android Studio crea el código básico de la actividad principal con el nombre definido en el paquete Java. En n com.tema2.eje1.bienvenido. Directorio /src/main/java/ Contiene todos los arc conforman la Aplicación Studio oculta el sufijo pueden ser identificados por un círculo con un C dentrol). Directorio /src/main/res/ Recursos: Contiene todos los archivos necesarios para el proyecto: imágenes, vídeos, cadenas (para la localización de la aplicación), etc. Cada tipo de recurso se ha de almacenar en su propia subcarpeta. drawable-X/: contiene de la aplicación. layout/: contiene todos los archivos del código fuente de las diferentes pantallas de la interfaz gráfica. Menu/: contiene los menús de la aplicación. Values: contiene otros recursos de la aplicación, tales como (strings.xml), estilos (styl colores (colors.xml), etc. xml/: contiene los archivos XML alimentan la aplicación. raw/: contiene recursos adicionales, por lo general en un formato diferente a XML. ena una serie de elementos de código generados automáticamente al compilar el proyecto. Cada vez que compila el proyecto, Android generará archivos de código Java utilizadas para administrar los recursos de la aplicación. El más importante /build/source/r/debug/package/) Contiene el código fuente y los recursos de la aplicación, código de la interfaz gráfica, clases auxiliares, etc. , Android Studio crea el código básico de la actividad principal, definido anteriormente el paquete Java. En nuestro ejemplo com.tema2.eje1.bienvenido. main/java/ Contiene todos los archivos .java que conforman la Aplicación. Android el sufijo .java (Ellos pueden ser identificados por un círculo /res/ Recursos: Contiene todos los archivos necesarios para el proyecto: imágenes, vídeos, cadenas (para la localización de la aplicación), etc. Cada tipo de recurso macenar en su propia : contiene las imágenes /: contiene todos los archivos del código fuente de las diferentes pantallas de la interfaz gráfica. /: contiene los menús de la : contiene otros recursos de la aplicación, tales como strings (strings.xml), estilos (styles.xml), colores (colors.xml), etc. /: contiene los archivos XML que la aplicación. /: contiene recursos adicionales, por lo general en un formato automáticamente al compilar archivos de código más importante R.java
  • 26. La clase R contiene un conjunto de constantes con el ID de cada recurso incluido en el /res/folder. De esta forma, el desarrollador puede acceder fácilmente a los recursos a partir del código fuente a través de esta clase. NOTA: La carpeta build contiene más Android Studio. Si abrís directorio apk donde se genera la aplicación instalable. IMPORTANTE La clase R.java se genera automáticamente y no debe ser modificado desarrollador. Se reconstruy build.gradle Contiene parámetros para la construcción del proyecto, tales como el número de versión del SDK, Versión mínima Android que será capaz de ejecutar la aplicación, etc. Directorio /libs/ Es donde el directorio donde se Archivo AndroidManifest.xml: Es un archivo XML con las principales características de la aplicación, tales como la identificación (nombre, versión, icono, etc. servicios, etc.) o los permisos necesarios para ejecutar la aplicación. 2.3.2.3 Ejecución de un En primer lugar vamos a a Administrador de AVD presion captura de pantalla. Si utilizamos el emulador botón indicado por el círculo rojo: Seleccionamos Genymotion Pulse el botón Ejecutar: lase R contiene un conjunto de constantes con el ID de cada recurso incluido en el , el desarrollador puede acceder fácilmente a los recursos a partir del código fuente a través de esta clase. contiene más subdirectorios de los que se muestran ese directorio desde el sistema y verás donde se genera la aplicación instalable. La clase R.java se genera automáticamente y no debe ser modificado desarrollador. Se reconstruye cada vez que se compila el proyecto. Contiene parámetros para la construcción del proyecto, tales como el número de versión del SDK, Versión mínima Android que será capaz de ejecutar la aplicación, etc. Es donde el directorio donde se almacenan las bibliotecas de los tipo JAR. AndroidManifest.xml: las principales características de la aplicación, tales como la n (nombre, versión, icono, etc.), sus componentes (Activitys servicios, etc.) o los permisos necesarios para ejecutar la aplicación. un Proyecto Android En primer lugar vamos a abrir Android Virtual Device (AVD). Si VD presionaremos el botón que indica la primera captura de pantalla. Si utilizamos el emulador Genymotion, utilizaremos el segundo botón indicado por el círculo rojo: Seleccionamos Genymotion y pulsamos Start: lase R contiene un conjunto de constantes con el ID de cada recurso incluido en el , el desarrollador puede acceder fácilmente a los recursos a los que se muestran en entre otros, el La clase R.java se genera automáticamente y no debe ser modificado por el Contiene parámetros para la construcción del proyecto, tales como el número de versión del SDK, Versión mínima Android que será capaz de ejecutar la aplicación, etc. JAR. las principales características de la aplicación, tales como la Activitys, mensajes, AVD). Si utilizamos el primera flecha en la , utilizaremos el segundo
  • 27. Aparecerá una lista con los dispositivos disponibles: Pulsamos el botón Aceptar y se ejecuta la aplicación Verás que Android Studio ha generado e 2.3.2.4 Uso del emulador de Android ( El simulador de Android se puede inicia El botón "Volver", permite cerrar una aplicación on los dispositivos disponibles: ptar y se ejecuta la aplicación: ha generado el típico programa "Hello World 4 Uso del emulador de Android (AVD) El simulador de Android se puede iniciar desde la barra de herramientas: ", permite cerrar una aplicación y regresar al escritorio l típico programa "Hello World" r desde la barra de herramientas: escritorio Android:
  • 28. Pantalla de inicio. Podemos acceder a todas las aplicaciones instaladas con el botón señalado por la flecha captura de pantalla: Para modificar el idioma del sistema operativo, pulse siguiente pantalla: Y a continuación, haga clic en . Podemos acceder a todas las aplicaciones instaladas con el botón señalado por la flecha roja en la Obtendremos la ventana de inicio, donde se muestran todas las aplicaciones instaladas: Para modificar el idioma del sistema operativo, pulse el icono “Settings” ga clic en "Seleccionar idioma": Obtendremos la ventana de inicio, donde se muestran todas las ettings” y aparecerá la
  • 29. 2.3.2.5 . El uso de un dispositivo real para desarrollar con Android Para habilitar el uso de un dispositivo real para que activar la depuración USB para Android. Después de conectar el dispositivo a través del cable USB al ordenador, ac Depuración USB. Cómo activar la depuración USB en Android KitKat y Jelly Bean (4.2 y posteriores) Abrimos Settings> About phone veces en el Build number 3.2.5 . El uso de un dispositivo real para desarrollar con Android Para habilitar el uso de un dispositivo real para pruebas de Aplicaciones Android tiene que activar la depuración USB para Android. el dispositivo a través del cable USB al ordenador, ac Cómo activar la depuración USB en Android KitKat y Jelly Bean (4.2 y About phone (vamos al final de la pantalla) > y puls Build number hasta obtener el mensaje "Tu eres ahora desarrollador 3.2.5 . El uso de un dispositivo real para desarrollar con Android Aplicaciones Android tienes el dispositivo a través del cable USB al ordenador, activamos Cómo activar la depuración USB en Android KitKat y Jelly Bean (4.2 y ) > y pulsamos varias desarrollador".
  • 30. Pulsa el botón "atrás" y observa "Opciones de desarrollo" "Depuración USB". Cómo activar la depuración USB en Android 4.1 y 4.0 Abrimos Settings> Developer options USB . En este caso es más fácil. Cómo activar la depuración USB en Android 2.3 más recientes En este caso es muy fácil. Seleccione Ajustes> Aplicaciones> Desarrollo > Depuración USB (Settings>Applications . observa que una nueva opción ha aparecido (“Developer options”). Haz presión sobre ella y activa ómo activar la depuración USB en Android 4.1 y 4.0 Developer options. Y luego activamos la opción de depuración USB . En este caso es más fácil. Cómo activar la depuración USB en Android 2.3 Gingerbread e caso es muy fácil. Seleccione Ajustes> Aplicaciones> Desarrollo > Depuración Applications> Development> USB debugging:): e una nueva opción ha aparecido. Denominada: z presión sobre ella y activa Y luego activamos la opción de depuración Gingerbread y versiones e caso es muy fácil. Seleccione Ajustes> Aplicaciones> Desarrollo > Depuración
  • 31. 2.4 Cómo crear nuestra primera aplicación Android A continuación vamos a explicar cómo crear un proyecto creado en el punto anterior. Nuestro primer proyecto Android consistirá en una única pantalla con un mensaje de bienvenida. En la vista izquierda, proyecto, ampliamos las diferentes entradas haciendo clic en las flechas de los nodos co Abre el archivo Bienvenido.java Observa que la clase BienvenidoActivity (Activity class) (la extiende) Una actividad es un componente de una apl aplicación puede tener un montón de una de ellas al mismo tiempo Activity representa el componente principal de la interfaz gráfica de una aplicación Android. Podemos pensar en una lenguaje de programación visual. A lo largo de la vida de una actividad • Activa (Running): La actividad se encuentra en la parte superior de la pila. Es visible y posee el foco. • Pausada: La actividad es visible, pero no tiene el foco. Se pone cuando otra actividad es llena la totalidad de la pantalla. Cuando una actividad está totalmente oculta por la que está en la parte superior, se pone en estado detenido. • Detenido: Cuando la actividad no es vi preferencias, etc ... • Destruidos: cuando la actividad termina o sale de la Pila de Activitys onCreate () se invoca cuando la actividad tareas de inicialización, como la creación de la interfaz de usuario de la actividad. 4 Cómo crear nuestra primera aplicación Android vamos a explicar cómo crear un proyecto a partir en el punto anterior. Nuestro primer proyecto Android consistirá en una única pantalla con un mensaje de En la vista izquierda, proyecto, ampliamos las diferentes entradas haciendo clic en las flechas de los nodos correspondientes. Bienvenido.java, puedes ver el código fuente de la aplicación Android BienvenidoActivity es una subclase de la clase de a extiende) componente de una aplicación que realiza acciones. Una aplicación puede tener un montón de Activitys, aunque el usuario sólo interactúa con una de ellas al mismo tiempo. el componente principal de la interfaz gráfica de una aplicación r en una activity (o actividad) como una ventana en otro lenguaje de programación visual. A lo largo de la vida de una actividad, esta atraviesa una serie de estados: (Running): La actividad se encuentra en la parte superior de la pila. Es posee el foco. La actividad es visible, pero no tiene el foco. Se pone cuando otra actividad está en la parte superior de la pila y es transparente o no llena la totalidad de la pantalla. Cuando una actividad está totalmente oculta por la que está en la parte superior, se pone en estado detenido. : Cuando la actividad no es visible. Por lo general, almacena : cuando la actividad termina o es matada por Android Activitys. se invoca cuando la actividad es cargada la primera vez. Se utiliza para tareas de inicialización, como la creación de la interfaz de usuario de la actividad. a partir del que hemos Nuestro primer proyecto Android consistirá en una única pantalla con un mensaje de En la vista izquierda, proyecto, ampliamos las diferentes entradas e de la aplicación Android: es una subclase de la clase de actividad, icación que realiza acciones. Una usuario sólo interactúa con el componente principal de la interfaz gráfica de una aplicación como una ventana en otro una serie de estados: (Running): La actividad se encuentra en la parte superior de la pila. Es La actividad es visible, pero no tiene el foco. Se pone en este estado en la parte superior de la pila y es transparente o no llena la totalidad de la pantalla. Cuando una actividad está totalmente oculta por la que está en la parte superior, se pone en estado detenido. sible. Por lo general, almacena el estado, por Android Runtime. Y la primera vez. Se utiliza para tareas de inicialización, como la creación de la interfaz de usuario de la actividad.
  • 32. La interfaz de usuario de Android se compone de que define el diseño de la interfaz de usuario, como por ejemplo un botón, una imagen, una etiqueta de texto, etc. Cada uno de estos objetos pertenecen a una clase que hereda de la superclase Los objetos View (vista) gráfica de una aplicación, de una manera similar como controles en Java o .NET. Android proporciona una gran cantidad de controles básicos tales como cuadros de texto, botones, listas, imágenes, pero podemos c personalizados creando subclases de éstos. En nuestro proyecto que llamamos a la vista (creada bienvenido_layout del método onCreate // Invoca su método de la superclase super.onCreate (savedIns // Establece la vista: activity_bienvenido. setContentView (R.layout.bienvenido_layout); Podemos ver el contenido de este archivo el directorio src/main/res BienvenidoActivity.java, al pulsar en el botón en el lado de archiv XML file”: La interfaz de usuario de Android se compone de Vistas/Views. Una vista es un objeto que define el diseño de la interfaz de usuario, como por ejemplo un botón, una imagen, una etiqueta de texto, etc. Cada uno de estos objetos pertenecen a una clase que hereda de la superclase Vista/View. son los componentes básicos que construyen la interfaz gráfica de una aplicación, de una manera similar como controles en Java o .NET. Android proporciona una gran cantidad de controles básicos tales como cuadros de texto, botones, listas, imágenes, pero podemos crear nuestros propios componentes subclases de éstos. que llamamos a la vista (creada automáticamente) del método onCreate(): // Invoca su método de la superclase super.onCreate (savedInstanceState); // Establece la vista: activity_bienvenido. setContentView (R.layout.bienvenido_layout); Podemos ver el contenido de este archivo bienvenido_layout.xml seleccionándolo en /res/layaout/ o desde el editor, si estamos trabajando con BienvenidoActivity.java, al pulsar en el botón en el lado de archivo del lado “Related vista es un objeto que define el diseño de la interfaz de usuario, como por ejemplo un botón, una imagen, una etiqueta de texto, etc. Cada uno de estos objetos pertenecen a una clase componentes básicos que construyen la interfaz gráfica de una aplicación, de una manera similar como controles en Java o .NET. Android proporciona una gran cantidad de controles básicos tales como cuadros de rear nuestros propios componentes automáticamente) seleccionándolo en mos trabajando con del lado “Related
  • 33. Lo estudiaremos en detalle en unidades posteriores. Contiene dos elementos y sus parámetros: • RelativeLayout: define la forma en que se organizan los distintos elementos. • TextView: es un elemento de texto que m Hola mundo! será el texto que se muestr Una manera cómoda de ajustar el zoom de la pantalla de diseño tamaño del dispositivo para el espacio disponible en la ventana, como lo tenemos en la captura de pantalla. Seleccionado de la vista es "diseño"/”Design”. Con este modo, podemos ver el aspecto que tendrá el dispositivo seleccionado, si bien internamente, el archivo está en formato XML y a menudo tendremos que acceder al código fuente para ajustarlo. Puede hacerlo pulsando la pestaña "Texto" indicada por la flecha. Y obtendrá la siguiente Lo estudiaremos en detalle en unidades posteriores. Contiene dos elementos y sus : define la forma en que se organizan los distintos elementos. es un elemento de texto que mostrará la cadena "Hola mundo! ! será el texto que se muestre . Una manera cómoda de ajustar el zoom de la pantalla de diseño es ajustar el tamaño del dispositivo para el espacio ventana, como lo tenemos en la captura de pantalla. eleccionado de la vista es . Con este modo, podemos ver el aspecto que tendrá en el dispositivo seleccionado, si bien , el archivo está en formato XML y a menudo tendremos ue acceder al código fuente para ajustarlo. Puede hacerlo pulsando la " indicada por la flecha. imagen: Lo estudiaremos en detalle en unidades posteriores. Contiene dos elementos y sus : define la forma en que se organizan los distintos elementos. "Hola mundo!"
  • 34. El archivo R.java (generado automáticamente) no debe ser modificado referencias estáticas (atributos de clase) a todos los recursos de la aplicación, de esa manera podemos acceder a ellos desde nuestro código fuente, para R.layout.bienvenido_layout Busque el texto "bienvenido_layout" en el archivo R.java y El archivo AndroidManifest.xml los Intents, servicios, proveedores de contenido y fragmentos de la aplicación. También contiene la declaración de los permisos requeridos por la versión de Android mínima para ejecutarlo. Intents: representa la intención o realiza una acción. Intents se utilizan para: • Iniciar Activitys. • Enviar eventos a múltiples recepto El archivo project.properties modificado. Se utiliza para comprobar la versión de la API y otros parámetros cuando la aplicación está instalada en un dispositivo. Por último, el archivo build.gradle construcción de la App, como compilación, así como el número de versión de la aplicación El archivo R.java (generado automáticamente) no debe ser modificado referencias estáticas (atributos de clase) a todos los recursos de la aplicación, de esa manera podemos acceder a ellos desde nuestro código fuente, para por ejemplo R.layout.bienvenido_layout Busque el texto "bienvenido_layout" en el archivo R.java y observe su declaración. AndroidManifest.xml describe la aplicación Android. Contiene las , proveedores de contenido y fragmentos de la aplicación. También contiene la declaración de los permisos requeridos por la aplicación. ndroid mínima para ejecutarlo. la intención o la solicitud, por lo que uno de los se utilizan para: eventos a múltiples receptores. project.properties: se genera automáticamente por el SDK. No debe . Se utiliza para comprobar la versión de la API y otros parámetros cuando la aplicación está instalada en un dispositivo. build.gradle se utiliza para indicar parámetros para la de la App, como la versión del SDK, versión mínima y la versión de compilación, así como el número de versión de la aplicación El archivo R.java (generado automáticamente) no debe ser modificado. Contiene referencias estáticas (atributos de clase) a todos los recursos de la aplicación, de esa por ejemplo: observe su declaración. ntiene las Activitys, , proveedores de contenido y fragmentos de la aplicación. la aplicación. Contiene , por lo que uno de los componentes : se genera automáticamente por el SDK. No debe ser . Se utiliza para comprobar la versión de la API y otros parámetros cuando se utiliza para indicar parámetros para la versión del SDK, versión mínima y la versión de
  • 35. Nota Para quitar la barra de herramientas superior con el nombre el archivo AndroidManifest.xml android:theme="@style/AppTheme" por android:theme="@android:style/Theme.NoTitleBar" Esto eliminará el título para toda la aplicación. Si nosotros queremos una actividad, podemos añadir en nuestro código Java: // Eliminación de la barra de título this.requestWindowFeature ( Para quitar la barra de herramientas superior con el nombre de la aplicación, editamos AndroidManifest.xml y reemplazamos : android:theme="@style/AppTheme" por android:theme="@android:style/Theme.NoTitleBar" Esto eliminará el título para toda la aplicación. Si nosotros queremos solo eliminarlo de podemos añadir en nuestro código Java: ón de la barra de título this.requestWindowFeature (Window.FEATURE_NO_TITLE); de la aplicación, editamos solo eliminarlo de
  • 36. 2.4.1 Creación de la interfaz de usu Podemos modificar nuestro ejemplo para cre del código fuente en lugar de utilizar el archivo XML: Añadimos las instrucciones para el método onCreate e importamos la clase TextView (import android.widget.TextView Nota: Puede añadir el "Import" Enter. El import android.widget.TextView En este ejemplo hemos utilizado la subclase de texto. En nuestro ejemplo, la etiqueta de Para crear esta etiqueta, necesitamos para proveer como parámetro una instancia del contexto de la aplicación Android. Un contexto es un identificador de sistema que permite acceder a los recursos, las preferencias, bases de aplicación. La clase Activity actividad se puede pasar como el contexto de la App escribiendo El método setText() establece el texto que tendrá la etiqueta. Por último utilizamos el método usuario de la actividad. Al ejecutar nuestro ejemplo: 4.1 Creación de la interfaz de usuario del código fuente y no XML Podemos modificar nuestro ejemplo para crear la vista en tiempo de ejecución a partir del código fuente en lugar de utilizar el archivo XML: ñadimos las instrucciones para el método onCreate e importamos la clase TextView import android.widget.TextView). mport" necesario puedes seleccionar TextView y pulsar import android.widget.TextView será añadido. En este ejemplo hemos utilizado la subclase de TextView, que crea una etiqueta de etiqueta de TextView se crea en el constructor de la Activity. necesitamos para proveer como parámetro una instancia del contexto de la aplicación Android. Un contexto es un identificador de sistema que permite acceder a los recursos, las preferencias, bases de datos, aplicación. La clase Activity se hereda de la clase Context; para ello la instancia de actividad se puede pasar como el contexto de la App escribiendo this. establece el texto que tendrá la etiqueta. s el método setContentView() para configurar la inte jecutar nuestro ejemplo: ario del código fuente y no XML. ar la vista en tiempo de ejecución a partir ñadimos las instrucciones para el método onCreate e importamos la clase TextView TextView y pulsar Alt + , que crea una etiqueta de tructor de la Activity. necesitamos para proveer como parámetro una instancia del contexto de la aplicación Android. Un contexto es un identificador de sistema que datos, etc. desde la se hereda de la clase Context; para ello la instancia de () para configurar la interfaz de
  • 37. Ejercicio 1 Modificar el mensaje que aparece cuando se ejecuta la aplicación del punto número 4 accediendo a la propiedad Text El nuevo mensaje que debe aparecer es 2.4.2 Trabajo con cadenas Puedes ver en nuestro ejemplo que Android Studio ha creado una etiqueta con el texto "Hello World" en bienvenido_layout.xml. Aunque se puede insertar cadenas en el código de la aplicación, ésta no es la mejor opción. Las cadenas se insertan generalmente en un archivo separado llamado fácilmente aplicaciones. Seleccione el TextView en la vista Graphic desplazarse en busca del parámetro "texto" Esta propiedad almacena el valor: Modificar el mensaje que aparece cuando se ejecuta la aplicación del punto número 4 a propiedad Text. que debe aparecer es "Hola, soy TUNOMBRE" . 4.2 Trabajo con cadenas er en nuestro ejemplo que Android Studio ha creado una etiqueta con el texto ienvenido_layout.xml. Aunque se puede insertar cadenas en el código de la aplicación, ésta no es la mejor opción. Las cadenas se insertan generalmente en un archivo separado llamado strings.xml. Esto permite TextView en la vista Graphic en bienvenido_layout.xml . A continuación, el parámetro "texto" entre sus propiedades: Esta propiedad almacena el valor: @string/hello_world. Modificar el mensaje que aparece cuando se ejecuta la aplicación del punto número 4 er en nuestro ejemplo que Android Studio ha creado una etiqueta con el texto ienvenido_layout.xml. Aunque se puede insertar cadenas en el código de la aplicación, ésta no es la mejor opción. Las cadenas se insertan . Esto permite traducir en bienvenido_layout.xml . A continuación,
  • 38. @string significa que el valor de esta cadena se almacena que contiene todas las cadenas de la aplicación). cadena en el archivo string.xml Se puede ver al abrir el archivo de / Una manera fácil de editar est en la vista gráfica y luego pulsando el botón "... " : En esta ventana de diálogo las cadenas pueden ser editada nuevas. Y se añadirán automát significa que el valor de esta cadena se almacena en el archivo strings.xml (la que contiene todas las cadenas de la aplicación). /hello_word es el identificador de la cadena en el archivo string.xml Se puede ver al abrir el archivo de /src/main/res/values/strings.xml: Una manera fácil de editar estas cadenas es mediante la selección de las propiedades la vista gráfica y luego pulsando el botón "... " : En esta ventana de diálogo las cadenas pueden ser editadas y se pueden crear otras se añadirán automáticamente al archivo strings.xml. en el archivo strings.xml (la es el identificador de la de las propiedades se pueden crear otras
  • 39. Ejercicio 2 Cambiar el texto que aparece en el ejemplo (punto 4) modificando el archivo strings.xml en /res/values El nuevo mensaje debe ser "Hola, Soy TU NOMBRE y he sido capaz de modificar el mensaje de bienvenida!" . 2.5 Diseño de una sola interfaz de usuario (UI) Los Layouts son elementos no visibles que están a cargo de la organización de los componentes (widgets) que incluimos en la interfaz de usuario (UI). Se puede pensar en estos elementos como paneles en los que colocar los componentes y que son posicionados en un lugar determinado. En el punto 4 utilizamos un diseño en el archivo bienvenido_layout.xml Importante Nos referiremos a los componentes en Android como Vistas/Views o Widgets a lo largo del curso. Ya sean visibles (botones, texto, menús,...) o no lo sean (Layouts). En Android el diseño de las interfaces se implementan a través de archivos XML (Layouts). Aquí tienes un ejemplo: EJEMPLO 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_world" /> </LinearLayout> La estructura general de un archivo de interfaz XML en Android es simple. Es un árbol de objetos XML, donde cada nodo es el nombre de una clase (o subclase) de la View. En nuestro ejemplo usamos las clases LinearLayout y TextView.
  • 40. Se puede utilizar cualquier subclase de la vista, incluso nuestras propias subclases personalizadas. El layaout LinearLayout organiza todos sus elementos secundarios en una fila (horizontal o vertical) . En el siguiente punto veremos diferentes tipos de disposiciones y de sus particularidades. Esta estructura XML hace que sea más fácil para crear interfaces de usuario. Se basa en el modelo de desarrollo web, donde se separan la presentación (interfaz) y la lógica. En nuestro ejemplo anterior, sólo hay un elemento de Vista: TextView, que tiene tres atributos y un elemento de diseño (Layaout): LinearLayout , el cual tiene cuatro atributo. Esta es la descripción de esos atributos : El título de la aplicación y la cadena "Hola Mundo" se definen en el archivo src/main/res/values/strings.xml. Android Studio permite editar los archivos XML en modo texto o en formato gráfico (Design). En esta ventana podemos diseñar visualmente la interfaz arrastrando los widgets deseados desde la "paleta"
  • 41. 2.5.1 Vistas disponibles en Android. Es muy fácil de construir interfaces de usuario en Android gracias a la utilización de Views. Hay muchas subclases de la vista tales como: • Botones7 Buttons • Etiquetas/Labels • Campos de texto / Text Fields • Imágenes / Images • Las casillas de verificación • Etc. Como hemos visto en el punto anterior, vista llamada Layout. En los Layouts podemos incluir otra una interfaz de usuario más complej 2.5.2 Tipos de Layouts FrameLayout Un ejemplo de usos diferentes con un Fram http://blog.neteril.org/blog/2013/10/10/f 5.1 Vistas disponibles en Android. il de construir interfaces de usuario en Android gracias a la utilización de la vista, que son objetos que tiene una representación visual, / Text Fields Las casillas de verificación / Checkboxes Como hemos visto en el punto anterior, las vistas deben ser colocadas en otro tipo de podemos incluir otras Vistas o podemos anidar otros Layouts nterfaz de usuario más compleja. (paneles) Un ejemplo de usos diferentes con un FrameLayout: http://blog.neteril.org/blog/2013/10/10/framelayout-your-best-ui-friend/ il de construir interfaces de usuario en Android gracias a la utilización de presentación visual, s en otro tipo de Layouts para crear friend/
  • 42. Ésta es la disposición más sencilla en Android. Un FrameLayout coloca todos sus elementos secundarios alineados co cada nuevo componente agregado se coloca sobre el resto. Por lo general se utiliza para colocar un único elemento. También se puede utilizar para colocar varios elementos, pero sólo uno de ellos es visible al mismo tiempo, modificando su atributo visible. Los componentes incluidos en un FrameLayout puede estab propiedades android:layout_width android:layout_height, que puede contener los siguientes valores: • fill_parent el componente hijo tendrá la misma dimensión que la disposición de diseño contenedor. • wrap_content: el componente hijo adapta contenido. • gravity: permite controlar su posición relativa Ejemplo: <?xml version="1.0" encoding="utf <FrameLayout xmlns:android="http://schemas.android.com/apk/ android:id="@+id/FrameLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" <AnalogClock android:id="@+id/analogClock1" android:layout_width="wrap_content" android:layout_h <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" <CheckBox android:id="@+id/checkBox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_visibility="invisible" android:text="CheckBox" <TextView android:id="@+id/textView1" Ésta es la disposición más sencilla en Android. Un FrameLayout coloca todos sus elementos secundarios alineados con la esquina superior izquierda, de tal manera que cada nuevo componente agregado se Por lo general se utiliza para colocar un único elemento. También se puede utilizar para colocar varios elementos, pero sólo uno de al mismo tiempo, visible. Los componentes incluidos en un FrameLayout puede establecer sus android:layout_width y , que puede contener los siguientes valores: el componente hijo tendrá la misma dimensión que la disposición de . el componente hijo adaptará su tamaño del tamaño de su controlar su posición relativa. encoding="utf-8"?> http://schemas.android.com/apk/res/android android:id="@+id/FrameLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" > android:id="@+id/analogClock1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> android:id="@+id/checkBox1" droid:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_visibility="invisible" android:text="CheckBox" /> android:id="@+id/textView1" Ésta es la disposición más sencilla en Android. Un FrameLayout coloca todos sus , de tal manera que el componente hijo tendrá la misma dimensión que la disposición de l tamaño de su res/android"
  • 43. android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="top|center_horizontal" android:layout_marginLeft="18dp" android:layout_visibility="invisible" android:text="Testo de prueba. </FrameLayout> LinearLayout Vertical u horizontal: El panel LinearLayout alinea todos sus componentes hijo horizontal o verticalmente en función del valor de la propiedad Al igual que con la FrameLayout, las prop android:layout_height se puede ajustar. Además, la propiedad A relativa de los componentes contenidos en el mismo. Ejemplo <br><?xml version="1.0" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" <AnalogClock android:id="@+id/analogClock1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="top|center_horizontal" android:layout_marginLeft="18dp" android:layout_visibility="invisible" android:text="Testo de prueba. HOLA" /> alinea todos sus componentes hijo horizontal o verticalmente en a propiedad Android:orientation "vertical" u "horizontal". Al igual que con la FrameLayout, las propiedades android:layout_width se puede ajustar. Android:layout_weight, permite establecer la dimensión relativa de los componentes contenidos en el mismo. version="1.0" encoding="utf-8"?> http://schemas.android.com/apk/res/android android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" :orientation="vertical" > android:id="@+id/analogClock1" android:layout_gravity="top|center_horizontal" alinea todos sus componentes hijo horizontal o verticalmente en "vertical" u "horizontal". :layout_width y , permite establecer la dimensión http://schemas.android.com/apk/res/android"
  • 44. android:layout_width="wrap_content" android:layout_height="wrap_content" /> <CheckBox android:id="@+id/checkBox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="CheckBox" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /> </LinearLayout> Si incluimos dos componentes EditText y establecemos layout_weight = "1" en uno de ellos y layout_weight = "2" en la otra, se le asignará toda la superficie disponible del panel para los dos, pero la segunda altura de EditarText será el doble que la primera. TableLayout Ejemplo TableLayout: http://columna80.wordpress.com/2012/11/05/diseos-android- bsicos-tablelayout/ El panel TableLayout distribuye todos sus componentes hijo como si fuera una tabla con sus filas y columnas. La estructura de la tabla se encuentra de forma similar a una tabla HTML, indicando sus filas como (objetos TableRow) y columnas. Como regla general, la anchura de cada columna será el más ancho de todas sus celdas, aunque hay algunas propiedades que modifican este comportamiento:
  • 45. • android:stretchColumns • android:shrinkColumns • android:collapseColumns Todas estas propiedades pueden establecer una lista de índices separados por comas, por ejemplo: android: stretchColumns = "1,2,3 columnas se pueden estirar para conseguir todo el espacio disponible, de esta manera: android: stretchColumns = "*". android: layout_span Ejemplo <br><?xml version="1.0" <TableLayout xmlns:android="http://schemas.android.com/apk/res/android android:layout_width="fill_parent" android:layout_height="fill_parent" <TableRow> <AnalogClock android:id="@+id/analo android:layout_width="wrap_content" android:layout_height="wrap_content" <CheckBox android:id="@+id/checkBox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="CheckBox" </TableRow> <TableRow> stretchColumns shrinkColumns collapseColumns Todas estas propiedades pueden establecer una lista de índices separados por comas, android: stretchColumns = "1,2,3" o un asterisco para indicar que todas las columnas se pueden estirar para conseguir todo el espacio disponible, de esta manera: android: stretchColumns = "*". version="1.0" encoding="utf-8"?> http://schemas.android.com/apk/res/android android:layout_width="fill_parent" android:layout_height="fill_parent" > android:id="@+id/analogClock1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> android:id="@+id/checkBox1" android:layout_width="wrap_content" android:layout_height="wrap_content" d:text="CheckBox" /> Todas estas propiedades pueden establecer una lista de índices separados por comas, asterisco para indicar que todas las columnas se pueden estirar para conseguir todo el espacio disponible, de esta manera: http://schemas.android.com/apk/res/android"
  • 47. colocará justo debajo de otro componente y alineado RelativeLayout (el que los contiene). Un panel RelativeLayout principales son: Posición relativa con respecto a otro control: • android:layout_above. • android:layout_below. • android:layout_toLeftOf. • android:layout_toRightOf. • android:layout_alignLeft. • android:layout_alignRight. • android:layout_alignTop. • android:layout_alignBottom. • android:layout_alignBaseline. Posición relativa con respecto a la disposición de los padres: • android:layout_alignParentLeft. • android:layout_alignParentRight. • android:layout_alignParentTop. • android:layout_alignParentBottom. • android:layout_centerHorizontal. • android:layout_centerVertical. • android:layout_centerInParent. Valores de márgenes (también están disponi • android:layout_margin. • android:layout_marginBottom. • android:layout_marginTop. • android:layout_marginLeft. • android:layout_marginRight. colocará justo debajo de otro componente y alineado a la derecha de su panel RelativeLayout (el que los contiene). RelativeLayout tiene muchas propiedades de cada componente. Los con respecto a otro control: layout_above. android:layout_below. :layout_toLeftOf. android:layout_toRightOf. android:layout_alignLeft. android:layout_alignRight. android:layout_alignTop. android:layout_alignBottom. android:layout_alignBaseline. con respecto a la disposición de los padres: ut_alignParentLeft. android:layout_alignParentRight. android:layout_alignParentTop. android:layout_alignParentBottom. android:layout_centerHorizontal. android:layout_centerVertical. android:layout_centerInParent. alores de márgenes (también están disponibles para el resto de los tipos android:layout_margin. android:layout_marginBottom. android:layout_marginTop. android:layout_marginLeft. android:layout_marginRight. a la derecha de su panel tiene muchas propiedades de cada componente. Los bles para el resto de los tipos Layout):
  • 48. El relleno o espacio entre los componentes (también están disponibles para el resto de los tipos de Layout): • android:padding. • android:paddingBottom. • android:paddingTop. • android:paddingLeft. • android:paddingRight. Ejemplo <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/RelativeLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" > <AnalogClock android:id="@+id/analogClock1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_toRightOf="@+id/analogClock1" android:text="Button" /> <CheckBox android:id="@+id/checkBox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/analogClock1" android:text="CheckBox" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_marginLeft="18dp" android:text="Testo de prueba. HOLA" /> </RelativeLayout>
  • 49. En este ejemplo, estamos utilizando nuevas propiedades: "layout_alignParentTop" para alinear el componente de la parte superior del layout, "layout_below" para añadir un elemento a continuación de otro, "layout_alignParentRight" para agregar el elemento a la parte derecha de la, y finalmente, "layout_alignParentBotton" para añadir un elemento a la parte inferior de la layout. AbsoluteLayout Permite especificar las coordenadas (x , y) para cada elemento . Ejemplo <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <AnalogClock android:id="@+id/analogClock1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <CheckBox android:id="@+id/checkBox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="CheckBox" /> <Button android:id="@+id/button1"