Origen de Android Studio

Android Studio


Es el entorno de desarrollo integrado oficial para la plataforma Android. Fue anunciado el 16 de mayo de 2013 en la conferencia Google I/O, y reemplazó a Eclipse como el IDE oficial para el desarrollo de aplicaciones para Android. La primera versión estable fue publicada en diciembre de 2014.
Está basado en el software IntelliJ IDEA de JetBrains, y es publicado de forma gratuita a través de la Licencia Apache 2.0. Está disponible para las plataformas Microsoft Windows, Mac OS X y GNU/Linux.
Android Studio estaba en etapa de vista previa de acceso temprano a partir de la versión 0.1 en mayo de 2013, y luego entró en etapa beta a partir de la versión 0.8 que fue lanzado en junio de 2014.
La primera compilación estable fue lanzada en diciembre de 2014, a partir de la versión 1.0.
Android Studio está diseñado específicamente para el desarrollo de Android.

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 . Además del potente editor de códigos y las herramientas para desarrolladores de IntelliJ, Android Studio ofrece aún más funciones que aumentan tu productividad durante la compilación de apps para Android, como las siguientes:
Sistema de compilación flexible basado en Gradle.
Un emulador rápido con varias funciones.
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.
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, uso, compatibilidad de versión, etc.


Compatibilidad con C++ y NDK
Soporte integrado para Google Cloud Platform, que facilita la integración de Google Cloud Messaging y App Engine.


En esta página encontrarás una introducción a las funciones básicas de Android Studio. Para acceder a un resumen de los últimos cambios.

Estructura de Proyectos Android



Para crear un nuevo proyecto ejecutaremos Android Studio y desde la pantalla de bienvenida pulsaremos la opción “Start a new Android Studio project” para iniciar el asistente de creación de un nuevo proyecto.





Si ya habíamos abierto anteriormente Android Studio es posible que se abra directamente la aplicación principal en vez de la pantalla de bienvenida. En ese caso accederemos al menú “File / New project…” para crear el nuevo proyecto.


El asistente de creación del proyecto nos guiará por las distintas opciones de creación y configuración de un nuevo proyecto Android.


En la primera pantalla indicaremos, por este orden, el nombre de la aplicación, el dominio de la compañía, y la ruta donde crear el projecto. El segundo de los datos indicados tan sólo se utilizará como paquete de nuestras clases java. Así, si por ejemplo indicamos como en mi caso android.sgoliver.net, el paquete java principal utilizado para mis clases será net.sgoliver.android.holausuario. En tu caso puedes utilizar cualquier otro dominio.





En la siguiente pantalla del asistente configuraremos las plataformas y APIs que va a utilizar nuestra aplicación. Nosotros nos centraremos en aplicaciones para teléfonos y tablets, en cuyo caso tan sólo tendremos que seleccionar la API mínima (es decir, la versión mínima de Android) que soportará la aplicación. Como ya indiqué en el capítulo sobre la instalación del entorno de desarrollo, en este curso nos centraremos en Android 4.0.3 como versión mínima (API 15).





La versión mínima que seleccionemos en esta pantalla implicará que nuestra aplicación se pueda ejecutar en más o menos dispositivos. De esta forma, cuanto menor sea ésta, a más dispositivos podrá llegar nuestra aplicación, pero más complicado será conseguir que se ejecute correctamente en todas las versiones de Android. Para hacernos una idea del número de dispositivos que cubrimos con cada versión podemos pulsar sobre el enlace “Help me choose”, que mostrará el porcentaje de dispositivos que ejecutan actualmente cada versión de Android. Por ejemplo, en el momento de escribir este artículo, si seleccionamos como API mínima la 15 conseguiríamos cubrir un 94,0% de los dispositivos actuales. Como información adicional, si pulsamos sobre cada versión de Android en esta pantalla podremos ver una lista de las novedades introducidas por dicha versión.





En la siguiente pantalla del asistente elegiremos el tipo de actividad principal de la aplicación. Entenderemos por ahora que una actividad es una “ventana” o “pantalla” de la aplicación. Para empezar seleccionaremos Empty Activity, que es el tipo más sencillo.





