SlideShare una empresa de Scribd logo
1 de 60
Desarrollo de Aplicaciones
para Android
Sesión 1: Introducción a
Android
Desarrollo de Aplicaciones para Android Introducción a Android-1
Mario La Menza Perello
Puntos a tratar
Desarrollo de Aplicaciones para Android Introducción a Android-2
• Dispositivos móviles
• Historia de Android
• Desarrollo de aplicaciones
• Emulador
• AndroidManifest.xml
• Externalizar recursos
• Plug-in para Eclipse
• ¡Hola, Mundo!
Mario La Menza Perello
Historia de los smartphones
• Primeros smartphones en los 90
• Nokia communicator en 1996
• Primer smartphone con
sistema operativo abierto en 2000:
• Ericsson R380 con Symbian OS
• Smartphone actuales:
• Pantalla táctil
• Opcionalmente teclado físico
• Sistema operativo con Market para aplicaciones
• Sensores Cámaras y videoconferencia
• Capacidad de almacenamiento y conectividad
Desarrollo de Aplicaciones para Android Introducción a Android-3
Mario La Menza Perello
Sensores
•Acelerómetro.
•Sensor de huellas.
•Sensor de proximidad.
•Sensores capacitivos.
•Giroscopio.
•Lector de iris.
•Magnómetro.
•Sensor de luz ambiental.
Desarrollo de Aplicaciones para Android
Dispositivos
b
Desarrollo de Aplicaciones para Android Introducción a Android-5
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
Paradigmas de programación en móviles
Desarrollo de Aplicaciones para Android Introducción a Android-6
Documentos Web
Descarga documentos y los muestra en un navegador
Formato adecuado para móviles (WML, XHTML, ...)
Requiere conectar a red para descargar cada documento
Velocidad de descarga lenta
Documentos pobres (deben servir para todos los móviles)
Aplicaciones locales
La aplicación se descarga en el móvil
Se ejecuta de forma local
Interfaz de usuario más flexible
Puede funcionar sin conexión (minimiza el tráfico)
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
Sistemas operativos
Desarrollo de Aplicaciones para Android Introducción a Android-7
•
•
•
•
•
•
•
•
•
•
•
•
Android (open source)
BlackBerry OS de RIM (propietario)
iOS de Apple (propietario)
Symbian OS (open source)
Windows Phone & Windows Mobile (propietario)
Firefox OS (en desarrollo)
webOS de HP (algunas partes abiertas)
QNX de RIM (propietario)
SHR (basado en linux)
Bada de Samsung (propietario)
Brew de Qualcomm
Palm OS (propietario)
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
Sistemas operativos antes de 2010
Desarrollo de Aplicaciones para Android Introducción a Android-8
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
Sistemas operativos en el mercado actual
Desarrollo de Aplicaciones para Android Introducción a Android-9
• Estadísticas de uso según Gartner
2007 2008 2009 2010 2011 2012 2013
Android N/A 0.5% 3.9% 22.7% 36% 43% 75%
iOS 2.7% 8.2% 14.4% 15.7% 16.8% 18% 17.3%
Windows 12% 11.8% 8.7% 4.2% 3.6% 2% 3.2%
BlackBerry 9.6% 16.6% 19.9% 16.0% 12.9% 12% 2.9%
Linux y otros 12.1% 10.5% 6.1% 3.8% 3.3% 2% 1.0%
Symbian 63.5% 52.4% 46.9% 37.6% 27.4% 22% 0.6%
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
Android
• Sistema operativo para dispositivos móviles
• Núcleo basado en el de Linux
• Programación de aplicaciones en Java
Desarrollo de Aplicaciones para Android Introducción a Android-11
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
Historia de Android
Desarrollo de Aplicaciones para Android Introducción a Android-12
• Android 1.1 se publica en febrero de 2009
(coincide con la proliferación de smartphones
táctiles).
• Siguientes versiones:
• 1.5 Cupcake (basada en el núcleo de Linux 2.6.27)
• …
• 2.2 Froyo (basada en el núcleo de Linux 2.6.32)
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
Nombres basados en repostería
Desarrollo de Aplicaciones para Android Introducción a Android-13
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
Nombres basados en repostería
• 2.3 Gingerbread
Desarrollo de Aplicaciones para Android Introducción a Android-14
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
Nombres basados en repostería
• 3.0 / 3.1 Honeycomb (orientado a tablets)
Desarrollo de Aplicaciones para Android Introducción a Android-15
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
Nombres basados en repostería
• 4.0 Ice Cream Sandwich (tablets / móviles)
Desarrollo de Aplicaciones para Android Introducción a Android-16
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
Estadísticas de uso de versiones
Desarrollo de Aplicaciones para Android Introducción a Android-17
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
Licencia
Desarrollo de Aplicaciones para Android Introducción a Android-18
Mario La Menza Perello
• Android
• Sistema operativo (Licencia Apache)
• Plataforma de desarrollo (Licencia Apache)
• Licencia Apache
• Open Source
• Permite a los fabricantes añadir extensiones
propietarias sin ponerlas en manos de la comunidad
del software libre
Desarrollo de Aplicaciones para Android
Open Source
Desarrollo de Aplicaciones para Android Introducción a Android-19
Mario La Menza Perello
• El open source hace posible:
•
•
•
•
•
• Una comunidad de desarrollo, gracias a sus completas APIs y documentación
ofrecida.
Desarrollo desde cualquier plataforma (Linux, Mac, Windows, etc).
Un sistema operativo para cualquier tipo de dispositivo móvil, al no estar
diseñado para un sólo tipo de móvil.
Posibilidad para cualquier fabricante de diseñar un dispositivo que trabaje con
Android, y la posibilidad de abrir el sistema operativo y adaptarlo o extenderlo
para su dispositivo.
Valor añadido para los fabricantes de dispositivos: las empresas se ahorran el
coste de desarrollar un sistema operativo completo para sus dispositivos.
Valor añadido para los desarrolladores: los desarrolladores se ahorran tener
que programar APIs, entornos gráficos, aprender acceso a dispositivos
hardware particulares, etc.
Desarrollo de Aplicaciones para Android
Cuestiones éticas
Desarrollo de Aplicaciones para Android Introducción a Android-20
Mario La Menza Perello
• Aspectos positivos
• Código abierto
• Valor añadido para todos
• Mantenibilidad
• Seguridad informática
• Transparencia del uso de sensores
• Servicios gratuitos de Google
Desarrollo de Aplicaciones para Android
Cuestiones éticas
Desarrollo de Aplicaciones para Android Introducción a Android-21
Mario La Menza Perello
• Aspectos negativos
• Obligatorio log-in con el ID de Google (dependencia)
• Constante intercambio de datos con Google
• Envío de localización (desactivable)
• Los usuarios no están concienciados de la
dependencia de los servidores de Google y lo
aceptan sin más.
• Aunque el SO sea libre, gran parte de su valor está
en los servicios gratuitos de Google, que no son
libres ni conocemos el tratamiento que dan a
nuestra información privada.
Desarrollo de Aplicaciones para Android
Desarrollan Android:
Desarrollo de Aplicaciones para Android Introducción a Android-22
Mario La Menza Perello
• Open Handset Alliance
• Trata de definir estándares abiertos para
dispositivos móviles
• Consorcio de decenas de compañías (entre ellas
está Google):
• Operadores de telefonía móvil
• Fabricantes de dispositivos
• Fabricantes de procesadores y microelectrónica
• Compañías de software
• Compañías de comercialización
Desarrollo de Aplicaciones para Android
¿De qué está hecho?
Desarrollo de Aplicaciones para Android Introducción a Android-23
Mario La Menza Perello
•
•
Núcleo (branch) basado en linux (memoria, procesos, hardware)
Bibliotecas open source (SQLite, WebKit, OpenGL, manejador de
medios, etc).
Entorno de ejecución Dalvik
Framework de desarrollo: pone a disposición de las aplicaciones
los servicios del sistema
SKD: herramientas, emulador, ejemplos, doc.
Interfaz de usuario para pantalla, dispositivos de entrada, etc.
Aplicaciones y servicios preinstalados
Android Market
•
•
•
•
•
•
Desarrollo de Aplicaciones para Android
Android SDK
Desarrollo de Aplicaciones para Android Introducción a Android-24
Mario La Menza Perello
• Licencias, distribución y desarrollo gratuitos. No diferencia entre aplicaciones
nativas y de terceros.
Acceso al hardware de WiFi, GPS, Bluetooth y telefonía, permitiendo realizar y
recibir llamadas y SMS.
Control completo de multimedia, incluyendo la cámara y el micrófono.
APIs para los sensores: acelerómetros y brújula.
Mensajes entre procesos (IPC).
Almacenes de datos compartidos, proveedores de contenidos, SQLite, acceso a
SD Card.
Aplicaciones y procesos en segundo plano.
Widgets para la pantalla de inicio (escritorio).
Integración de los resultados de búsqueda de la aplicación con los del sistema.
Uso de mapas y sus controles desde las aplicaciones.
Aceleración gráfica por hardware, incluyendo OpenGL ES 2.0 para 3D.
•
•
•
•
•
•
•
•
•
•
Desarrollo de Aplicaciones para Android
Capas
Desarrollo de Aplicaciones para Android Introducción a Android-25
Mario La Menza Perello
Consideraciones para el desarrollo
• Pequeña capacidad de procesamiento
• Memoria RAM limitada
• Memoria permanente de poca capacidad
• Pantallas pequeñas de poca resolución
• Transferencias de datos costosa y lenta
(en términos de energía y económicos)
• Inestabilidad de las conexiones de datos
• Batería muy limitada
• Necesidad de terminar la aplicación en cualquier momento
Desarrollo de Aplicaciones para Android Introducción a Android-26
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
Consideraciones para el desarrollo
Desarrollo de Aplicaciones para Android Introducción a Android-27
Mario La Menza Perello
• Ser eficiente
• CPU
• Memoria
• Recursos y red
• Respetar al usuario
• No robar el foco
• Pocos avisos
• Interfaz intuitiva y coherente con Android
• Ver Guía de desarrollo de Android antes de
publicar
Desarrollo de Aplicaciones para Android
Tipos de aplicaciones
Desarrollo de Aplicaciones para Android Introducción a Android-28
Mario La Menza Perello
• Primer plano (activities)
• Segundo plano
• Servicios puros
• Servicios combinados con actividades
• Widgets de escritorio
AndroidManifest.xml
Desarrollo de Aplicaciones para Android Introducción a Android-29
Mario La Menza Perello
• Presente en todo proyecto Android.
• Declaración de metadatos de la aplicación
• Nombre del paquete y de la aplicación
• Actividades, actividad principal
• Servicios
• Receptores broadcast
• Proveedores de contenidos
• Permisos
• API mínima, librerías.
Desarrollo de Aplicaciones para Android
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<uses-permission />
<permission />
<permission-tree />
<permission-group />
<instrumentation />
<uses-sdk />
<uses-configuration />
<uses-feature />
<supports-screens />
<application>
<activity>
<intent-filter>
<action />
<category />
<data />
</intent-filter>
<meta-data />
</activity>
<activity-alias>
<intent-filter> . . . </intent-filter>
<meta-data/>
</activity-alias>
<service>
<intent-filter> . . . </intent-filter>
<meta-data/>
</service>
<receiver>
<intent-filter> . . . </intent-filter>
<meta-data />
</receiver>
<provider>
<grant-uri-permission />
<meta-data />
</provider>
<uses-library />
</application>
</manifest>
Desarrollo de Aplicaciones para Android Introducción a Android-30
Mario La Menza Perello
• Estructura
Target y Versiones
La min sdk version es la versión minima de Android requerida para ejecutar
la App.
La target sdk version es la versión de Android para la cual la App fue
creada.
La compile sdk versión es la versión de Android que las build tools usan
para compilar y ejecutar la App para release, run, o debug.
Usualmente la compile sdk versión y la target sdk version coinciden.
minSdkVersion <= targetSdkVersion <= compileSdkVersion
Librerias nuevas y librerías de
soporte
Nota: Con el lanzamiento de Android 9.0 (API nivel 28), hay una nueva versión de la biblioteca
de soporte llamada AndroidX que es parte de Jetpack. La biblioteca de AndroidX contiene la
biblioteca de soporte existente y también incluye los últimos componentes de Jetpack.
Puede seguir utilizando la biblioteca de soporte. Los artefactos históricos (aquellos con versión
27 y anteriores, y empaquetados como android.support. *) Seguirán estando disponibles en
Google Maven. Sin embargo, todo el desarrollo de nuevas bibliotecas ocurrirá en la biblioteca
de AndroidX.
Recomendamos utilizar las bibliotecas de AndroidX en todos los proyectos nuevos. También
debería considerar la posibilidad de migrar proyectos existentes a AndroidX.
Desarrollo de Aplicaciones para Android
AndroidManifest.xml
• Ejemplo
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="es.ua.jtech.ajdm.interfaces"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Interfaces"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="SubActividad" android:label="SubActividad">
</activity>
</application>
<uses-sdk android:minSdkVersion="8" />
</manifest>
Desarrollo de Aplicaciones para Android Introducción a Android-33
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
Externalizar recursos
Desarrollo de Aplicaciones para Android Introducción a Android-34
Mario La Menza Perello
• Hace la aplicación más mantenible y
personalizable
• Adaptación a otros idiomas
• Carpeta resdel proyecto
•
•
•
•
•
•
res/values
res/drawable-ldpi
res/drawable-mdpi
res/drawable-hdpi
res/layout res/xml
Mipmap y drawables
Desarrollo de Aplicaciones para Android
Externalizar recursos
• Valores, en formato XML:
<?xmlversion="1.0"encoding="utf-8"?>
<resources>
<stringname="saludo">¡Hola!</string>
Desarrollo de Aplicaciones para Android Introducción a Android-36
Mario La Menza Perello
<color
<dimen
<array
name="verde_transparente">#7700FF00</color>
name="altura_mifuente">12sp</dimen>
name="ciudades">
<item>Alicante</item>
<item>Elche</item>
<item>SanVicente</item>
</array>
<stylename="EstiloTexto1">
<itemname="android:textSize">18sp</item>
<itemname="android:textColor">#00F</item>
</style>
...
</resources>
Desarrollo de Aplicaciones para Android
Externalizar recursos
Desarrollo de Aplicaciones para Android Introducción a Android-37
Mario La Menza Perello
• Acceso a los recursos desde el código
• Acceso a los recursos desde el XML
TextView tv = (TextView)findViewById(R.id.TextView01);
tv.setText(R.string.saludo);
@string/nombrestring
Desarrollo de Aplicaciones para Android
Instalación: Plug-in para Eclipse
Desarrollo de Aplicaciones para Android Introducción a Android-38
Mario La Menza Perello
• Instalación desde Eclipse:
• Help > Install new software > Available software >
Add:
• https://dl-ssl.google.com/android/eclipse/
• Ok, seleccionar el software, Next, Finish.
• Reiniciar Eclipse.
• Configuración:
• Windows > Preferences > Android > SDK Location:
• Indicamos la ruta del Android SDK que
deberemos haber bajado aparte y
descomprimido.
Desarrollo de Aplicaciones para Android
Plug-in para Eclipse: plataformas
Desarrollo de Aplicaciones para Android Introducción a Android-39
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
Plug-in para Eclipse: plataformas
Desarrollo de Aplicaciones para Android Introducción a Android-40
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
AVD Manager
• Crear nuevo
dispositivo
virtual (AVD):
Desarrollo de Aplicaciones para Android Introducción a Android-41
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
Emulador
Desarrollo de Aplicaciones para Android Introducción a Android-42
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
Asistente para la
creación de proyectos
• Genera la estructura
básica del proyecto
• AndroidManifest.xml
• Actividad principal
• Layout
• Resto de recursos
Desarrollo de Aplicaciones para Android Introducción a Android-43
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
Asistente para crear recursos XML
Desarrollo de Aplicaciones para Android Introducción a Android-44
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
Vista Dalvik Debug Monitor Service
Desarrollo de Aplicaciones para Android Introducción a Android-45
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
Vista Debug
Desarrollo de Aplicaciones para Android Introducción a Android-46
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
Editor del
AndroidManifest.xml
Desarrollo de Aplicaciones para Android Introducción a Android-47
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
Editor visual
de layouts
Desarrollo de Aplicaciones para Android Introducción a Android-48
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
Ejemplo: ¡Hola, Mundo!
•
•
Crear nuevo proyecto →
Se genera la estructura
básica:→
Desarrollo de Aplicaciones para Android Introducción a Android-49
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
¡Hola, Mundo! AndroidManifest.xml
Desarrollo de Aplicaciones para Android Introducción a Android-50
Mario La Menza Perello
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="es.ua.jtech.ajdm.holamundo"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Main"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="8" />
</manifest>
Desarrollo de Aplicaciones para Android
¡Hola, Mundo!
• Recursos strings en res/values/strings.xml
Desarrollo de Aplicaciones para Android Introducción a Android-51
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
¡Hola, Mundo!
Desarrollo de Aplicaciones para Android Introducción a Android-52
Mario La Menza Perello
•
•
Recursos strings en res/values/strings.xml
Añadimoslosstringhola,mundoyque.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, Main!</string>
<string name="app_name">HolaMundo</string>
<string name="hola">Hola, </string>
<string name="mundo"> Mundo!</string>
<string name="que">Hola ¿qué?</string>
</resources>
Desarrollo de Aplicaciones para Android
¡Hola, Mundo!
• Layout en res/layouts/main.xml
Desarrollo de Aplicaciones para Android Introducción a Android-53
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
¡Hola, Mundo!
• Layout en res/layouts/main.xml
• Eliminamos la etiqueta y ponemos una nuev
a etiquetaTextViewyunbotónButton:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView android:text="@+id/TextView01" android:id="@+id/TextView01"
android:layout_width="wrap_content" android:layout_height="wrap_content"/>
<Button android:text="@+id/Button01" android:id="@+id/Button01" android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
Desarrollo de Aplicaciones para Android Introducción a Android-54
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
¡Hola, Mundo!
• Layout en res/layouts/main.xml
• Cambiamos los atributos android:textpara
que muestren los string de los recursos.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView android:text="@string/hola" android:id="@+id/TextView01" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button android:text="@string/que" android:id="@+id/Button01" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
Desarrollo de Aplicaciones para Android Introducción a Android-55
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
¡Hola, Mundo!
• Layout en res/layouts/main.xml
Desarrollo de Aplicaciones para Android Introducción a Android-56
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
¡Hola, Mundo! Emulación
Desarrollo de Aplicaciones para Android Introducción a Android-57
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
¡Hola, Mundo! Actividad y eventos
Desarrollo de Aplicaciones para Android Introducción a Android-58
Mario La Menza Perello
Main.java
package es.ua.jtech.ajdm.holamundo;
public class Main extends Activity
{
TextView textView;
Button button;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textView = (TextView)findViewById(R.id.TextView01);
button = (Button)findViewById(R.id.Button01);
button.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
textView.append(getString(R.string.mundo));
}
});
}
}
Desarrollo de Aplicaciones para Android
¡Hola, Mundo! Emulación 2
Desarrollo de Aplicaciones para Android Introducción a Android-59
Mario La Menza Perello
Desarrollo de Aplicaciones para Android
¿Preguntas...?
Desarrollo de Aplicaciones para Android Introducción a Android-60
Mario La Menza Perello

