Professional Documents
Culture Documents
Android
Introduccin al desarrollo de aplicaciones para el sistema
operativo Android
Temas del da
Introduccin
Ciclo de vida de aplicaciones Android
Componentes esenciales de una aplicacin
Introduccin a sensores
Consola
Hola mundo!
Ejemplos de aplicaciones
Introduccin
Por donde empezamos?
Introducin
Luego, descomprimimos el .zip que
descargamos y comenzamos a
Introduccin
Introduccin
Para desarrollar en Android pueden utilizar
Aplicaciones
Cada aplicacin tiene su propio proceso y
puede tener multiples threads.
Cada proceso tiene su propia y separada VM.
Cada aplicacin es asignada a un unico "Linux
user ID" por default los archivos de cada
aplicacin son solo visibles por esa aplicacin
pero pueden explicitamente exportarse a otras
aplicaciones.
Ciclo de vida
Qu es el ciclo de vida de aplicaciones
Android?
Componentes esenciales de
una aplicacin
Activities
Services
Broadcast receiver
Content provider
Intents
AndroidManifest
Componentes de una
aplicacin
Activities: interface de usuario, focalizado en
una sola cosa, lo que el usuario puede hacer.
Services: sin interface de usuario, se ejecutan
en background.
Broadcast Receivers: reciben y reaccionan
frente a "broadcast announcements".
Content Providers: permiten el intercambio de
datos entre aplicaciones.
Intents: Mensajes entre Activities.
Activities
Es un componente bsico de las mayora de las
aplicaciones.
La mayora de las aplicaciones tienen muchas
activities que se inician desde otras activities.
Cada activity esta implementada como una
subclase de la clase base "Activity".
Activities La vista
Cada activity tiene una ventana por default que
la contiene, donde sta puede dibujar.
El contenido de la ventana es una vista o un
grupo
de vistas que derivan de "View o ViewGroup".
Ejemplos de "views": buttons, text fields, scroll
bars, menu items, check boxes, etc.
View o ViewGroup se hacen visibles mediante el
mtodo "Activity.setContentView()".
Services
No tienen interface visual
Se ejecutan en background indefinidamente.
Ejemplos:
Descargas de Red
Reproducciones de msica
Servidores TCP/UDP
En una aplicacin nos podramos vincular con
un servicio existente y controlar su operacin.
Broadcast Receivers
Reciben y reacionan a "broadcast
announcements".
Extienden la clase base "BroadcastReceiver".
Ejemplos:
batteria baja, cable de carga conectado,
shutdown, cambio de timezone, etc.
Otras aplicaciones pueden iniciar broadcasts
Content Providers
Nos permiten que los datos de una aplicacin
se puedan compartir a otras aplicaciones.
Es la nica manera de transferir datos entre
aplicaciones en Android (no hay shared files,
shared memory, pipes, etc.)
Extienden la clase base ContentProvider.
Las aplicaciones utilizan un objeto de tipo
"ContentResolver" para acceder a los datos
provistos por un "ContentProvider".
Intents
Un intent es un objecto con un mensaje.
Las "Activities", los "Services" y los
"BroadcastReceivers" son iniciados por Intents.
Un "ContentResolver" es iniciado por un "ContentProviders".
Una "activity" es iniciada por:
Context.startActivity(Intent intent)
Activity.startActivityForResult(Intent intent, int RequestCode).
Un "service" es iniciado por:
Context.startService(Intent service)
Una aplicacin puede iniciar un "broadcast" usando un
"Intent":
Context.sendBroadcast(Intent intent)
Context.sendOrderedBroadcast()
Context.sendStickyBroadcast()
Terminando componentes
Activities
Pueden finalizar su ejecucin mediante el mtodo finish()
Pueden terminar otras activities mediante finishActivity()
Services
Pueden finalizar su ejecucin mediante el mtodo stopSelf()
Pueden terminar otros services mediante
Context.stopService()
Content Resolvers
Estn activos solo cuando responden a los Content Providers.
Broadcast Receivers
Estn activos solo cuando responden a los broadcasts.
Android Manifest
Su principal objetivo es declarar los componentes al sistema
Android:
<?xml version="1.0" encoding="utf-8"?>
<manifest . . . >
<application . . . >
<activity
android:name="com.example.project.FreneticActivity"
android:icon="@drawable/small_pic.png"
android:label="@string/freneticLabel"
. . . >
</activity>
...
</application>
</manifest>
Filtrar Intents
Ejemplo de como filtrar los intents en una aplicacin (AndroidManifest):
<?xml version="1.0" encoding="utf-8"?>
<manifest . . . >
<application . . . >
Permite
<activity android:name="com.example.project.FreneticActivity"
iniciar la
android:icon="@drawable/small_pic.png"
principal
android:label="@string/freneticLabel"
. . . >
activity
<intent-filter . . . >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter . . . >
<action android:name="com.example.project.BOUNCE" />
<data android:mimeType="image/jpeg" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
Maneja las
</activity>
imgenes
...
JPEG de
</application>
alguna
</manifest>
manera.
Introduccin a sensores
La mayora de los dispositivos Android, poseen
sensores integrados, que miden movimiento,
orientacin y otras variadas condiciones
ambientales.
Estos sensores son capaces de proveer datos
Introduccin a sensores
Sensores de movimiento
Medir Cambios en la velocidad del dispositivo
Sensores de medio ambiente
Medir Cambios en la temperatura del interior del dispositivo
Sensores de posicin
Utilizar el sensor de campo geomagntico, el giroscopio y el
acelermetro, para crear una brjula (la API de Android ya
contempla esta funcionalidad)
Introduccin a sensores
No todos los sensores estn disponibles en todos los
dispositivos
Acelermetros casi siempre
Giroscopios slo en los dispositivos high-end
Sensor magntico casi siempre
Sensor de temperatura ambiente casi nunca
Sensor de proximidad casi siempre
Sensor de luz, puede no haber
Micrfono, siempre
Multitouch ojo con dispositivos viejos
Fusin de sensores depende del fabricante y de
la versin de android disponible!
Sensores: Sistemas de
coordenadas
En general, el framework de los sensores, utiliza un sistema
Sensores: Sistemas de
coordenadas cont.
Los sensores que utilizan este sistemas de
coordenadas son
Sensor acelermetro
Sensor de gravedad
Giroscopio
Sensor de aceleracin lineal
Sensor de campo geomagntico
Sensores de movimiento
Los sensores de movimiento, nos permiten tener un
Sensor de gravedad
El sensor de gravedad provee un vector de 3 dimensiones
Giroscopio
El giroscopio mide el radio de rotacin en rad/s del
Sensores de movimiento
cont.
Sensor Podmetro
El contador de pasos, provee el nmero de pasos
Sensores de posicin
Las plataformas Android proveen dos sensores que nos
El sensor geomagntico
Similar al vector de rotacin, pero utiliza un magnetmetro
en lugar de un girscopo, para medir un vector de rotacin
respecto al campo magntico de la tierra. Es menos
precisos que n girscopo, pero consume menos batera
El sensor de orientacin
Nos da un vector que representa el marco de referencia
del dispositivo, respecto del norte geomagntico de la
tierra
El sensor de proximidad
Nos permite detectar que tan cerca o lejos esta un objeto
del dispositivo.
Sensores de medio-ambiente
La plataforma Android, provee 4 sensores que
Servicios de ubicacin
Para localizar un dispositivo utilizando los
Hola Mundo!
Como los informticos somos muy creativos,
Fin de la presentacion
Ahora, veamos unos ejemplos de cdigo, que
es lo mas divertido
Fin!
Preguntas?
Preguntas?
Preguntas?
Preguntas?
Preguntas?
Pregun