Por último, en el siguiente paso del asistente indicaremos los datos asociados a esta actividad principal que acabamos de elegir, indicando el nombre de su clase java asociada (Activity Name) y el nombre de su layout xml (algo así como la interfaz gráfica de la actividad, lo veremos más adelante). No nos preocuparemos mucho por ahora de todos estos datos por lo que podemos dejar todos los valores por defecto. Más adelante en el curso explicaremos cómo y para qué utilizar estos elementos.





Una vez configurado todo pulsamos el botón Finish y Android Studio creará por nosotros toda la estructura del proyecto y los elementos indispensables que debe contener. Si todo va bien aparecerá la pantalla principal de Android Studio con el nuevo proyecto creado.





En ocasiones Android Studio no realiza correctamente esta primera carga del proyecto y es posible que os encontréis con un error del tipo “Rendering Problems…“. Para solucionarlo no tenéis más que cerrar la ventana del editor gráfico y volverla a abrir pulsando sobre el fichero “activity_main.xml” que podéis ver en el explorador de la parte izquierda.


En la parte izquierda, podemos observar todos los elementos creados inicialmente para el nuevo proyecto Android, sin embargo por defecto los vemos de una forma un tanto peculiar que podría llevarnos a confusión. Para entender mejor la estructura del proyecto vamos a cambiar momentáneamente la forma en la que Android Studio nos la muestra. Para ello, pulsaremos sobre la lista desplegable situada en la parte superior izquierda, y cambiaremos la vista de proyecto al modo “Project”.





Tras hacer esto, la estructura del proyecto cambia un poco de aspecto y pasa a ser como se observa en la siguiente imagen:





En los siguientes apartados describiremos los elementos principales de esta estructura.


Lo primero que debemos distinguir son los conceptos de proyecto y módulo. La entidad proyecto es única, y engloba a todos los demás elementos. Dentro de un proyecto podemos incluir varios módulos, que pueden representar aplicaciones distintas, versiones diferentes de una misma aplicación, o distintos componentes de un sistema (aplicación móvil, aplicación servidor, librerías, …). En la mayoría de los casos, trabajaremos con un proyecto que contendrá un sólo módulo correspondiente a nuestra aplicación principal. Por ejemplo en este caso que estamos creando tenemos el proyecto “android-hola-usuario” que contiene al módulo “app” que contendrá todo el software de la aplicación de ejemplo.





A continuación describiremos los contenidos principales de nuestro módulo principal.


Carpeta /app/src/main/java


Esta carpeta contendrá todo el código fuente de la aplicación, clases auxiliares, etc. Inicialmente, Android Studio creará por nosotros el código básico de la pantalla (actividad o activity) principal de la aplicación, que recordemos que en nuestro caso era MainActivity, y siempre bajo la estructura del paquete java definido durante la creación del proyecto.





Carpeta /app/src/main/res/


Contiene todos los ficheros de recursos necesarios para el proyecto: imágenes, layouts, cadenas de texto, etc. Los diferentes tipos de recursos se pueden distribuir entre las siguientes subcarpetas:



Carpeta

Descripción


/res/drawable/

Contiene las imágenes y otros elementos gráficos usados por la aplicación. Para poder definir diferentes recursos dependiendo de la resolución y densidad de la pantalla del dispositivo se suele dividir en varias subcarpetas:

/drawable (recursos independientes de la densidad)
/drawable-ldpi (densidad baja)
/drawable-mdpi (densidad media)
/drawable-hdpi (densidad alta)
/drawable-xhdpi (densidad muy alta)
/drawable-xxhdpi (densidad muy muy alta :)


/res/mipmap/

Contiene los iconos de lanzamiento de la aplicación (el icono que aparecerá en el menú de aplicaciones del dispositivo) para las distintas densidades de pantalla existentes. Al igual que en el caso de las carpetas /drawable, se dividirá en varias subcarpetas dependiendo de la densidad de pantalla:

/mipmap-mdpi
/mipmap-hdpi
/mipmap-xhdpi



/res/layout/

Contiene los ficheros de definición XML de las diferentes pantallas de la interfaz gráfica. Para definir distintos layouts dependiendo de la orientación del dispositivo se puede dividir también en subcarpetas:

