fundamentos desarrollo de apps para android
TRANSCRIPT
![Page 1: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/1.jpg)
Introducción a Android
FundamentosGerardo Suárez
1
Fundamentos de AndroidGerardo Suárez
![Page 2: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/2.jpg)
Objetivos Conceptos generales Estructura del proyecto Componentes de la Arquitectura:
activity service broadcast receiver content provider
2
![Page 3: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/3.jpg)
3
CONCEPTOS GENERALES
![Page 4: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/4.jpg)
Android y Java Escritas en Java (Android Studio) o en
C++ (NDK) Java vs Android: Java usa la JVM para
ejecutar el bytecode, Android usa ART,Dalvik
4
![Page 5: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/5.jpg)
Seguridad Se debe a la arquitectura:
Android es un sistema multiusuario. Cada app es un usuario linux distinto.
5
![Page 6: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/6.jpg)
Máquinas Virtuales Dalvik (AOT) vs ART(JIT)
convertir de bytecode a código máquina Ahead-of-time vs Just it time: JIT hace una
precompilación cuando se instala la app ART mejoró el garbage collector
6
![Page 7: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/7.jpg)
7
![Page 8: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/8.jpg)
SDK Conjunto de herramientas para desarrollar
aplicaciones: Librerías Debugger Emulador Documentation sobre el API Código Fuente de Ejemplos
8
![Page 9: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/9.jpg)
9
ESTRUCTURA DELPROYECTO
![Page 10: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/10.jpg)
10
Estructura Básica
¿Cómo queda almacenado el Proyecto?
Así lo ve el desarrollador:
![Page 11: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/11.jpg)
Android Manifest Contiene:
El nombre del paquete Java Especifica los componentes de la arquitectura Declara los permisos Componentes visuales (tema, ícono de la app)
11
![Page 12: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/12.jpg)
Así luce el Manifest
12
![Page 13: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/13.jpg)
Gradle Settings Sistema de compilación. Toma todo lo de
los folders res y src y genera el APK. android {
compileSdkVersion 23
defaultConfig {applicationId “com.talentoicesi"minSdkVersion 7targetSdkVersion 23versionCode 1versionName “1.0”}}
13
![Page 14: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/14.jpg)
14
COMPONENTES DE ANDORID
![Page 15: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/15.jpg)
Activity Ventana que permite la interacción con el
usuario Se compone de:
Clase Java que hereda de AppCompatActivity XML - Layout
15
![Page 16: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/16.jpg)
16
![Page 17: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/17.jpg)
17
![Page 18: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/18.jpg)
Ciclo de Vida
18
No Existe
Foreground
Background
Pause
onCreate
onStart
onResume
onPause
onStop
onResume
onStart
onReestart
onDestroy
onStop
onPauseonPause
onResume
MOSTRAR EJEMPLO
![Page 19: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/19.jpg)
Services Se encarga de realizar procesos en
segundo plano No tiene interfaz gráfica Se mantiene corriendo así el usuario
empiece a usar otra app
19
![Page 20: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/20.jpg)
Services
20
![Page 21: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/21.jpg)
Broadcast Receivers Reciben mensajes de Broadcast y actúan Extienden de la clase BroadcastReceiver Ejemplos:
Baja batería, cargando, apagar, cambiar la timezone, etc.
Comunicación entre distintos componentes Otras apps pueden iniciar broadcast
21
![Page 22: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/22.jpg)
Content Providers Hace que los datos de la app estén
disponibles para otras apps Es la única forma de compartir datos entre
aplicaciones Extiende de la clase ContentProvider
22
![Page 23: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/23.jpg)
Resumen Activities – ventana de una app – se
compone de una clase java y un file xml Services – no tienen interfaz de usuario–
corren en background Broadcast Receivers – reciben y actúan
con mensajes de broadcast Content Providers – permiten el
intercambio de datos entre apps
23
![Page 24: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/24.jpg)
Finalizar Componentes Activities
Se terminan ellas mismas por medio de finish(); La termina otra actividad por medio de finishActivity();
Services Se terminan con stopService();
Content Providers Solo están activos cuando le responden a los
contentResolvers Broadcast Receivers
Solo están activos cuando responden los mensajes de broadcast
24
![Page 25: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/25.jpg)
Intents Es un objeto que se usa para accionar algún
componente. Usos principales:
Iniciar una Actividad Iniciar un servicio Enviar un Broadcast Iniciar otras Apps
25
![Page 26: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/26.jpg)
Intent i = new Intent(getApplicationContext(), ChatActivity.class);startActivity(i);
26
WhatsApp usa Intents
![Page 27: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/27.jpg)
ATENCIÓN:Los Intents no hacen parte de los componentes de la Arquitectura de Android!!Los compontentes son:ActivityServiceBroadcastReceiverContentProviders
27
![Page 28: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/28.jpg)
Tarea Instalar Android Studio Crear un nuevo proyecto Crear y correr el emulador Cuáles son los componentes de la
arquitectura de Android? Explique cada uno.
28
![Page 29: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/29.jpg)
Mi primera App
@2011 Mihail L. Sichitiu 29
![Page 30: Fundamentos desarrollo de Apps para Android](https://reader035.vdocuments.us/reader035/viewer/2022062522/58a3691d1a28aba4138b5c33/html5/thumbnails/30.jpg)
30
MUCHAS GRACIAS