Transparencias de intro a Android y el entorno de desarrollo

42
Programación en Android LSUB, GSYC, URJC

Transcript of Transparencias de intro a Android y el entorno de desarrollo

Page 1: Transparencias de intro a Android y el entorno de desarrollo

Programación en Android

LSUB, GSYC, URJC

Page 2: Transparencias de intro a Android y el entorno de desarrollo

Introducción

AndroidStudio

Teléfonoo

Emulador

Page 3: Transparencias de intro a Android y el entorno de desarrollo

Introducción

Dalvik JVM

Linux kernel

SQLite WebKit OpenGL...

ActivityMgr

DialerApp!

Dispositivo móvil

Page 4: Transparencias de intro a Android y el entorno de desarrollo

Aplicaciones

• Centradas en el interfaz de usuario

• Para múltiples dispositivos

• Básicamente componentes en Java empaquetados con descripciones en XML

Page 5: Transparencias de intro a Android y el entorno de desarrollo

Aplicaciones

• Usan las abstracciones de Android

• Activities

• Intents

• Fragments

• ....

• Los veremos al irlos usando

Page 6: Transparencias de intro a Android y el entorno de desarrollo

Aplicaciones• Activity: pantalla (UI) y unidad de ejecución

• Fragment: trozo de pantalla, mini-activity

• Service: activity sin interfaz de usuario

• ContentProvider: abstracción de datos

• BroadcastListener: escucha avisos

• Bundle: paquete de datos

• Iremos viendo todos

Page 7: Transparencias de intro a Android y el entorno de desarrollo

Ayuda

• Todo lo que necesitas está en el web.

•http://developer.android.com

• Tutoriales

• Javadocs

•http://www.coreservlets.com

•Excelente tutorial

Page 8: Transparencias de intro a Android y el entorno de desarrollo

Entorno de desarrollo

• Java 8 (en muchos sistemas jre incluido con el Android Studio)

• Android Studio

• Emuladores

• Sobre HW.

Page 9: Transparencias de intro a Android y el entorno de desarrollo

Entorno de desarrollo

• Instalación: Paso 1.

• Actualiza tu Java a Java 8 si no lo está ya (puede no ser necesario, hacer en demanda)

• Paso 2: Instalar Android Studio

Page 10: Transparencias de intro a Android y el entorno de desarrollo

Entorno de desarrollohttp://developer.android.com/sdk/index.html

Page 11: Transparencias de intro a Android y el entorno de desarrollo

Entorno de desarrollo

Page 12: Transparencias de intro a Android y el entorno de desarrollo

Hola mundo

• En Android Studio...

• Start a new Android Studio project

Page 13: Transparencias de intro a Android y el entorno de desarrollo

Hola mundo

Page 14: Transparencias de intro a Android y el entorno de desarrollo

Hola mundo

• Application Name:

• nombre que se verá en el launcher

• Project Location:

• directorio del proyecto

• Company Domain, dominio:

• para nombre del paquete Java (Package name)

Page 15: Transparencias de intro a Android y el entorno de desarrollo

Hola mundo

• Package Name:

• nombre del paquete Java

• dominio invertido.nombre:

•org.lsub.nombre

Page 16: Transparencias de intro a Android y el entorno de desarrollo

Hola mundo

Page 17: Transparencias de intro a Android y el entorno de desarrollo

Hola mundo➜ Help me choose

Page 18: Transparencias de intro a Android y el entorno de desarrollo

Hola mundo

• Minimum SDK

• versión mínima que soportamos

• 4.2 para la mayoría

• 5.0 es una reciente

• Help me choose nos da una idea, compromiso

• Funcionalidad, vs.

• Población que lo tiene instalado

Page 19: Transparencias de intro a Android y el entorno de desarrollo

Hola mundo

• Create activity:

• Vamos a programar el código para lo que Android llama Activity

• Una aplicación son una o más “activities”

• Una de las cosas que hace el usuario (una “pantalla”).

Page 20: Transparencias de intro a Android y el entorno de desarrollo

Hola mundo

• Seguirle dando a “next”....

• Y en “Create Activity” seleccionar

• BlankActivity

Page 21: Transparencias de intro a Android y el entorno de desarrollo

Hola mundo

Page 22: Transparencias de intro a Android y el entorno de desarrollo

Hola mundo

• Activity Name:

• El nombre de nuestra clase “Activity”

• El “punto de entrada” para nuestra aplicación

• Layout name/Menu resource name, nombre del ficheros xml (de momento automático)

• Title: título de la activity (se muestra en launcher)

• ... Y luego “Finish”

Page 23: Transparencias de intro a Android y el entorno de desarrollo

Hola mundoProyecto

Código Java aquí

Iconos...

Layout de nuestra “activity”

Config: punto de entrada, etc.

Gradle, como makefilehttp://gradle.org

Page 24: Transparencias de intro a Android y el entorno de desarrollo

Mipmap