/layout (vertical)
/layout-land (horizontal)


/res/anim/

/res/animator/

Contienen la definición de las animaciones utilizadas por la aplicación.


/res/color/

Contiene ficheros XML de definición de listas de colores según estado.


/res/menu/

Contiene la definición XML de los menús de la aplicación.


/res/xml/

Contiene otros ficheros XML de datos utilizados por la aplicación.


/res/raw/

Contiene recursos adicionales, normalmente en formato distinto a XML, que no se incluyan en el resto de carpetas de recursos.


/res/values/

Contiene otros ficheros XML de recursos de la aplicación, como por ejemplo cadenas de texto (strings.xml), estilos (styles.xml), colores (colors.xml), arrays de valores (arrays.xml), tamaños (dimens.xml), etc.



No todas estas carpetas tienen por qué aparecer en cada proyecto Android, tan sólo las que se necesiten. Iremos viendo durante el curso qué tipo de elementos se pueden incluir en cada una de ellas y cómo se utilizan.


Como ejemplo, para un proyecto nuevo Android como el que hemos creado, tendremos por defecto los siguientes recursos para la aplicación:





Como se puede observar, existen algunas carpetas en cuyo nombre se incluye un sufijo adicional, como por ejemplo “values-w820dp”. Estos, y otros sufijos, se emplean para definir recursos independientes para determinados dispositivos según sus características. De esta forma, por ejemplo, los recursos incluidos en la carpeta “values-w820dp” se aplicarían sólo a pantallas con más de 820dp de ancho, o los incluidos en una carpeta llamada “values-v11” se aplicarían tan sólo a dispositivos cuya versión de Android sea la 3.0 (API 11) o superior. Al igual que estos sufijos “-w” y “–v” existen otros muchos para referirse a otras características del terminal, puede consultarse la lista completa en la documentación oficial del Android.


Entre los recursos creados por defecto cabe destacar los layouts, en nuestro caso sólo tendremos por ahora el llamado “activity_main.xml”, que contienen la definición de la interfaz gráfica de la pantalla principal de la aplicación. Si hacemos doble clic sobre este fichero Android Studio nos mostrará esta interfaz en su editor gráfico, y como podremos comprobar, en principio contiene tan sólo una etiqueta de texto con el mensaje “Hello World!”.





Pulsando sobre las pestañas inferiores “Design” y “Text” podremos alternar entre el editor gráfico (tipo arrastrar-y-soltar), mostrado en la imagen anterior, y el editor XML que se muestra en la imagen siguiente:





Durante el curso no utilizaremos demasiado el editor gráfico, sino que modificaremos la interfaz de nuestras pantallas manipulando directamente su fichero XML asociado. Esto en principio puede parecer mucho más complicado que utilizar el editor gráfico [no es nada complicado en realidad], pero nos permitirá aprender muchos de los entresijos de Android más rápidamente.


Fichero /app/src/main/AndroidManifest.xml


Contiene la definición en XML de muchos de los aspectos principales de la aplicación, como por ejemplo su identificación (nombre, icono, …), sus componentes (pantallas, servicios, …), o los permisos necesarios para su ejecución. Veremos más adelante más detalles de este fichero.


Fichero /app/build.gradle


Contiene información necesaria para la compilación del proyecto, por ejemplo la versión del SDK de Android utilizada para compilar, la mínima versión de Android que soportará la aplicación, referencias a las librerías externas utilizadas, etc. Más adelante veremos también más detalles de este fichero.


En un proyecto pueden existir varios ficheros build.gradle, para definir determinados parámetros a distintos niveles. Por ejemplo, en nuestro proyecto podemos ver que existe un fichero build.gradle a nivel de proyecto, y otro a nivel de módulo dentro de la carpeta /app. El primero de ellos definirá parámetros globales a todos los módulos del proyecto, y el segundo sólo tendrá efecto para cada módulo en particular.


Carpeta /app/libs


Puede contener las librerías java externas (ficheros .jar) que utilice nuestra aplicación. Normalmente no incluiremos directamente aquí ninguna librería, sino que haremos referencia a ellas en el fichero build.gradle descrito en el punto anterior, de forma que entren en el proceso de compilación de nuestra aplicación. Veremos algún ejemplo más adelante.