Más contenido relacionado

Similar a CursoAndroid.pptx

Desarrollo para smartwatch Samsung Gear
Desarrollo para smartwatch Samsung GearDesarrollo para smartwatch Samsung Gear
Desarrollo para smartwatch Samsung GearMiguel Angel Ramos
 
Presentación Android - Campus Party Colombia 2.010
Presentación Android - Campus Party Colombia 2.010Presentación Android - Campus Party Colombia 2.010
Presentación Android - Campus Party Colombia 2.010jdtrujilloc
 
Sistema operativo android
Sistema operativo androidSistema operativo android
Sistema operativo androidimnaturales
 
Desarrollo android -1 - introduccion
Desarrollo android  -1 - introduccionDesarrollo android  -1 - introduccion
Desarrollo android -1 - introduccionEmilio Aviles Avila
 
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...CLEFormación
 
Presentacion android
Presentacion androidPresentacion android
Presentacion androidluishhhhh
 
Sistemas Operativos Moviles
Sistemas Operativos MovilesSistemas Operativos Moviles
Sistemas Operativos MovilesFacilitador -Tic
 
Arquitectura, aplicaciones y seguridad en Android
Arquitectura, aplicaciones y seguridad en AndroidArquitectura, aplicaciones y seguridad en Android
Arquitectura, aplicaciones y seguridad en AndroidEventos Creativos
 
