2. Conoce Android Studio
•Android Studio es el entorno de desarrollo integrado
(IDE) oficial para el desarrollo de aplicaciones para
Android y se basa en IntelliJ IDEA.
•Instant run (compila sólo los cambios)
•Editor de código "inteligente”.
•Diseño de equipos. (plugins git p.e)
•Desarrollo para todos los dispositivos
android. (tablets, wear, tv, etc.
3. Conoce Android Studio
• Un sistema de compilación basado en Gradle flexible
• Un emulador rápido con varias funciones
• Un entorno unificado para realizar desarrollos para todos los dispositivos
Android
• Instant Run para aplicar cambios mientras tu app se ejecuta.
• Integración de plantillas de código y GitHub para ayudarte a compilar
funciones comunes de las apps e importar ejemplos de código
• Gran cantidad de herramientas y frameworks de prueba
• Herramientas Lint para detectar problemas de rendimiento, usabilidad,
compatibilidad de versión, etc.
• Compatibilidad con C++ y NDK
• Soporte incorporado para Google Cloud Platform, lo que facilita la
integración de Google Cloud Messaging y App Engine.
4. La barra de
herramientas te permite
realizar una gran
variedad de acciones,
como la ejecución de tu
app y el inicio de
herramientas de
Android.
5. La barra de
navegación te ayuda a
explorar tu proyecto y
abrir archivos para editar.
Proporciona una vista más
compacta de la estructura
visible en la
ventana Project.
6. 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.
7. La barra de la ventana de
herramientas se extiende
alrededor de la parte
externa de la ventana del
IDE y contiene los botones
que te permiten expandir
o contraer ventanas de
herramientas individuales.
8. Las ventanas de
herramientas te permiten
acceder a tareas
específicas, como la
administración de
proyectos, las búsquedas,
los controles de versión,
etc. Puedes expandirlas y
contraerlas.
9. En la barra de estado, se
muestra el estado de tu
proyecto y del IDE en sí,
como también cualquier
advertencia o mensaje.
10. Ventanas de herramientas
• Android Studio sigue tu contexto y te ofrece automáticamente
ventanas de herramientas relevantes mientras trabajas. 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.
• Para expandir o contraer una ventana de herramientas, haz clic en el
nombre de la herramienta, en la barra de la ventana de herramientas.
• Para volver al diseño predeterminado actual de la ventana de
herramientas, haz clic en Window > Restore Default Layout o
personaliza tu diseño predeterminado haciendo clic en Window >
Store Current Layout as Default.
11. Ventanas de herramientas
•Para mostrar u ocultar la barra de la
ventana de herramientas completa, haz clic
en el ícono de ventana en la esquina
inferior izquierda de la ventana de Android
Studio.
•Si quieres ocultar todas las barras de
herramientas, ventanas de herramientas y
pestañas del editor, haz clic en View >
Enter Distraction Free Mode.
12. Compleción de código
Tipo Descripción Windows y Linux Mac
Compleción básica Muestra sugerencias
básicas para variables,
tipos, métodos y
expresiones, entre otros. Si
llamas a la compleción
básica dos veces seguidas,
verás más resultados
Control+Espaci
o
Control+Espacio
Compleción
inteligente
Muestra opciones
relevantes en función del
contexto. La compleción
inteligente reconoce el tipo
y los flujos de datos
previstos.
Control+Mayús
+Espacio
Control+Mayús+Espa
cio
Compleción de Completa el enunciado Control+Mayús Mayús+Comando+En
13. Estilo y formato
• 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.
• El IDE aplica formato automáticamente mientras trabajas,
también puedes llamar explícitamente a la acción Reformat
Code presionando Control+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).
14. Sistema de compilación de Gradle
• El sistema de compilación Gradle 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:
• Personalizar, configurar y extender el proceso de compilación;
• Crear múltiples APK para tu app, con diferentes funciones utilizando el
mismo proyecto y los mismos módulos;
• Volver a usar códigos y recursos entre conjuntos de archivos de origen.
15. Variantes de compilación
El sistema de compilación
puede ayudarte a crear
diferentes versiones de la
misma aplicación a partir
de un solo proyecto.
Puedes manejar una
versión gratuita o una
versión paga de tu app, o
múltiples APK para
diferentes configuraciones
16. Otras características.
• Divisiones de APK. Te permite crear varios APK en función de la
densidad de la pantalla o ABI.
• Reducción de recursos. elimina automáticamente los recursos sin
usar del paquete de tu app y de las dependencias de bibliotecas.
• Administración de dependencia. Gradle se ocupa de buscar tus
dependencias y hacer que estén disponibles en tu compilación.
• 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 variable.
• 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
17. Estructura del proyecto
• Un proyecto Android contiene uno o más
módulos como:
• módulos de apps para Android
• módulos de bibliotecas
• módulos de Google App Engine
• Cada Modulo contiene las siguientes
carpetas:
• manifests: contiene el
archivo AndroidManifest.xml.
• java: contiene los archivos de código fuente de
Java, incluido el código de prueba JUnit.
• res: Contiene todos los recursos, como diseños
XML, cadenas de IU e imágenes de mapa de
bits.
18. Vista de proyectos de Android
• Al seleccionar la vista Project, puedes ver más
archivos y directorios. Los más importantes son
los siguientes:
• module-name/
• build/ Contiene resultados de compilación
• libs/ Contiene bibliotecas privadas.
• src/ Contiene todos los archivos de código y
recursos para el módulo en los siguientes
subdirectorios:
• androidTest/ Contiene código para las pruebas de
instrumentación que se ejecutan en un dispositivo
Android
• main/ Contiene los archivos de conjunto de origen
“principales”: el código y los recursos de Android
compartidos por todas las variantes de compilación
19. Vista de proyectos de Android (main)
• main/Contiene los archivos de conjunto de origen
“principales”: el código y los recursos de Android
compartidos por todas las variantes de compilación.
• AndroidManifest.xml. Describe la naturaleza de la
aplicación y cada uno de sus componentes.
• Java/Contiene fuentes de código Java.
• jni/ Contiene código nativo en el cual se usa la interfaz
nativa de Java (JNI)
• gen/ Contiene los archivos Java generados por Android
Studio, como tu archivo R.java y las interfaces creadas
desde los archivos AIDL.
• res/ Contiene recursos de aplicación, como archivos de
elementos de diseño, archivos de diseño y strings de IU
• assets/ Contiene un archivo que se debe compilar en un
archivo .apk tal como está.
20. Agregar un componente de proyecto
•La lista de plantillas
proporcionada en Android
Studio se amplía
constantemente. Android
Studio agrupa plantillas
según el tipo de
componentes que agregan,
como una Actividad o un
archivo XML
21. Actividad básica
• Esta plantilla crea una app simple
con una barra de app y un botón de
acción flotante. Funciona como
punto de partida para tu proyecto
al proporcionar componentes de IU
de uso común.
• En esta plantilla se incluye lo
siguiente:
• AppBar;
• FloatingActionButton;
• dos archivos de diseño: uno para la
actividad y uno para separar el
contenido de texto.
22. Actividad vacia
• Esta plantilla crea una actividad
vacía y un archivo de diseño
único con contenido de texto de
ejemplo. Te permite empezar de
cero cuando compilas el módulo
o la actividad de tu app.
• En esta plantilla se incluye lo
siguiente:
• archivo de diseño único con
contenido de texto.
23. Actividad con pantalla completa
• Esta plantilla crea una app que alterna entre
una vista de pantalla completa primaria y
una vista con controles de una interfaz de
usuario estándar (IU).
• En esta plantilla se incluye lo siguiente:
• una implementación táctil del receptor para
ocultar los elementos de la vista estándar;
• un botón que aparece en la vista estándar y no
realiza acciones;
• AppBar para la vista estándar;
• un archivo de diseño único con la vista de pantalla
completa y un diseño de marco para elementos
de vista estándar.
24. Actividad de acceso
• Esta plantilla crea una pantalla de acceso estándar. En la
interfaz de usuario se incluyen los campos de correo
electrónico y contraseña, y un botón de inicio de sesión.
Se usa con mayor frecuencia como plantilla de actividad
que como plantilla de módulo de app.
• En esta plantilla se incluye lo siguiente:
• Implementación de AsyncTask para manejar operaciones
de red de modo separado desde el subproceso principal
de interfaz de usuario.
• Indicador de progreso durante las operaciones de red.
• Archivo de diseño único con la IU de acceso
recomendada:
• campos de entrada de correo electrónico y contraseña;
• botón de inicio de sesión.
25. Flujo maestro y de detalles
• Esta plantilla crea una app que tiene una
visualización de una lista de elementos y una
visualización de los detalles de un elemento
individual. Al hacer clic en un elemento de la
pantalla de lista, se abre una pantalla con los
detalles del elemento.
• En esta plantilla se incluye lo siguiente:
• actividad que representa la lista de elementos;
• actividad y opciones de fragmentos para mostrar los
detalles de un elemento individual;
• FloatingActionButton en cada pantalla;
• barra de herramientas contráctil para la pantalla de
detalles del elemento;
• archivos de diseño de recursos alternativos para
diferentes configuraciones de dispositivos.
26. Actividad del panel lateral de navegación
• Esta plantilla crea una actividad básica con un
menú del panel lateral de navegación. La barra de
navegación se expande de la izquierda a la
derecha de tu app y se suma a la barra de app
regular.
• En esta plantilla se incluye lo siguiente:
• implementación del panel lateral de navegación con un
elemento DrawerLayout, los controladores de eventos
correspondientes y opciones de menú de ejemplo;
• AppBar;
• FloatingActionButton;
• archivos de diseño para el panel lateral de navegación y
el encabezado de este último, además de aquellos de la
plantilla Actividad básica.
27. Actividad de desplazamiento
• Esta plantilla crea una app con una barra de
herramientas de contracción y una vista de
desplazamiento para contenido de texto largo.
Mientras te desplazas hacia abajo en la página, la
barra de herramientas, que puede servir como un
encabezado, se condensa automáticamente y el
botón de acción flotante desaparece.
• En esta plantilla se incluye lo siguiente:
• Barra de herramientas contráctil en lugar de la AppBar
regular;
• FloatingActionButton;
• dos archivos de diseño: uno para la actividad y uno para
separar el contenido de texto en una NestedScrollView.
28. Actividad de configuración
• Esta plantilla crea una actividad que
muestra las
preferencias o configuraciones del usuario
para una app. Extiende la clase
PreferenceActivity y se usa con mayor
frecuencia como plantilla de actividad que
como plantilla de módulo de app.
• En esta plantilla se incluye lo siguiente:
• actividad que extiende PreferenceActivity;
• archivos XML (en el directorio res/xml/ de tu
proyecto) para definir las configuraciones que
se muestran.
29. Actividad con pestañas
• Esta plantilla crea una app con varias
secciones, navegación por deslizamiento y
una barra de app. Las secciones se definen
como fragmentos entre los que puedes
deslizarte de izquierda a derecha para
navegar.
• En esta plantilla se incluye lo siguiente:
• AppBar;
• adaptador que extiende FragmentPagerAdapter y
crea un fragmento para cada sección;
• instancia ViewPager, un administrador de diseño
para el deslizamiento entre secciones;
• dos archivos de diseño: uno para la actividad y uno
para los fragmentos individuales.
30. Aspectos Fundamentales de la aplicación
• Las aplicaciones de Android se escriben en lenguaje de
programación Java. Las herramientas de Android SDK compilan tu
código, junto con los archivos de recursos y datos, en un APK:
un paquete de Android, que es un archivo de almacenamiento con
el sufijo .apk.
• Un archivo de APK incluye todos los contenidos de una aplicación
de Android y es el archivo que usan los dispositivos con tecnología
Android para instalar la aplicación.
31. Aspectos Fundamentales de la aplicación
• El sistema operativo Android es un sistema Linux multiusuario en el que cada
aplicación es un usuario diferente.
• De forma predeterminada, el sistema le asigna a cada aplicación una ID de
usuario de Linux única (solo el sistema utiliza la ID y la aplicación la desconoce).
El sistema establece permisos para todos los archivos.
• Cada proceso tiene su propio equipo virtual (EV), por lo que el código de una
aplicación se ejecuta de forma independiente de otras aplicaciones.
• De forma predeterminada, cada aplicación ejecuta su proceso de Linux propio.
Android inicia el proceso cuando se requiere la ejecución de alguno de los
componentes de la aplicación, luego lo cierra cuando el proceso ya no es
necesario o cuando el sistema debe recuperar memoria para otras aplicaciones.
32. El principio de mínimo privilegio
•De forma predeterminada, cada aplicación
tiene acceso solo a los componentes que
necesita para llevar a cabo su trabajo y nada
más. Esto crea un entorno muy seguro en el
que una aplicación no puede acceder a
partes del sistema para las que no tiene
permiso.
33. El principio de mínimo privilegio
• Es posible disponer que dos aplicaciones compartan la misma ID
de usuario de Linux para que puedan acceder a los archivos de la
otra. Para conservar recursos del sistema, las aplicaciones con la
misma ID de usuario también pueden disponer la ejecución en el
mismo proceso de Linux y compartir el mismo EV (las aplicaciones
también deben estar firmadas con el mismo certificado).
• Una aplicación puede solicitar permiso para acceder a datos del
dispositivo como los contactos de un usuario, los mensajes de
texto, el dispositivo de almacenamiento (tarjeta SD), la cámara,
Bluetooth y más. El usuario debe garantizar de manera explícita
estos permisos