Carpeta /app/build/


Contiene una serie de elementos de código generados automáticamente al compilar el proyecto. Cada vez que compilamos nuestro proyecto, la maquinaria de compilación de Android genera por nosotros una serie de ficheros fuente java dirigidos, entre otras muchas cosas, al control de los recursos de la aplicación. Importante: dado que estos ficheros se generan automáticamente tras cada compilación del proyecto es importante que no se modifiquen manualmente bajo ninguna circunstancia.





A destacar sobre todo el fichero que aparece desplegado en la imagen anterior, llamado “R.java”, donde se define la clase R. Esta clase R contendrá en todo momento una serie de constantes con los identificadores (ID) de todos los recursos de la aplicación incluidos en la carpeta /app/src/main/res/, de forma que podamos acceder fácilmente a estos recursos desde nuestro código java a través de dicho dato. Así, por ejemplo, la constante R.layout.activity_main contendrá el ID del layout “activity_main.xml” contenido en la carpeta /app/src/main/res/layout/.


Y con esto todos los elementos principales de un proyecto Android. No pierdas de vista este proyecto de ejemplo que hemos creado ya que lo utilizaremos en breve como base para crear nuestra primera aplicación. Pero antes, en el siguiente apartado hablaremos de los componentes software principales con los que podemos construir una aplicación Android

Como Crear Proyecto de Android Studio

Una vez que iniciamos el entorno del Android Studio aparece el diálogo principal:



Elegimos la opción "Start a New Android Studio project"

Ahora aparecerán una serie de ventanas para configurar el proyecto, el primer diálogo debemos especificar el Nombre de la aplicación, la url de nuestra empresa (que será el nombre del paquete que asigna java para los archivos fuentes) y la ubicación en el disco de nuestro proyecto:


En el segundo diálogo procedemos a especificar la versión de Android mínima donde se ejecutará la
aplicación que desarrollemos (dejaremos la versión 4.0.3):


 


El tercer diálogo especificamos el esqueleto básico de nuestra aplicación, seleccionaremos "Empty Activity" si tenemos el Android Studio 2.2:




Finalmente el último diálogo tenemos que indicar el nombre de la ventana principal de la aplicación (Activity Name) y otros datos más que veremos a lo largo del curso (dejaremos con los nombres por  defecto que propone Android Studio):




Tenemos finalmente creado nuestro primer proyecto en Android Studio y podemos ahora ver el entorno del Android Studio para codificar la aplicación:


El Android Studio nos genera todos los directorios y archivos básicos para iniciar nuestro proyecto, los podemos ver en el lado izquierdo del entorno de desarrollo:


No haremos en este momento un análisis del significado y objetivo de cada uno de estas secciones y archivos generados, sino a medida que avancemos con este curso iremos viendo en forma puntual y profunda.

La interfaz visual de nuestro programa para Android se almacena en un archivo XML en la carpeta res, subcarpeta layout y el archivo se llama activity_main.xml. En esta carpeta tenemos creada nuestra primer pantalla.

Al seleccionar este archivo el Android Studio nos permite visualizar el contenido en "Design" o "Text" (es decir en vista de diseño o en vista de código):

Vista de diseño:


A partir de la versión 2.2 del Android Studio tenemos la vista "blueprint" que nos nuestra una interfaz simplificada muy útil cuando tenemos pantallas complejas que veremos más adelante. Podemos ver solo la vista de diseño o "blueprint" seleccionando alguno de los botones que aparecen aquí:



Vista de código:


El Android Studio ya insertó un control de tipo RelativeLayout que permite ingresar controles visuales alineados a los bordes y a otros controles que haya en la ventana (más adelante analizaremos este layout)

Ya veremos que podemos modificar todo este archivo para que se adapte a la aplicación que queremos desarrollar.

A lo largo de este curso iremos viendo los objetivos de cada una de las secciones que cuenta el Android Studio para implementar la interfaz, codificar en java las funcionalidades de la aplicación etc.

