Download - Curso Android Tema 2
![Page 1: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/1.jpg)
Android
Introducción a la plataforma
Yésica Hernández
Jorge Frank Cesar Aguirre
![Page 2: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/2.jpg)
Introducción a la plataforma
¿Qué debo hacer primero?
Entender el patrón de
diseño MVC
Entender los tipos de
aplicaciones
Entender el ciclo de vida
![Page 3: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/3.jpg)
El modelo MVC en Android
La parte visual que permite al
usuario interactuar
Código que recibe y
procesa los eventos de la
vista
Define el comportamiento
u objetivo del programa
Introducción a la plataforma
![Page 4: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/4.jpg)
Pila
de c
om
ponente
s
Introducción a la plataforma
Veamos más a detalle …
![Page 5: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/5.jpg)
Pila
de c
om
ponente
s
Introducción a la plataforma
![Page 6: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/6.jpg)
Introducción a la plataforma
Mi código
Java SE Java ME
API Android
Pila de componentes
En conclusión
Para programar en Android se requiere un
buen conocimiento de JAVA
Luego hay que comprender el API de
Android
Finalmente, reusar nuestro propio código y
hacerlo cada vez mas profesional, útil y
eficiente
![Page 7: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/7.jpg)
Tipos de aplicación
Aplicaciones en primer plano
Tienen funcionalidad solo cuando estan en primer plano.
Ejemplo: juegos y aplicaciones con mapas
Aplicaciones en segundo plano
Después de ser configuradas pasan la mayor parte del tiempo
ejecutandose en segundio plano, normalmente responden a
eventos causados por el HW, sistema u otras aplicaciones por
ejemplo la interfaz de las llamadas entrantes o salientes y el
gestor de red
Oh!
Introducción a la plataforma
![Page 8: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/8.jpg)
Tipos de aplicación
Aplicaciones intermitentes
Necesitan algunas interacciones con el usuario,
pero generalmente resuelven todas sus
actividades por si mismas, por ejemplo: el
reproductor multimedia
Widgets
Se ejecutan desde la pantalla de Home del
usuario.
Introducción a la plataforma
![Page 9: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/9.jpg)
Componentes de una aplicación
Actividades
Consiste en una pantalla con una sola interfaz de usuario, una
aplicación se compone de un conjunto de actividades. Se
compone por la definición de un esqueleto xml de la interfáz o
varios y una clase controladora que hace uso de dichos
elementos.
Servicios
Se ejecuta en segundo plano y provee funcionalidad a otras
aplicaciones. Por ejemplo el reproductor de música que corre en
segundo plano mientras hacemos otras tareas
El usuario puede
interactuar a través de
ellas
Tienen un ciclo de vida
diferente a las actividades
Introducción a la plataforma
![Page 10: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/10.jpg)
Componentes de una aplicación
Proveedores de contenido
Permiten compartir datos con otras actividades y servicios.
Usan una interfáz estándar en forma de URI.
Cuando una aplicación es registrada en el sistema como
proveedor de contenido, puede ser capaz de responder a
estas peticiones
Notificaciones
Permiten desplegar de forma visual y/o auditiva mensajes
para capturar la atención del usuario.
Por ejemplo, existe un proveedor para los
contactos del teléfono
Se pueden personalizar
visualmente u obtener datos a través de
ellas
Introducción a la plataforma
![Page 11: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/11.jpg)
El ciclo de vida de una Actividad
Para cada Actividad se deben sobrecargar los metodos:
onCreate
onStart
onResume
onPause
onStop
onDestroy
Introducción a la plataforma
![Page 12: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/12.jpg)
Ciclo de vida onCreate
es llamada cuando la aplicacion se crea por primera vez.
Crear e inicar elementos de las vistas, bd
Obtener mensajes de otras actividades (mediante un Bundle)
onStart
es llamada cuando la actividad se muestra en pantalla,
onResume
se ejecuta despues de onStart si la actividad corre en segundo plano de la vista, puede manejar los eventos derivados de la vista.
Si otra aplicacion pide el foco en pantalla y luego al finalizar devuelve la vista a nuestra aplicacion, se ejecuta para poder actualizar datos en la vista.
Me!
Introducción a la plataforma
![Page 13: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/13.jpg)
Ciclo de vida onPause
Cuando se hace la transición a otra actividad, aqui se puede definir que partes del programa no se deben seguir ejecutando para ahorrar recursos.
En este estado, si el dispositivo de queda sin memoria, considerara terminar la aplicación.
onStop
se ejecuta cuando la actividad no esta visible ya sea porque otra actividad solicitó el foco o porque la activida será destruida
onDestroy
es el último método de la aplicación que se ejecutará antes de que el proceso sea destruido
Me!
Introducción a la plataforma
![Page 14: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/14.jpg)
Ciclo de vida onPause
Cuando se hace la transición a otra actividad, aqui se puede definir que partes del programa no se deben seguir ejecutando para ahorrar recursos.
En este estado, si el dispositivo de queda sin memoria, considerara terminar la aplicación.
onStop
se ejecuta cuando la actividad no esta visible ya sea porque otra actividad solicitó el foco o porque la activida será destruida
onDestroy
es el último método de la aplicación que se ejecutará antes de que el proceso sea destruido
Me!
Introducción a la plataforma
![Page 15: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/15.jpg)
Ciclo de vida de los Servicios El proceso de servicio es independiente del componente
que lo creo y puede correr indefinidamente.
onStartCommand() El sistema llama este método cuando
una activity pide que un servicio sea iniciado usando
startService().
onBind El sistema llama este método cuando otro
componente quiere unirse con el servicio llamado a
bindeService().
onCreate() Cuando el servicio es creado por primera vez.
onDestroy() El sistema llama este método cuando el servicio
ya no es usado y esta siendo destruido
Me!
Introducción a la plataforma
![Page 16: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/16.jpg)
Errores en tiempo de ejecución
ADB juega un papel fundamental para hallar el error
Introducción a la plataforma
Android monitorea los procesos para
evitar que “congelen” al OS
![Page 17: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/17.jpg)
Sistemas operativos soportados • Windows XP (32-bit), Vista (32- ó 64-bit), o
Windows 7 (32- ó 64-bit) • Mac OS X 10.5.8 o mayor (x86) • Linux (probado en Ubuntu Linux, Lucid
Lynx) o GNU C Library (glibc) 2.7 o mayor es
requerido o En Ubuntu Linux, versión 8.04 o mayor
es requierido. o Las 64-bit deben ser capaces de ejecutar
aplicaciones de 32 bits
Entorno de desarrollo
Se recomiendan al menos 2Gb en RAM
Requisitos mínimos
![Page 18: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/18.jpg)
Eclipse IDE
• Eclipse 3.6 (Helios) o mayor
• Eclipse JDT plugin (Incluido en la mayoría de los paquetes)
• Los paquetes específicos recomendados para la instalación son
o Eclipse IDE for Java Developers
o Eclipse Classic
o Eclipse IDE for Java EE Developers
• JDK 5 or JDK 6 (JRE por si solo no es suficiente)
• Android Development Tools plugin (recomendado)
• No compatible con Gnu Compiler for Java (gcj)
Entorno de desarrollo
![Page 19: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/19.jpg)
Se deben seguir los siguientes pasos para instalar el SDK de Android
1.Preparar su computadora de desarrollo y asegurarse que cumpla los requisitos mínimos.
– Instale el SDK starter package
– Instale el ADT Plugin para Eclipse
– Agregue los componentes de Android al SDK.
Entorno de desarrollo Instalación
![Page 20: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/20.jpg)
Instalación Contenido del SDK
Docs
Copia de la documentación mas reciente
Platforms
Librerias, imagenes de sistema, codigo de muestra, skins y adb.
Platform-tools
Herramientas de desarrollo y depuración que dependen de la plataforma y se actualizan cuando se libera una nueva.
Tools
Herramientas de desarrollo y depuración, se actualizan periodicamente.
![Page 21: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/21.jpg)
Instalación
Configuración de Eclipse
Help > Install New Software
Agregar url: https://dl-ssl.google.com/android/eclipse/
![Page 22: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/22.jpg)
Instalación
Configuración de Eclipse
Window > Preferences
![Page 23: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/23.jpg)
Introducción: Android
ADB (Linea de comandos)
Cliente y servidor en la maquina de desarrollo
Servicio (deamon) en el dispositivo
Establecer conexion con los dispositivos
Ejecutar comandos
Instalar aplicaciones
Obtener el log del sistema
Acceder a bases de datos SQLite en el dispositivo
<3
![Page 24: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/24.jpg)
Introducción: Android
ANDROID (herramienta por linea de comandos o GUI)
![Page 25: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/25.jpg)
Introducción: Android
ANDROID (herramienta por linea de comandos o GUI)
![Page 26: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/26.jpg)
Introducción: Android
ANDROID (herramienta por linea de comandos o GUI)
Aqui estamos descargando el
api14 ICS
![Page 27: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/27.jpg)
Introducción: Android
DDMS (herramienta por linea de comandos o GUI)
Oh!
![Page 28: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/28.jpg)
Introducción Android
Creando un dispositivo virtual
En la herramienta android se pueden crear
tanto dispositivos virtuales se deseen
Por linea de comandos:
./RUTA_SDK_ANDROID/tools/android
Por medio del IDE
![Page 29: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/29.jpg)
Introducción: Android
MAS INFORMACION
http://developer.android.com/
guide/developing/tools/index.html
Yes!
![Page 30: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/30.jpg)
Estructura del proyecto
![Page 31: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/31.jpg)
• Carpeta /src/
Contiene todo el código fuente de la aplicación, código de la interfaz gráfica, clases auxiliares, etc. Inicialmente, Eclipse creará por nosotros el código básico de la pantalla (Activity) principal de la aplicación, siempre bajo la estructura del paquete java definido.
Estructura del proyecto
![Page 32: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/32.jpg)
Carpeta /res/
Contiente todos los ficheros de recursos necesarios para el proyecto: imágenes,
vídeos, cadenas de texto, etc. Los diferentes tipos de recursos de deberán
distribuir entre las siguientes carpetas:
• /res/drawable/
• /res/layout/
• /res/anim/
• /res/menu/
• /res/values/ de texto (strings.xml),
estilos (styles.xml), colores (colors.xml),
etc.
• /res/xml/
• /res/raw/
Estructura del proyecto
![Page 33: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/33.jpg)
• Carpeta /gen/
Contiene una serie de elementos de código generados
automáticamente al compilar el proyecto. Cada vez que
generamos nuestro proyecto, la maquinaria de
compilación de Android genera
por nosotros una serie
de ficheros fuente en java
dirigidos al control de los
recursos de la aplicación.
Estructura del proyecto
![Page 34: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/34.jpg)
Carpeta /assets/
• Contiene todos los demás ficheros
auxiliares necesarios para la aplicación
• Diferencia entre los recursos incluidos
en la carpeta /res/raw/ y los incluidos en
la carpeta /assets/
Estructura del proyecto
![Page 35: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/35.jpg)
Android Manifest Propósito
Este archivo define la estructura y los metadatos de la aplicación, sus componentes y requerimientos.
Define cada componente de la aplicación en un nodo y para cada uno define filtros de intentos y permisos que controlan la interacción entre ellos.
Define configuraciones de seguridad, requerimientos de hardware y de plataforma.
Algunos elementos:
reqFiveWayNav - especifica que el dispositivo debe tener un trackball o un D-pad
reqHardKeyboard - especifica que se necesita un teclado físico
![Page 36: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/36.jpg)
Programando en Android AndroidManifest.xml
Algunos elementos:
uses-feature
android.hardware.camera si se requiere la camara del dispositivo
suports-screns
smallScreens - QVGA
normalScreen - WVGA
anyDensity - si la aplicacion se acomodaa cualquier densidad
application
activity
provider
receiver
uses-permision - habilita el uso de recursos
permision - establece restricciones al acceder a la aplicacion
instrumentation - declara clases de prueba de la aplicacion
.
Oh!
![Page 37: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/37.jpg)
Android Manifest Configuración de AndroidManifest.xml
Configuraciones que ya tenemos
Declaración de las actividades que forman la aplicación
Lo que vamos a agregar
Indicar qué actividad es la inicial
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
![Page 38: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/38.jpg)
Android Manifest
Configuración de AndroidManifest.xml
<activity android:label="@string/app_name" android:name="ControladorLogo">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="ControladorJuego" />
.
![Page 39: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/39.jpg)
Android Manifest
Configuración de AndroidManifest.xml
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.VIBRATE"
/>
Por ejemplo aquí estamos otorgando a la aplicación permiso para
que pueda generar vibraciones a través del hardware del teléfono.
![Page 40: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/40.jpg)
Recursos del proyecto
¿Que es un resource?
¿Porque utilizar resources?
Unificar nombres
Unificar formatos
Agrupar tipos
![Page 41: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/41.jpg)
¿Que tipos de resources existen?
Animaciones
Colores Imágenes Layouts Menús Strings / Valores
XMLs Archivos en general
![Page 42: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/42.jpg)
¿Cómo se ven reflejados en el código?
![Page 43: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/43.jpg)
Buenas prácticas
![Page 44: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/44.jpg)
Compatibilidad
Requerimientos de hardware
(Reconocimiento del hdw disponible en el dispositivo)
Requerimientos de software
(Reconocimiento de la versión de la API, mínima y óptima)
Localidad e idioma
![Page 45: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/45.jpg)
Directrices de diseño de UI
• Diseño de iconos.
• Íconos de launch
• Íconos de menú
• Íconos de List view
• Diseño de widgets
![Page 46: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/46.jpg)
Otras buenas prácticas
Diseño de actividades y tareas
Usabilidad del task
Minimalismo en el diseño
de las actividades
Diseño de menús
Menú de opciones, para funcionalidades primarias
Menú contextual para funciones secundarias
![Page 47: Curso Android Tema 2](https://reader036.vdocuments.pub/reader036/viewer/2022081413/546dadd8b4af9f892c8b5516/html5/thumbnails/47.jpg)
Tarea Revisar el ’’User
Interface Guidelines’’ de
Android