Introducción a la Plataforma para Móviles Android
Introducción a la Plataforma  para Móviles AndroidIntroducción a la Plataforma  para Móviles Android
Introducción a la Plataforma para Móviles AndroidEduardo Lazo Cisneros
 
Tecnología android
Tecnología androidTecnología android
Tecnología androidNelson Rico
 
Que es el Android; Sistema operativo
Que es el Android; Sistema operativoQue es el Android; Sistema operativo
Que es el Android; Sistema operativoNelson Rico
 
Presentacion android
Presentacion androidPresentacion android
Presentacion androidaaronsaldivar
 
sistema operativo
sistema operativosistema operativo
sistema operativomarco4647
 
Dispostivos Móviles - Jerson Suaza
Dispostivos Móviles - Jerson SuazaDispostivos Móviles - Jerson Suaza
Dispostivos Móviles - Jerson SuazaBiblioteca EPM
 
Dispositivos móviles: El mundo en tu bolsillo
Dispositivos móviles: El mundo en tu bolsilloDispositivos móviles: El mundo en tu bolsillo
Dispositivos móviles: El mundo en tu bolsilloBiblioteca EPM
 

Similar a CursoAndroid.pptx (20)

Desarrollo para smartwatch Samsung Gear
Desarrollo para smartwatch Samsung GearDesarrollo para smartwatch Samsung Gear
Desarrollo para smartwatch Samsung Gear
 