Antes de probar la aplicación en el emulador de un dispositivo Android procederemos a hacer un pequeño cambio a la interfaz que aparece en el celular: borraremos la label que dice "Hello World" (simplemente seleccionando con el mouse dicho elemento y presionando la tecla delete, podemos seleccionarla de cualquiera de las dos interfaces "Design" o "blueprint") y de la "Palette" arrastraremos un "Button" al centro del celular y en la ventana "Properties" estando seleccionado el "Button" cambiaremos la propiedad "text" por la cadena "Hola Mundo":



Para ejecutar la aplicación presionamos el triángulo verde o seleccionamos del menú de opciones "Run -> Run app" y en este diálogo procedemos a dejar seleccionado el emulador por defecto que aparece (Nexus 5X) y presionamos el botón "OK" (si no tiene ningún emulador puede crear uno):



Luego de un rato aparecerá el emulador de Android en pantalla (el arranque del emulador puede llevar más de un minuto), es IMPORTANTE tener en cuenta que una vez que el emulador se ha arrancado no lo debemos cerrar cada vez que hacemos cambios en nuestra aplicación o codificamos otras aplicaciones, sino que volvemos a ejecutar la aplicación con los cambios y al estar el emulador corriendo el tiempo que tarda hasta que aparece nuestro programa en el emulador es muy reducido.

Cuando terminó de cargarse el emulador debe aparecer nuestra aplicación ejecutándose:

Herramientas de Android Studio


El entorno en el que vamos a programar nuestras aplicaciones Android es Android Studio, y es el único, indiscutible mente, para poder hacerlo. Usa Android Studio y moléstate en intentar averiguar cómo hacer uso de las herramientas que nos proporciona. Es sencillo, cuanto más uso hagamos de estas, más ágil será nuestro desarrollo, y según vayamos avanzando en esta misión, nos daremos cuenta de que, en algún momento pasado, estas podrían habernos ayudado mucho con algún problema que hubiéramos querido resolver.

Además de preocuparnos por realizar una programación de calidad, debemos buscar agilidad a la hora de desarrollar, ya que la velocidad en la que se desarrolla un proyecto es un factor casi tan importante como que este mismo funcione. Por eso, nombraremos algunas de las herramientas más útiles de Android Studio, que os ayudarán a agilizar y a facilitar vuestro desarrollo.
Herramientas de Android Studio
SDK Manager. Con este gestor podrás instalar y gestionar los kits de desarrollo, las librerías de soporte, las herramientas de desarrollo y muchas más librerías y dependencias que nos proporciona Google para que podamos desarrollar con Android en diferentes dispositivos.
AVD Manager. Es un gestor de dispositivos virtuales. Con él podremos simular en nuestro ordenador cualquier dispositivo Android y personalizarlo al detalle según nuestras necesidades. Está completamente integrado con Android Studio y podemos probar diferentes situaciones en distintos dispositivos, además de analizar y monitorizar lo que sucede o depurar nuestro código en ejecución. Ha mejorado muchísimo últimamente e, incluso, están añadiendo algunas herramientas; como la actualización en tiempo de simulación de nuestro código, manteniendo el estado de nuestra aplicación al probar el cambio (personalmente, esto aún no funciona muy bien pero, si consiguen hacerlo estable, puede ser una herramienta más que útil).
Android device monitor. Es una herramienta que nos permite analizar todos los elementos de nuestro dispositivo en detalle, mientras este se está ejecutando. Es algo pesado pero, si tenemos un ordenador potente, puede ser bastante útil, sobre todo a la hora de ayudarnos a resolver problemas de vista.
Logcat. Es, simplemente, un monitor donde se recogen todos los mensajes que lanza Android o nuestro código y que nos informa de qué procesos se están ejecutando en cada momento. Tiene diferentes niveles que ejercen como filtro de lo que se informa.
Monitors. Podemos visualizar de forma gráfica el estado de la memoria, de la CPU, de la red o de la GPU, haciendo uso del monitor de Android Studio. Es muy buena herramienta para analizar si los algoritmos que utilizamos en nuestras funciones se hacen de forma óptima; si estamos haciendo un uso lógico de los recursos de nuestro dispositivo; o si, por el contrario, lo estamos saturando solo con nuestra aplicación.
Sistema de control de versiones. El propio Android Studio nos provee de una herramienta que se encarga de controlar nuestras versiones. Nos permite realizar un montón de operaciones de git y resolver conflictos. Pero si por algo recomiendo utilizarlo antes que otro VCS para desarrollar en Android es porque, al hacer commit, el propio Android Studio lo revisará y lo analizará; y, antes de guardar los cambios, realizará modificaciones de diseño en nuestro código, eliminará imports que no usemos, alineará correctamente nuestras líneas, cambiará de posición los atributos o métodos de una clase para cumplir con los estándares, y algunas cosas más.
Plugins. Además de todas las herramientas que ya vienen por defecto en nuestro entorno, podemos instalar plugins que la gente hace, ya sea para respaldar alguna librería o herramienta que ellos mismos han diseñado o para facilitarnos tareas que se tienen que realizar en el propio desarrollo.
Gestor de imágenes. Una de las tareas más aburridas en Android es el hecho de tener una copia en diferentes tamaños y resoluciones para cada tipo de pantallas. En este sentido, Android Studio tiene una herramienta que te hace el trabajo sucio: simplemente le indicas la imagen y ella las recorta y las distribuye en sus correspondientes carpetas. Además, tiene algunas otras, como el editor de imágenes 9-PATCH, que te permite definir las partes de la imagen que van a crecer.