• Gráficos vectoriales vs. Raster Graphics

• Inkscape vs. Gimp ó Illustrator vs. Photoshop

Page 25: Transparencias de intro a Android y el entorno de desarrollo

Raster

Page 26: Transparencias de intro a Android y el entorno de desarrollo

Vector

<svg width="100" height="100">

<circle cx="50" cy="50" r="40" stroke="green" stroke-width=“4" fill="yellow" />

</svg>

Page 27: Transparencias de intro a Android y el entorno de desarrollo

Mipmap

• Multum in parvo (mucho en poco)

• Lo óptimo, usar vectores, pero caro

• Se usa raster, pero es caro, solución, mipmap

Page 28: Transparencias de intro a Android y el entorno de desarrollo

Mipmap

Page 29: Transparencias de intro a Android y el entorno de desarrollo

Mipmap

• Se busca la más cercana y se interpola

• Barato (y ocupa razonablemente)

• En general, para crear iconos a diferentes resoluciones, mipmaps, etc. Android asset studio:

• https://romannurik.github.io/AndroidAssetStudio/

• https://androidbycode.wordpress.com/2015/02/14/goodbye-launcher-drawables-hello-mipmaps/

Page 30: Transparencias de intro a Android y el entorno de desarrollo

Nota sobre recursos

Iconos normales

Iconos alta

Iconos muy muy alta

Layout por defecto

Valores por defecto

Page 31: Transparencias de intro a Android y el entorno de desarrollo

Nota sobre recursos

• Para crear un fichero de layout en landscape

• Luego veremos para qué sirve

Page 32: Transparencias de intro a Android y el entorno de desarrollo

Notas sobre recursos

Page 33: Transparencias de intro a Android y el entorno de desarrollo

Nota sobre recursos

Page 34: Transparencias de intro a Android y el entorno de desarrollo

• Normalmente se usan los directorios normales y....

• Se redefinen los que queramos en las versiones específicas (para UK, para landscape, etc.)

Nota sobre recursos

Page 35: Transparencias de intro a Android y el entorno de desarrollo

Nota sobre recursos$ pwd /Users/paurea/AndroidStudioProjects/MyApp/app/src/main/res $ du -a 0 ./drawable8 ./mipmap-hdpi/ic_launcher.png 8 ./mipmap-hdpi 8 ./mipmap-mdpi/ic_launcher.png 8 ./mipmap-mdpi 16 ./mipmap-xhdpi/ic_launcher.png 16 ./mipmap-xhdpi 16 ./mipmap-xxhdpi/ic_launcher.png 16 ./mipmap-xxhdpi 24 ./mipmap-xxxhdpi/ic_launcher.png 24 ./mipmap-xxxhdpi 24 ./drawable-hdpi/z.png 24 ./drawable-hdpi 16 ./drawable-mdpi/z.png 16 ./drawable-mdpi 32 ./drawable-xhdpi/z.png 32 ./drawable-xhdpi 40 ./drawable-xxhdpi/z.png 40 ./drawable-xxhdpi 8 ./layout/activity_main.xml 8 ./layout 8 ./layout-port/activity_main.xml 8 ./layout-port 8 ./menu/menu_main.xml 8 ./menu 8 ./values/dimens.xml 8 ./values/strings.xml 8 ./values/styles.xml

Page 36: Transparencias de intro a Android y el entorno de desarrollo

Hola mundopackage org.lsub.app1;

import android.os.Bundle;import android.app.Activity;import android.view.Menu;

public class MainActivity extends Activity {

@Overrideprotected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);

}

@Overridepublic boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_main, menu);return true;

}

}

listo para ejecutar...

Page 37: Transparencias de intro a Android y el entorno de desarrollo

Crear un dispositivo...

Android Virtual Device Manager

Page 38: Transparencias de intro a Android y el entorno de desarrollo

Hola mundo

• Creamos un dispositivo virtual

• Elegimos el dispositivo a emular

• La versión de Android

• Resolución

• HW. Cámara, Memoria, SD Card, ...

Page 39: Transparencias de intro a Android y el entorno de desarrollo

Hola mundoY de vuelta a Android Studio....

Page 40: Transparencias de intro a Android y el entorno de desarrollo

Hola mundo• En Android Studio tenemos la consola

con el diálogo con el emulador

• Y podemos hacer click en “LogCat” para ver los mensajes del emulador

Page 41: Transparencias de intro a Android y el entorno de desarrollo

• En LogCat...

• podemos filtrar por tipo de mensaje

• Y buscando el nombre de muestro paquete, filtrar por aplicación

• Básico si la aplicación falla, para ver la causa (el mensaje de error o excepción)

Depuración

Page 42: Transparencias de intro a Android y el entorno de desarrollo

• Podemos simular todo el teléfono o tablet

• Ejemplo: Control-F11 cambia orientación

• En mac Control-Fn-F11

• Ahora hay botones

Emulador