Tecnologia android
Tecnologia androidTecnologia android
Tecnologia android
 
Sistema Android
Sistema AndroidSistema Android
Sistema Android
 
Presentación Android - Campus Party Colombia 2.010
Presentación Android - Campus Party Colombia 2.010Presentación Android - Campus Party Colombia 2.010
Presentación Android - Campus Party Colombia 2.010
 
Android
AndroidAndroid
Android
 
Sistema operativo android
Sistema operativo androidSistema operativo android
Sistema operativo android
 
Desarrollo android -1 - introduccion
Desarrollo android  -1 - introduccionDesarrollo android  -1 - introduccion
Desarrollo android -1 - introduccion
 
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...
 
diapositivas
diapositivas diapositivas
diapositivas
 
Android
AndroidAndroid
Android
 
Presentacion android
Presentacion androidPresentacion android
Presentacion android
 
Sistemas Operativos Moviles
Sistemas Operativos MovilesSistemas Operativos Moviles
Sistemas Operativos Moviles
 
Arquitectura, aplicaciones y seguridad en Android
Arquitectura, aplicaciones y seguridad en AndroidArquitectura, aplicaciones y seguridad en Android
Arquitectura, aplicaciones y seguridad en Android
 
Introducción a la Plataforma para Móviles Android
Introducción a la Plataforma  para Móviles AndroidIntroducción a la Plataforma  para Móviles Android
Introducción a la Plataforma para Móviles Android
 