Como Instalar Android Studio en Windows



CÓMO INSTALAR ANDROID STUDIO EN WINDOWS



Android Studio es la herramienta desarrollada por Google especialmente para los desarrolladores de aplicaciones de Android. Gracias a ella es posible programar dichas aplicaciones dentro de un entorno especializado a la vez que nos brinda de otra serie de posibilidades que abordaremos más adelante como por ejemplo la posibilidad de crear máquinas virtuales y emuladores de Android para poder disponer de este sistema operativo desde nuestro ordenador.

Para poder utilizar las ventajas del Android Studio en nuestro ordenador lo primero que debemos hacer es instalar el entorno de desarrollo así como el SDK que nos permite hacer uso de las funciones de Android en nuestro PC y poder programar para este sistema operativo.

Para ello lo primero que debemos hacer es descargar la versión más reciente de Android Studio desde la página web principal de desarrolladores de Android.



Una vez descargado el instalador correspondiente a nuestro sistema operativo (por defecto la propia web detectará nuestro sistema operativo y nos ofrecerá la mejor versión acorde a él) lo ejecutamos en nuestro equipo para comenzar con la instalación.

Lo primero que veremos será el asistente de instalación de Android Studio.



El proceso de instalación es muy sencillo, como prácticamente cualquier otra aplicación para nuestro sistema operativo, aunque de todas formas vamos a analizar el proceso paso a paso. Seguimos con el asistente y nos preguntará por los componentes que queremos instalar de esta suite de programación.



Lo más recomendable es instalar todos para tener todas las funciones disponibles en caso de que queramos utilizarlas. Seguimos con el asistente y llegaremos a la licencia y a los términos de uso, que debemos aceptar para poder seguir con la instalación.



En el siguiente paso debemos elegir la ruta donde instalaremos nuestro Android Studio. Debemos elegir una ruta para el programa en sí y otra diferente para instalar el SDK, con bastante espacio disponible ya que las descargas y actualizaciones de los componentes de este suelen ocupar bastante espacio.



En el siguiente paso el asistente nos preguntará por la cantidad de memoria RAM que queremos asignar para el uso de máquinas virtuales y emuladores de Android. Cuanta mayor memoria mejor rendimiento tendrán estas, aunque debemos tener en cuenta que ni ningún smartphone cuenta con más de 2GB de memoria (de momento) y que el sistema operativo y las demás aplicaciones de nuestro ordenador también necesitan memoria, por lo que la cantidad que nos aparezca como recomendada será la que debemos dejar.



Con esto comenzará ya la copia de los archivos al disco duro. Este proceso puede tardar más o menos tiempo según la velocidad de nuestro sistema.





Una vez finalice la instalación Android Studio se conectará a Internet y descargará los elementos del SDK necesarios para funcionar correctamente.





Una vez finalice esta copia de datos ya estaremos listos para utilizar nuestro entorno de programación de Android.