![Page 1: Transparencias de intro a Android y el entorno de desarrollo](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/1.jpg)
Programación en Android
LSUB, GSYC, URJC
![Page 2: Transparencias de intro a Android y el entorno de desarrollo](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/2.jpg)
Introducción
AndroidStudio
Teléfonoo
Emulador
![Page 3: Transparencias de intro a Android y el entorno de desarrollo](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/3.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/4.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/5.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/6.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/7.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/8.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/9.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/10.jpg)
Entorno de desarrollohttp://developer.android.com/sdk/index.html
![Page 11: Transparencias de intro a Android y el entorno de desarrollo](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/11.jpg)
Entorno de desarrollo
![Page 12: Transparencias de intro a Android y el entorno de desarrollo](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/12.jpg)
Hola mundo
• En Android Studio...
• Start a new Android Studio project
![Page 13: Transparencias de intro a Android y el entorno de desarrollo](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/13.jpg)
Hola mundo
![Page 14: Transparencias de intro a Android y el entorno de desarrollo](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/14.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/15.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/16.jpg)
Hola mundo
![Page 17: Transparencias de intro a Android y el entorno de desarrollo](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/17.jpg)
Hola mundo➜ Help me choose
![Page 18: Transparencias de intro a Android y el entorno de desarrollo](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/18.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/19.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/20.jpg)
Hola mundo
• Seguirle dando a “next”....
• Y en “Create Activity” seleccionar
• BlankActivity
![Page 21: Transparencias de intro a Android y el entorno de desarrollo](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/21.jpg)
Hola mundo
![Page 22: Transparencias de intro a Android y el entorno de desarrollo](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/22.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/23.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/24.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/25.jpg)
Raster
![Page 26: Transparencias de intro a Android y el entorno de desarrollo](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/26.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/27.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/28.jpg)
Mipmap
![Page 29: Transparencias de intro a Android y el entorno de desarrollo](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/29.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/30.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/31.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/32.jpg)
Notas sobre recursos
![Page 33: Transparencias de intro a Android y el entorno de desarrollo](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/33.jpg)
Nota sobre recursos
![Page 34: Transparencias de intro a Android y el entorno de desarrollo](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/34.jpg)
• 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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/35.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/36.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/37.jpg)
Crear un dispositivo...
Android Virtual Device Manager
![Page 38: Transparencias de intro a Android y el entorno de desarrollo](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/38.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/39.jpg)
Hola mundoY de vuelta a Android Studio....
![Page 40: Transparencias de intro a Android y el entorno de desarrollo](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/40.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/41.jpg)
• 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](https://reader031.vdocuments.pub/reader031/viewer/2022021923/586f54881a28ab03168bbdaf/html5/thumbnails/42.jpg)
• Podemos simular todo el teléfono o tablet
• Ejemplo: Control-F11 cambia orientación
• En mac Control-Fn-F11
• Ahora hay botones
Emulador