Tecnología android
Tecnología androidTecnología android
Tecnología android
 
Que es el Android; Sistema operativo
Que es el Android; Sistema operativoQue es el Android; Sistema operativo
Que es el Android; Sistema operativo
 
Presentacion android
Presentacion androidPresentacion android
Presentacion android
 
sistema operativo
sistema operativosistema operativo
sistema operativo
 
Dispostivos Móviles - Jerson Suaza
Dispostivos Móviles - Jerson SuazaDispostivos Móviles - Jerson Suaza
Dispostivos Móviles - Jerson Suaza
 
Dispositivos móviles: El mundo en tu bolsillo
Dispositivos móviles: El mundo en tu bolsilloDispositivos móviles: El mundo en tu bolsillo
Dispositivos móviles: El mundo en tu bolsillo
 

Último

FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 

Último (20)

FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 

CursoAndroid.pptx

  • 1. Desarrollo de Aplicaciones para Android Sesión 1: Introducción a Android Desarrollo de Aplicaciones para Android Introducción a Android-1 Mario La Menza Perello
  • 2. Puntos a tratar Desarrollo de Aplicaciones para Android Introducción a Android-2 • Dispositivos móviles • Historia de Android • Desarrollo de aplicaciones • Emulador • AndroidManifest.xml • Externalizar recursos • Plug-in para Eclipse • ¡Hola, Mundo! Mario La Menza Perello
  • 3. Historia de los smartphones • Primeros smartphones en los 90 • Nokia communicator en 1996 • Primer smartphone con sistema operativo abierto en 2000: • Ericsson R380 con Symbian OS • Smartphone actuales: • Pantalla táctil • Opcionalmente teclado físico • Sistema operativo con Market para aplicaciones • Sensores Cámaras y videoconferencia • Capacidad de almacenamiento y conectividad Desarrollo de Aplicaciones para Android Introducción a Android-3 Mario La Menza Perello
  • 4. Sensores •Acelerómetro. •Sensor de huellas. •Sensor de proximidad. •Sensores capacitivos. •Giroscopio. •Lector de iris. •Magnómetro. •Sensor de luz ambiental.
  • 5. Desarrollo de Aplicaciones para Android Dispositivos b Desarrollo de Aplicaciones para Android Introducción a Android-5 Mario La Menza Perello
  • 6. Desarrollo de Aplicaciones para Android Paradigmas de programación en móviles Desarrollo de Aplicaciones para Android Introducción a Android-6 Documentos Web Descarga documentos y los muestra en un navegador Formato adecuado para móviles (WML, XHTML, ...) Requiere conectar a red para descargar cada documento Velocidad de descarga lenta Documentos pobres (deben servir para todos los móviles) Aplicaciones locales La aplicación se descarga en el móvil Se ejecuta de forma local Interfaz de usuario más flexible Puede funcionar sin conexión (minimiza el tráfico) Mario La Menza Perello
  • 7. Desarrollo de Aplicaciones para Android Sistemas operativos Desarrollo de Aplicaciones para Android Introducción a Android-7 • • • • • • • • • • • • Android (open source) BlackBerry OS de RIM (propietario) iOS de Apple (propietario) Symbian OS (open source) Windows Phone & Windows Mobile (propietario) Firefox OS (en desarrollo) webOS de HP (algunas partes abiertas) QNX de RIM (propietario) SHR (basado en linux) Bada de Samsung (propietario) Brew de Qualcomm Palm OS (propietario) Mario La Menza Perello
  • 8. Desarrollo de Aplicaciones para Android Sistemas operativos antes de 2010 Desarrollo de Aplicaciones para Android Introducción a Android-8 Mario La Menza Perello
  • 9. Desarrollo de Aplicaciones para Android Sistemas operativos en el mercado actual Desarrollo de Aplicaciones para Android Introducción a Android-9 • Estadísticas de uso según Gartner 2007 2008 2009 2010 2011 2012 2013 Android N/A 0.5% 3.9% 22.7% 36% 43% 75% iOS 2.7% 8.2% 14.4% 15.7% 16.8% 18% 17.3% Windows 12% 11.8% 8.7% 4.2% 3.6% 2% 3.2% BlackBerry 9.6% 16.6% 19.9% 16.0% 12.9% 12% 2.9% Linux y otros 12.1% 10.5% 6.1% 3.8% 3.3% 2% 1.0% Symbian 63.5% 52.4% 46.9% 37.6% 27.4% 22% 0.6% Mario La Menza Perello
  • 10.
  • 11. Desarrollo de Aplicaciones para Android Android • Sistema operativo para dispositivos móviles • Núcleo basado en el de Linux • Programación de aplicaciones en Java Desarrollo de Aplicaciones para Android Introducción a Android-11 Mario La Menza Perello
  • 12. Desarrollo de Aplicaciones para Android Historia de Android Desarrollo de Aplicaciones para Android Introducción a Android-12 • Android 1.1 se publica en febrero de 2009 (coincide con la proliferación de smartphones táctiles). • Siguientes versiones: • 1.5 Cupcake (basada en el núcleo de Linux 2.6.27) • … • 2.2 Froyo (basada en el núcleo de Linux 2.6.32) Mario La Menza Perello
  • 13. Desarrollo de Aplicaciones para Android Nombres basados en repostería Desarrollo de Aplicaciones para Android Introducción a Android-13 Mario La Menza Perello
  • 14. Desarrollo de Aplicaciones para Android Nombres basados en repostería • 2.3 Gingerbread Desarrollo de Aplicaciones para Android Introducción a Android-14 Mario La Menza Perello
  • 15. Desarrollo de Aplicaciones para Android Nombres basados en repostería • 3.0 / 3.1 Honeycomb (orientado a tablets) Desarrollo de Aplicaciones para Android Introducción a Android-15 Mario La Menza Perello
  • 16. Desarrollo de Aplicaciones para Android Nombres basados en repostería • 4.0 Ice Cream Sandwich (tablets / móviles) Desarrollo de Aplicaciones para Android Introducción a Android-16 Mario La Menza Perello
  • 17. Desarrollo de Aplicaciones para Android Estadísticas de uso de versiones Desarrollo de Aplicaciones para Android Introducción a Android-17 Mario La Menza Perello
  • 18. Desarrollo de Aplicaciones para Android Licencia Desarrollo de Aplicaciones para Android Introducción a Android-18 Mario La Menza Perello • Android • Sistema operativo (Licencia Apache) • Plataforma de desarrollo (Licencia Apache) • Licencia Apache • Open Source • Permite a los fabricantes añadir extensiones propietarias sin ponerlas en manos de la comunidad del software libre
  • 19. Desarrollo de Aplicaciones para Android Open Source Desarrollo de Aplicaciones para Android Introducción a Android-19 Mario La Menza Perello • El open source hace posible: • • • • • • Una comunidad de desarrollo, gracias a sus completas APIs y documentación ofrecida. Desarrollo desde cualquier plataforma (Linux, Mac, Windows, etc). Un sistema operativo para cualquier tipo de dispositivo móvil, al no estar diseñado para un sólo tipo de móvil. Posibilidad para cualquier fabricante de diseñar un dispositivo que trabaje con Android, y la posibilidad de abrir el sistema operativo y adaptarlo o extenderlo para su dispositivo. Valor añadido para los fabricantes de dispositivos: las empresas se ahorran el coste de desarrollar un sistema operativo completo para sus dispositivos. Valor añadido para los desarrolladores: los desarrolladores se ahorran tener que programar APIs, entornos gráficos, aprender acceso a dispositivos hardware particulares, etc.
  • 20. Desarrollo de Aplicaciones para Android Cuestiones éticas Desarrollo de Aplicaciones para Android Introducción a Android-20 Mario La Menza Perello • Aspectos positivos • Código abierto • Valor añadido para todos • Mantenibilidad • Seguridad informática • Transparencia del uso de sensores • Servicios gratuitos de Google
  • 21. Desarrollo de Aplicaciones para Android Cuestiones éticas Desarrollo de Aplicaciones para Android Introducción a Android-21 Mario La Menza Perello • Aspectos negativos • Obligatorio log-in con el ID de Google (dependencia) • Constante intercambio de datos con Google • Envío de localización (desactivable) • Los usuarios no están concienciados de la dependencia de los servidores de Google y lo aceptan sin más. • Aunque el SO sea libre, gran parte de su valor está en los servicios gratuitos de Google, que no son libres ni conocemos el tratamiento que dan a nuestra información privada.
  • 22. Desarrollo de Aplicaciones para Android Desarrollan Android: Desarrollo de Aplicaciones para Android Introducción a Android-22 Mario La Menza Perello • Open Handset Alliance • Trata de definir estándares abiertos para dispositivos móviles • Consorcio de decenas de compañías (entre ellas está Google): • Operadores de telefonía móvil • Fabricantes de dispositivos • Fabricantes de procesadores y microelectrónica • Compañías de software • Compañías de comercialización
  • 23. Desarrollo de Aplicaciones para Android ¿De qué está hecho? Desarrollo de Aplicaciones para Android Introducción a Android-23 Mario La Menza Perello • • Núcleo (branch) basado en linux (memoria, procesos, hardware) Bibliotecas open source (SQLite, WebKit, OpenGL, manejador de medios, etc). Entorno de ejecución Dalvik Framework de desarrollo: pone a disposición de las aplicaciones los servicios del sistema SKD: herramientas, emulador, ejemplos, doc. Interfaz de usuario para pantalla, dispositivos de entrada, etc. Aplicaciones y servicios preinstalados Android Market • • • • • •
  • 24. Desarrollo de Aplicaciones para Android Android SDK Desarrollo de Aplicaciones para Android Introducción a Android-24 Mario La Menza Perello • Licencias, distribución y desarrollo gratuitos. No diferencia entre aplicaciones nativas y de terceros. Acceso al hardware de WiFi, GPS, Bluetooth y telefonía, permitiendo realizar y recibir llamadas y SMS. Control completo de multimedia, incluyendo la cámara y el micrófono. APIs para los sensores: acelerómetros y brújula. Mensajes entre procesos (IPC). Almacenes de datos compartidos, proveedores de contenidos, SQLite, acceso a SD Card. Aplicaciones y procesos en segundo plano. Widgets para la pantalla de inicio (escritorio). Integración de los resultados de búsqueda de la aplicación con los del sistema. Uso de mapas y sus controles desde las aplicaciones. Aceleración gráfica por hardware, incluyendo OpenGL ES 2.0 para 3D. • • • • • • • • • •
  • 25. Desarrollo de Aplicaciones para Android Capas Desarrollo de Aplicaciones para Android Introducción a Android-25 Mario La Menza Perello
  • 26. Consideraciones para el desarrollo • Pequeña capacidad de procesamiento • Memoria RAM limitada • Memoria permanente de poca capacidad • Pantallas pequeñas de poca resolución • Transferencias de datos costosa y lenta (en términos de energía y económicos) • Inestabilidad de las conexiones de datos • Batería muy limitada • Necesidad de terminar la aplicación en cualquier momento Desarrollo de Aplicaciones para Android Introducción a Android-26 Mario La Menza Perello
  • 27. Desarrollo de Aplicaciones para Android Consideraciones para el desarrollo Desarrollo de Aplicaciones para Android Introducción a Android-27 Mario La Menza Perello • Ser eficiente • CPU • Memoria • Recursos y red • Respetar al usuario • No robar el foco • Pocos avisos • Interfaz intuitiva y coherente con Android • Ver Guía de desarrollo de Android antes de publicar
  • 28. Desarrollo de Aplicaciones para Android Tipos de aplicaciones Desarrollo de Aplicaciones para Android Introducción a Android-28 Mario La Menza Perello • Primer plano (activities) • Segundo plano • Servicios puros • Servicios combinados con actividades • Widgets de escritorio
  • 29. AndroidManifest.xml Desarrollo de Aplicaciones para Android Introducción a Android-29 Mario La Menza Perello • Presente en todo proyecto Android. • Declaración de metadatos de la aplicación • Nombre del paquete y de la aplicación • Actividades, actividad principal • Servicios • Receptores broadcast • Proveedores de contenidos • Permisos • API mínima, librerías.
  • 30. Desarrollo de Aplicaciones para Android AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest> <uses-permission /> <permission /> <permission-tree /> <permission-group /> <instrumentation /> <uses-sdk /> <uses-configuration /> <uses-feature /> <supports-screens /> <application> <activity> <intent-filter> <action /> <category /> <data /> </intent-filter> <meta-data /> </activity> <activity-alias> <intent-filter> . . . </intent-filter> <meta-data/> </activity-alias> <service> <intent-filter> . . . </intent-filter> <meta-data/> </service> <receiver> <intent-filter> . . . </intent-filter> <meta-data /> </receiver> <provider> <grant-uri-permission /> <meta-data /> </provider> <uses-library /> </application> </manifest> Desarrollo de Aplicaciones para Android Introducción a Android-30 Mario La Menza Perello • Estructura
  • 31. Target y Versiones La min sdk version es la versión minima de Android requerida para ejecutar la App. La target sdk version es la versión de Android para la cual la App fue creada. La compile sdk versión es la versión de Android que las build tools usan para compilar y ejecutar la App para release, run, o debug. Usualmente la compile sdk versión y la target sdk version coinciden. minSdkVersion <= targetSdkVersion <= compileSdkVersion
  • 32. Librerias nuevas y librerías de soporte Nota: Con el lanzamiento de Android 9.0 (API nivel 28), hay una nueva versión de la biblioteca de soporte llamada AndroidX que es parte de Jetpack. La biblioteca de AndroidX contiene la biblioteca de soporte existente y también incluye los últimos componentes de Jetpack. Puede seguir utilizando la biblioteca de soporte. Los artefactos históricos (aquellos con versión 27 y anteriores, y empaquetados como android.support. *) Seguirán estando disponibles en Google Maven. Sin embargo, todo el desarrollo de nuevas bibliotecas ocurrirá en la biblioteca de AndroidX. Recomendamos utilizar las bibliotecas de AndroidX en todos los proyectos nuevos. También debería considerar la posibilidad de migrar proyectos existentes a AndroidX.
  • 33. Desarrollo de Aplicaciones para Android AndroidManifest.xml • Ejemplo <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="es.ua.jtech.ajdm.interfaces" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Interfaces" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="SubActividad" android:label="SubActividad"> </activity> </application> <uses-sdk android:minSdkVersion="8" /> </manifest> Desarrollo de Aplicaciones para Android Introducción a Android-33 Mario La Menza Perello
  • 34. Desarrollo de Aplicaciones para Android Externalizar recursos Desarrollo de Aplicaciones para Android Introducción a Android-34 Mario La Menza Perello • Hace la aplicación más mantenible y personalizable • Adaptación a otros idiomas • Carpeta resdel proyecto • • • • • • res/values res/drawable-ldpi res/drawable-mdpi res/drawable-hdpi res/layout res/xml
  • 36. Desarrollo de Aplicaciones para Android Externalizar recursos • Valores, en formato XML: <?xmlversion="1.0"encoding="utf-8"?> <resources> <stringname="saludo">¡Hola!</string> Desarrollo de Aplicaciones para Android Introducción a Android-36 Mario La Menza Perello <color <dimen <array name="verde_transparente">#7700FF00</color> name="altura_mifuente">12sp</dimen> name="ciudades"> <item>Alicante</item> <item>Elche</item> <item>SanVicente</item> </array> <stylename="EstiloTexto1"> <itemname="android:textSize">18sp</item> <itemname="android:textColor">#00F</item> </style> ... </resources>
  • 37. Desarrollo de Aplicaciones para Android Externalizar recursos Desarrollo de Aplicaciones para Android Introducción a Android-37 Mario La Menza Perello • Acceso a los recursos desde el código • Acceso a los recursos desde el XML TextView tv = (TextView)findViewById(R.id.TextView01); tv.setText(R.string.saludo); @string/nombrestring
  • 38. Desarrollo de Aplicaciones para Android Instalación: Plug-in para Eclipse Desarrollo de Aplicaciones para Android Introducción a Android-38 Mario La Menza Perello • Instalación desde Eclipse: • Help > Install new software > Available software > Add: • https://dl-ssl.google.com/android/eclipse/ • Ok, seleccionar el software, Next, Finish. • Reiniciar Eclipse. • Configuración: • Windows > Preferences > Android > SDK Location: • Indicamos la ruta del Android SDK que deberemos haber bajado aparte y descomprimido.
  • 39. Desarrollo de Aplicaciones para Android Plug-in para Eclipse: plataformas Desarrollo de Aplicaciones para Android Introducción a Android-39 Mario La Menza Perello
  • 40. Desarrollo de Aplicaciones para Android Plug-in para Eclipse: plataformas Desarrollo de Aplicaciones para Android Introducción a Android-40 Mario La Menza Perello
  • 41. Desarrollo de Aplicaciones para Android AVD Manager • Crear nuevo dispositivo virtual (AVD): Desarrollo de Aplicaciones para Android Introducción a Android-41 Mario La Menza Perello
  • 42. Desarrollo de Aplicaciones para Android Emulador Desarrollo de Aplicaciones para Android Introducción a Android-42 Mario La Menza Perello
  • 43. Desarrollo de Aplicaciones para Android Asistente para la creación de proyectos • Genera la estructura básica del proyecto • AndroidManifest.xml • Actividad principal • Layout • Resto de recursos Desarrollo de Aplicaciones para Android Introducción a Android-43 Mario La Menza Perello
  • 44. Desarrollo de Aplicaciones para Android Asistente para crear recursos XML Desarrollo de Aplicaciones para Android Introducción a Android-44 Mario La Menza Perello
  • 45. Desarrollo de Aplicaciones para Android Vista Dalvik Debug Monitor Service Desarrollo de Aplicaciones para Android Introducción a Android-45 Mario La Menza Perello
  • 46. Desarrollo de Aplicaciones para Android Vista Debug Desarrollo de Aplicaciones para Android Introducción a Android-46 Mario La Menza Perello
  • 47. Desarrollo de Aplicaciones para Android Editor del AndroidManifest.xml Desarrollo de Aplicaciones para Android Introducción a Android-47 Mario La Menza Perello
  • 48. Desarrollo de Aplicaciones para Android Editor visual de layouts Desarrollo de Aplicaciones para Android Introducción a Android-48 Mario La Menza Perello
  • 49. Desarrollo de Aplicaciones para Android Ejemplo: ¡Hola, Mundo! • • Crear nuevo proyecto → Se genera la estructura básica:→ Desarrollo de Aplicaciones para Android Introducción a Android-49 Mario La Menza Perello
  • 50. Desarrollo de Aplicaciones para Android ¡Hola, Mundo! AndroidManifest.xml Desarrollo de Aplicaciones para Android Introducción a Android-50 Mario La Menza Perello <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="es.ua.jtech.ajdm.holamundo" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Main" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="8" /> </manifest>
  • 51. Desarrollo de Aplicaciones para Android ¡Hola, Mundo! • Recursos strings en res/values/strings.xml Desarrollo de Aplicaciones para Android Introducción a Android-51 Mario La Menza Perello
  • 52. Desarrollo de Aplicaciones para Android ¡Hola, Mundo! Desarrollo de Aplicaciones para Android Introducción a Android-52 Mario La Menza Perello • • Recursos strings en res/values/strings.xml Añadimoslosstringhola,mundoyque. <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, Main!</string> <string name="app_name">HolaMundo</string> <string name="hola">Hola, </string> <string name="mundo"> Mundo!</string> <string name="que">Hola ¿qué?</string> </resources>
  • 53. Desarrollo de Aplicaciones para Android ¡Hola, Mundo! • Layout en res/layouts/main.xml Desarrollo de Aplicaciones para Android Introducción a Android-53 Mario La Menza Perello
  • 54. Desarrollo de Aplicaciones para Android ¡Hola, Mundo! • Layout en res/layouts/main.xml • Eliminamos la etiqueta y ponemos una nuev a etiquetaTextViewyunbotónButton: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:text="@+id/TextView01" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Button android:text="@+id/Button01" android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout> Desarrollo de Aplicaciones para Android Introducción a Android-54 Mario La Menza Perello
  • 55. Desarrollo de Aplicaciones para Android ¡Hola, Mundo! • Layout en res/layouts/main.xml • Cambiamos los atributos android:textpara que muestren los string de los recursos. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:text="@string/hola" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:text="@string/que" android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> Desarrollo de Aplicaciones para Android Introducción a Android-55 Mario La Menza Perello
  • 56. Desarrollo de Aplicaciones para Android ¡Hola, Mundo! • Layout en res/layouts/main.xml Desarrollo de Aplicaciones para Android Introducción a Android-56 Mario La Menza Perello
  • 57. Desarrollo de Aplicaciones para Android ¡Hola, Mundo! Emulación Desarrollo de Aplicaciones para Android Introducción a Android-57 Mario La Menza Perello
  • 58. Desarrollo de Aplicaciones para Android ¡Hola, Mundo! Actividad y eventos Desarrollo de Aplicaciones para Android Introducción a Android-58 Mario La Menza Perello Main.java package es.ua.jtech.ajdm.holamundo; public class Main extends Activity { TextView textView; Button button; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); textView = (TextView)findViewById(R.id.TextView01); button = (Button)findViewById(R.id.Button01); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { textView.append(getString(R.string.mundo)); } }); } }
  • 59. Desarrollo de Aplicaciones para Android ¡Hola, Mundo! Emulación 2 Desarrollo de Aplicaciones para Android Introducción a Android-59 Mario La Menza Perello
  • 60. Desarrollo de Aplicaciones para Android ¿Preguntas...? Desarrollo de Aplicaciones para Android Introducción a Android-60 Mario La Menza Perello