Clase05 - Fundamentos-Android
Clase05 - Fundamentos-Android
https://developer.android.com/studio/intro/index.html?hl=es-419
Un entorno unificado en el que puedes realizar desarrollos para todos los dispositivos
Android
Instant Run para aplicar cambios mientras tu app se ejecuta sin la necesidad de compilar
un nuevo APK
Soporte incorporado para Google Cloud Platform, lo que facilita la integración de Google Cloud
Messaging y App Engine
1
Estructura del proyecto
módulos de bibliotecas
manifests: contiene el
archivo AndroidManifest.xml.
La estructura del proyecto para Android en el disco difiere de esta representación plana. Para
ver la estructura de archivos real del proyecto, selecciona Project en la lista
desplegable Project (en la figura 1 se muestra como Android).
También puedes personalizar la vista de los archivos del proyecto para concentrarte en
aspectos específicos del desarrollo de tu app. Por ejemplo, al seleccionar la
vista Problems de tu proyecto, aparecerán enlaces a los archivos de origen que contengan
2
errores conocidos de codificación y sintaxis, como una etiqueta de cierre faltante para un
elemento XML en un archivo de diseño.
Figura 2. Archivos del proyecto en la vista Problems, en la que se muestra un archivo de diseño
con un problema.
3
Interfaz de usuario
La ventana principal de Android Studio consta de varias áreas lógicas que se identifican en la
figura 3.
4
3. La ventana del editor es el área donde puedes crear y modificar código. Según el tipo
de archivo actual, el editor puede cambiar. Por ejemplo, cuando se visualiza un archivo de
diseño, el editor muestra el editor de diseño.
Puedes organizar la ventana principal para tener más espacio en pantalla ocultando o
desplazando barras y ventanas de herramientas. También puedes usar combinaciones de
teclas para acceder a la mayoría de las funciones del IDE.
Ventanas de herramientas
En lugar de usar perspectivas preestablecidas, Android Studio sigue tu contexto y te ofrece
automáticamente ventanas de herramientas relevantes mientras trabajas. De forma
predeterminada, las ventanas de herramientas usadas con mayor frecuencia se fijan en la
barra de ventanas de herramientas en los bordes de la ventana de la aplicación.
5
Para localizar una ventana de herramientas específica, coloca el puntero sobre el ícono de
ventana y selecciona la ventana de herramientas en el menú.
Puedes usar la Búsqueda rápida para buscar y aplicar filtros en la mayoría de las ventanas de
herramientas en Android Studio. Para usar la búsqueda rápida, selecciona la ventana de
herramientas y luego escribe el texto de tu búsqueda.
6
Compleción de código
Android Studio ofrece tres opciones para completar código, a las que puedes acceder usando
combinaciones de teclas.
Navegación
Aquí te ofrecemos algunas sugerencias para ayudarte a recorrer Android Studio.
Alterna entre los archivos a los que accediste recientemente mediante la acción Recent
Files . Presiona Control+E (Comando+E en una Mac) para activar la acción Recent Files.
De forma predeterminada, se selecciona el último archivo al que accediste. También
puedes acceder a cualquier ventana de herramientas a través de la columna izquierda en
esta acción.
Visualiza la estructura del archivo actual utilizando la acción File Structure. Activa la acción
File Structure presionando Control+F12 (Comando+F12en una Mac). Con esta acción,
podrás navegar rápidamente hacia cualquier parte del archivo actual.
7
Busca una clase específica en tu proyecto y navega hacia ella con la acción Navigate to
Class. Activa la acción presionando Control+N (Comando+Oen una Mac). Navigate to
Class admite expresiones sofisticadas, como jorobas de camellos, rutas de acceso, la línea
de navegar a y coincidencia de segundo nombre, entre otras. Si la llamas dos veces
seguidas, te mostrará los resultados fuera de las clases de proyectos.
Navega hasta un archivo o carpeta utilizando la acción Navigate to File. Activa la acción
Navigate to File presionando Control+Shift+N(Comando+Shift+O en una Mac). Para
buscar carpetas en lugar de archivos, agrega una “/” al final de la expresión.
Navega hasta un método o campo por nombre utilizando la acción Navigate to Symbol.
Activa la acción Navigate to Symbol
presionandoControl+Shift+Alt+N (Comando+Shift+Alt+O en una Mac).
Busca todas las partes de código que hagan referencia a la clase, el método, el campo, el
parámetro o el enunciado en la posición actual del cursor presionando Alt+F7.
Estilo y formato
Mientras editas, Android Studio aplica automáticamente formatos y estilos según lo
especificado en tu configuración de estilo de código. Puedes personalizar la configuración de
estilo de código programando el idioma, que incluye la especificación de convenciones para
pestañas y sangrías, espacios, ajuste y llaves, y líneas en blanco. Para personalizar la
configuración de estilo de tu código, haz clic en File > Settings > Editor > Code
Style(Android Studio > Preferences > Editor > Code Style en una Mac.)
Si bien el IDE aplica formato automáticamente mientras trabajas, también puedes llamar
explícitamente a la acción Reformat Code presionandoControl+Alt+L (Opt+Comando+L en
una Mac), o aplicar sangrías automáticas a todas las líneas
presionando Control+Alt+I (Alt+Option+I en una Mac).
8
Figura 6. Código después de la aplicación del formato.
Después de importar tu app a Android Studio, usa las opciones del menú del VCS de Android
Studio a fin de habilitar la compatibilidad con VCS para el sistema de control de versión
deseado, crea un repositorio, importa los nuevos archivos al control de versión y realiza otras
operaciones de control de versión:
1. En el menú VCS de Android Studio, haz clic en Enable Version Control Integration.
En el menú del VCS ahora se muestran diversas opciones de control de versión según el
sistema que hayas seleccionado.
Nota: También puedes usar la opción del menú File > Settings > Version Control para
configurar y modificar los ajustes de control de versión.
9
Sistema de compilación de Gradle
Android Studio usa Gradle como la base del sistema de compilación, con más capacidades
específicas de Android a través del complemento de Android para Gradle. Este sistema de
compilación se ejecuta en una herramienta integrada desde el menú de Android Studio, y lo
hace independientemente de la línea de comandos. Puedes usar las funciones del sistema de
compilación para lo siguiente:
crear múltiples APK para tu app, con diferentes funciones utilizando el mismo proyecto y
los mismos módulos;
Recurriendo a la flexibilidad de Gradle, puedes lograr todo esto sin modificar los archivos de
origen de tu app. Los archivos de compilación de Android Studio se denominan build.gradle.
Son archivos de texto sin formato que usan la sintaxis Groovy para configurar la compilación
con elementos proporcionados por el complemento de Android para Gradle. Cada proyecto
tiene un archivo de compilación de nivel superior para todo el proyecto y archivos de
compilación de nivel de módulo independientes para cada módulo. Cuando importas un
proyecto existente, Android Studio genera automáticamente los archivos de compilación
necesarios.
Administración de dependencias
Las dependencias para tu proyecto se especifican por nombre en el archivo build.gradle.
Gradle se ocupa de buscar tus dependencias y hacer que estén disponibles en tu compilación.
Puedes declarar dependencias de módulos, dependencias binarias remotas y dependencias
binarias locales en tu archivo build.gradle. Android Studio configura los proyectos para que
usen el repositorio central de Maven de forma predeterminada. (Esta configuración está
incluida en el archivo de compilación de nivel superior del proyecto).
Depuración integrada
Usa la depuración integrada para mejorar las revisiones de código en la vista del depurador
con verificación integrada de referencias, expresiones y valores de variables. La información
de depuración integrada incluye:
10
+valores de variables integradas; + objetos que hacen referencia a un objeto seleccionado; +
valores de retorno de métodos; + expresiones Lambda y de operador; + valores de
información sobre la herramienta.
Monitores de rendimiento
Android Studio proporciona monitores de rendimiento para que puedas realizar de manera
más sencilla un seguimiento del uso de CPU y memoria de tu app, buscar objetos sin asignar,
localizar pérdidas de memoria, optimizar el rendimiento de los gráficos y analizar solicitudes
de la red. Con tu app ejecutándose en un dispositivo o emulador, abre la ventana de
herramientas Android Monitor y haz clic en la pestaña Monitors.
Volcado de montón
Cuando controlas el uso de la memoria en Android Studio, puedes iniciar simultáneamente la
recolección de elementos no usados y volcar el montón de Java a una captura instantánea del
montón en un archivo de formato binario HPROF específico de Android. El visor de HPROF
muestra las clases, las instancias de cada clase y un árbol de referencia para ayudarte a
realizar el seguimiento del uso de la memoria y encontrar fugas de memoria.
Seguimiento de asignaciones
Android Studio te permite realizar un seguimiento de la asignación de memoria mientras
controla el uso de esta. El seguimiento de la asignación de memoria te permite controlar
dónde se asignan los objetos cuando realizas ciertas acciones. Conocer estas asignaciones te
11
permite optimizar el rendimiento de tu app y el uso de la memoria ajustando las llamadas del
método relacionadas con las acciones en cuestión.
Para ver los archivos de datos generados disponibles, abre la ventana de herramientas
Captures. En la lista de los archivos generados, haz doble clic en uno para ver los datos. Haz
clic con el botón secundario en cualquiera de los archivos .hprof para convertirlos al formato
de archivo .hprofestándar.
Inspecciones de código
Cuando compilas tu programa, Android Studio ejecuta automáticamente inspecciones
de Lint y otras inspecciones de IDE configuradas para ayudarte a identificar y corregir problemas
fácilmente con respecto a la calidad estructural de tu código.
La herramienta Lint verifica los archivos de origen de tu proyecto Android para detectar
posibles errores y mejoras de optimización en relación con la corrección, la seguridad, el
rendimiento, el uso, la accesibilidad y la internacionalización.
Además de las verificaciones de Lint, Android Studio también realiza inspecciones de código
de IntelliJ y valida anotaciones para simplificar tu flujo de trabajo de codificación.
12
Anotaciones en Android Studio
Android Studio admite anotaciones para variables, parámetros y valores de retorno para
ayudarte a detectar errores, como excepciones de puntero nulo y conflictos de tipos de
recurso. SDK Manager de Android empaqueta la biblioteca de compatibilidad-anotaciones en
el Repositorio de compatibilidad de Android para usarla con Android Studio. Android Studio
valida las anotaciones configuradas durante la inspección del código.
Mensajes de registro
Cuando compilas y ejecutas tu app con Android Studio, puedes ver mensajes adb de salida y
mensajes de registro del dispositivo (logcat) haciendo clic en Android Monitor en la parte
inferior de la ventana.
Si quieres depurar tu app con el Monitor de dispositivos Android, puedes iniciar el Monitor de
dispositivos haciendo clic en Tools > Android > Android Device Monitor. En el Monitor de
dispositivos encontrarás el conjunto completo de herramientas DDMS para perfilar tu app,
controlar comportamientos del dispositivo y más. En este también se incluye la herramienta
del Visor de jerarquía para ayudarte a optimizar tus diseños.
13
Crear un proyecto
https://developer.android.com/studio/projects/create-project.html?hl=es-419
Si tienes un proyecto abierto, Android Studio muestra el entorno de desarrollo. Para crear un
proyecto nuevo, haz clic en File > New > New Project.
14
Figura 1: Pantalla Configure your new project.
15
Figura 2: Gráfico de la distribución actual de las versiones de Android, que se muestra al hacer
clic en Help me choose.
16
Figura 3: Pantalla Target Android Devices.
Luego, en la ventana Target Android Devices, una vez que hayas seleccionado tus formatos y
versiones de API haz clic en Next.
17
Figura 4: Pantalla Add an Activity para un formato de dispositivo móvil.
Nota: Si seleccionas “Add No Activity”, haz clic en Finish para crear el proyecto.
18
Paso 4: Configurar tu actividad
En la siguiente pantalla, puedes configurar la actividad que deseas agregar a tu app, como se
muestra en la figura 5.
Ingresa el nombre de la actividad, el nombre del diseño y el título de la actividad. Luego, haz
clic en Finish.
19
Figura 6: Estructura de proyecto para una app recientemente creada.
Si importas un proyecto desde el control de versiones, usa el menú File > New > Project
from Version Control. Para obtener más información sobre la importación de proyectos
desde el control de versiones, consulta Procedimientos específicos de VCS de IntelliJ.
Si importas un proyecto de ADT para Eclipse existente en Android Studio, la forma en la que
agregas el proyecto depende de su estructura. Para leer más información sobre la
importación de proyectos desde Eclipse, consulta la sección sobre migración a Android Studio desde
Eclipse.
20
Proyectos recientes
https://developer.android.com/studio/projects/index.html?hl=es-419
Módulos
Un módulo es un conjunto de archivos de origen y configuraciones de compilación que te
permiten dividir tu proyecto en unidades discretas de funcionalidad. Tu proyecto puede tener
uno o más módulos y un módulo puede usar otro como dependencia. Cada módulo se puede
compilar, probar y depurar de forma independiente.
Los módulos adicionales a menudo son útiles cuando se crean bibliotecas de código dentro de
tu propio proyecto o cuando deseas crear diferentes conjuntos de código y recursos para
diferentes tipos de dispositivos, como teléfonos y wearables, y al mismo tiempo mantener
todos los archivos almacenados dentro del mismo proyecto y compartir código.
Puedes agregar un módulo nuevo a tu proyecto haciendo clic en File > New > New Module.
En la ventana Create New Module, Android Studio ofrece los siguientes módulos
de app:
21
Módulo Android Wear
Módulo Android TV
Módulo Glass
Cada uno proporciona archivos esenciales y algunas plantillas de códigos que son
apropiadas para el tipo de dispositivo o app correspondiente.
Módulo de biblioteca
Proporciona un contenedor para tu código reutilizable, que puedes usar como una
dependencia en otros módulos de app o importar a otros proyectos. A nivel
estructural, un módulo de biblioteca es lo mismo que un módulo de app, pero
cuando se compila crea un archivo de código en lugar de un APK, de modo que no
se puede instalar en un dispositivo.
En la ventana Create New Module, Android Studio ofrece los siguientes módulos
de biblioteca:
Biblioteca de Android: Este tipo de biblioteca puede contener todos los tipos de
archivos admitidos en un proyecto de Android, como código fuente, recursos y
archivos de manifiesto. El resultado de compilación es un archivo Android
Archive (AAR) que puedes agregar como dependencia para tus módulos de app
de Android.
Biblioteca Java: Este tipo de biblioteca puede contener solo archivos de origen
Java. El resultado de compilación es un archivo de Java (JAR) que puedes
agregar como dependencia para tus módulos de app de Android u otros
proyectos de Java.
22
para conectar a tu app. Puedes desarrollar tu backend para proporcionar servicios
de nube que necesite tu app.
Usar Android Studio para crear y desarrollar tu módulo de Google Cloud te permite
manejar el código de app y backend en el mismo proyecto. También puedes
ejecutar y probar tu código de backend localmente y usar Android Studio para
implementar tu módulo de Google Cloud.
Algunas personas también hacen referencia a los módulos como subproyectos y es correcto
porque Gradle también hace referencia a ellos como proyectos. Por ejemplo, cuando creas un
módulo de biblioteca y deseas agregarlo como una dependencia a tu módulo de app para
Android, debes declararlo de la siguiente manera:
dependencies {
compile project(':my-library-module')
}
23
Archivos de proyecto
Muestra todos los archivos de configuración relacionados con la compilación del proyecto
en un grupo de nivel superior Gradle Scripts.
Muestra todos los archivos de manifiesto para cada módulo en un grupo de nivel de
módulo (cuando tienes diferentes archivos de manifiesto para diferentes clases de
productos y tipos de compilación).
24
Dentro de cada módulo de app para Android, los archivos se muestran en los siguientes
grupos:
manifests
java
res
Contiene todos los recursos sin código, como diseños XML, strings de IU e
imágenes de mapa de bits, divididos en subdirectorios pertinentes. Para obtener
más información sobre todos los tipos de recursos posibles, consulta
25
Vista de proyectos de Android
26
Para ver la estructura de archivos real del proyecto, incluidos todos los archivos escondidos
de la vista Android, selecciona Project en el menú despegable de la parte superior de la
ventana Project.
Al seleccionar la vista Project, puedes ver más archivos y directorios. Los más importantes
son los siguientes:
module-name/
build/
libs/
src/
androidTest/
main/
AndroidManifest.xml
27
java/
jni/
gen/
res/
assets/
test/
build.gradle (módulo)
build.gradle (proyecto)
28
Esto define tu configuración de compilación que se aplica a todos los módulos.
Este es parte integral del proyecto. Por lo tanto, debes someterlos a control de
revisión con todos el código fuente restante.
SDK Location: configura la ubicación del JDK, Android SDK y Android NDK de tu proyecto.
Project: fija la versión para Gradle y el complemento de Android para Gradle, y el nombre de la
ubicación del repositorio.
29
Provisión de recursos
https://developer.android.com/guide/topics/resources/providing-resources.html
Una vez que externalizas los recursos para tu aplicación, puedes acceder a ellos mediante los
ID de recursos que se generan en la clase R de tu proyecto. La forma de utilizar los recursos
en tu aplicación se explica en la sección Acceso a recursos. En este documento, se muestra cómo
puedes agrupar los recursos en tu proyecto de Android y proporcionar recursos alternativos
para configuraciones de dispositivos específicos.
MyProject/
src/
MyActivity.java
res/
drawable/
graphic.png
layout/
main.xml
info.xml
mipmap/
icon.png
values/
strings.xml
Como se ve en este ejemplo, el directorio res/ contiene todos los recursos (en subdirectorios):
un recurso de imagen, dos recursos de diseño, directorios mipmap/ para los íconos del
lanzador y un archivo de recursos de strings. Los nombres del directorio de recursos son
importantes y se describen en la tabla 1.
Tabla 1: Directorios de recursos admitidos dentro del directorio res/ del proyecto.
30
Directo
Tipo de recurso
rio
animat
Archivos XML que definen animaciones de propiedades.
or/
Archivos XML que definen animaciones de interpolación de movimiento. (En este
directorio, también se pueden guardar animaciones de propiedades, pero se prefiere el
anim/
directorio animator/ para las animaciones de propiedades, a fin de distinguir entre los
dos tipos).
Archivos XML que definen una lista de estados de colores. Consulta la sección Recurso
color/
de lista de estado de colores
Archivos de mapas de bits (.png, .9.png, .jpg, .gif) o archivos XML que se han
compilado en los siguientes subtipos de recursos de elemento de diseño:
Archivos de mapas de bits
31
ejemplo, un elemento <string> crea un recursoR.string y un elemento <color> crea un
recurso R.color.
Dado que cada recurso se define con su propio elemento XML, puedes asignar el
nombre que desees al archivo y colocar diferentes tipos de recursos en un archivo. Sin
embargo, para mayor claridad, es recomendable que coloques tipos de recursos únicos
en diferentes archivos. Por ejemplo, a continuación se incluyen algunas convenciones de
asignación de nombres de archivos para los recursos que puedes crear en este directorio:
arrays.xml para arreglos de recursos (arreglos escritos).
colors.xml para valores de color.
dimens.xml para valores de dimensión.
strings.xml para valores de strings.
styles.xml para estilos.
Consulta las secciones Recursos de strings, Recursos de estilo y Más tipos de recursos.
Archivos XML arbitrarios que se pueden leer en tiempo de ejecución llamando
xml/ a Resources.getXML(). Aquí se deben guardar diversos archivos de configuración
XML , por ejemplo, una configuración que permite búsqueda.
Los recursos que guardes en los subdirectorios definidos en la tabla 1 son tus recursos
"predeterminados" . Es decir, estos recursos definen el diseño y el contenido predeterminados
de tu aplicación. Sin embargo, es posible que los diferentes tipos de dispositivos con
tecnología Android necesiten distintos tipos de recursos. Por ejemplo, si un dispositivo tiene
una pantalla más grande de lo normal, debes proporcionar diferentes recursos de diseño que
aprovechen el espacio extra de la pantalla. O bien, si un dispositivo tiene una configuración
de idioma diferente, debes proporcionar distintos recursos de strings que traduzcan el texto
en su interfaz de usuario. Para proporcionar estos recursos diferentes para distintas
configuraciones de dispositivos, debes proporcionar recursos alternativos, además de tus
recursos predeterminados
32