seminario android

28
Android Daniel Guzmán Fran Carpio

Upload: francarpio89

Post on 13-Jun-2015

526 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Seminario Android

Android

Daniel Guzmán

Fran Carpio

Page 2: Seminario Android

Índice

1. ¿Qué es android?

2. Arquitectura del sistema

3. Arquitectura de las aplicaciones

4. Interfaces de usuario

5. Almacenamiento de datos

6. Primera aplicación

7. Referéncias

Android

Page 3: Seminario Android

1. ¿Qué es android? • Conjunto de software que incluye S.O., middleware y

aplicaciones.

• SDK: soporte y API para el desarrollo de aplicaciones para

Android

• Características: o Navegador integrado basado en WebKit

o Gráficos optimizados con OpenGL ES 2.0

o SQLite, para almacenamiento de datos estructurados

o Soporte multimedia: WebM, H.263, H.264, MPEG-4,

AAC, MP3, JPEG, PNG…

o Conectividad: GSM/EDGE, CDMA, UMTS, Bluetooth, WiFi, LTE, HSDPA,

HSPA+ y WiMAX…

o Soporte para cámaras de fotos, de vídeo, pantallas táctiles, GPS,

acelerómetros, giroscopios, magnetómetros, sensores de proximidad y de

presión, sensores de luz, gamepad, termómetro, aceleración por GPU 2D y

3D.

o Entornos de desarrollo: emulador, dispositivo real

Android

Page 4: Seminario Android

2. Arquitectura del sistema

Android

Page 5: Seminario Android

• Versión 3.x del Kernel de Linux

• El kernel es el encargado de:

• La seguridad

• Gestión de memoria

• Gestión de procesos

• Red

• Drivers

• Núcleo actua como capa de abstracción entre el hardware y

el software

Android

2. Arquitectura del sistema

Page 6: Seminario Android

Conjunto de librerías escritas en C o C++ y compliladas para la

arquitectura de hardware específica del teléfono.

• Hechas por el fabricante, quien también se encarga de instalarlas en el

dispositivo antes de ponerlo a la venta.

• OpenGL (motor gráfico), Bibliotecas multimedia (formatos de audio, imagen

y video), Webkit (navegador), SSL (cifrado de comunicaciones), FreeType

(fuentes de texto), SQLite (base de datos), entre otras.

Android

2. Arquitectura del sistema

Page 7: Seminario Android

• Core Libraries: Aquí encontramos las librerías con la funcionalidades

habituales de Java así como otras específicas de Android.

• Máquina virtual Dalvik: Las aplicaciones se codifican en Java y son

compiladas en un formato específico para que esta máquina virtual las

ejecute.

• Dalvik es una variación de la máquina virtual de Java, por lo que no es

compatible con el bytecode Java.

• Java se usa como lenguaje de programación.

• SDK de Android genera .dex que es específico para Dalvik, y por ello no

podemos correr aplicaciones Java en Android ni viceversa.

Android

2. Arquitectura del sistema

Page 8: Seminario Android

• El Framework de aplicaciones está formado por todas las

clases y servicios que utilizan directamente las aplicaciones

para realizar sus funciones.

• Los componentes de esta capa son librerías Java que

acceden a los recursos de las capas anteriores a través de la

máquina virtual Dalvik

Android

2. Arquitectura del sistema

Page 9: Seminario Android

• En esta capa se ubicaran las aplicaciones “preinstaladas”

y las aplicaciones del desarrollador.

• Aplicaciones escritas en lenguaje JAVA

• Aplicaciones incluidas por defecto:

• Cliente email

• Gestor SMS

• Navegador

• Contactos

• Google Play (Anterior Android Market) …

Android

2. Arquitectura del sistema

Page 10: Seminario Android

Android

Activity: Pantalla o ventana que

contiene la interfaz de usuario

de la aplicación.

• Activa (En pantalla): Está

en el top de la pila.

• Pausada: visible pero sin el

foco (hay otra activa).

• Parada: No visible por el

usuario, el sistema la puede

eliminar en caso de pocos

recursos.

Cada cambio de estado se

deberá notificar a través de los

métodos de la actividad

3. Arquitectura de las aplicaciones

Page 11: Seminario Android

Android

Métodos de la activity:

• void onCreate(): llamada al crearse

• void onStart(): actividad pasa a ser visible al usuario

• void onRestart(): llamada cuando la actividad ha sido

parada y se reinicia de nuevo

• void onResume(): actividad proviene de estar parcialmente

escondida a estar al frente

• void onPause(): llamada cuando la actividad va a ser

pausada y otra activity previa será reanudada

• void onStop(): actividad deja de ser visible para el usuario

• void onDestroy(): llamado al cerrar la actividad

(manualmente o por el sistema para conseguir memória)

3. Arquitectura de las aplicaciones

Page 12: Seminario Android

• En Android, las interfaces se construyen

utilizando los objetos View y ViewGroup

• Las Views son el punto de interacción con

el usuario (setContentView() en Activity)

Android

• Widget: Son Views preconstruidas que

vienen incluidas en la plataforma Android.

• Están en el paquete: android.widget

4. Interfaces de usuario

Interfaces

Layout

Notifications

Compound

components

Menus

• Son casi 50 clases y 30 interfaces

• Button, TextView, EditText, ListView, CheckBox,

RadioButton, Gallery, Spinner …

• AutoCompleteTextView, ImageSwitcher & TextSwitcher

Page 13: Seminario Android

Android

Interfaces

Layout

Notifications

Compound

components

Menus

• Su objetivo es controlar la posición de las Views hijas

en la pantalla.

• Tipos:

• FrameLayout: el más simple: añade cada View hija en la

esquina superior izquierda.

• LinearLayout: añade cada View hija en línea recta

horizontal o vertical.

• RelativeLayout: añade las Views unas en relación a otras.

• AbsoluteLayout: añade las vistas dando coordenadas

absolutas.

4. Interfaces de usuario

Page 14: Seminario Android

Android

Interfaces

Layout

Notifications

Compound

components

Menus

Una vez añadido View/ Widget a nuestro UI, necesitamos

conocer como interaccionar o notificar al usuario.

Ej.: Batería baja, confirmación de recepción de un archivo,

barras de progreso, etc.

Se requiere una manera concreta de información: vibración,

iluminación LEDs

Toast: para breves mensajes desde el background

Status Bar: para recordatorios persistentes que requieren del

usuario

Dialog: para notificaciones relacionadas con la Activity.

4. Interfaces de usuario

Page 15: Seminario Android

Android

Interfaces

Layout

Notifications

Compound

components

Menus

Hacen referencia a Views con funcionalidad compleja añadida.

Para crear componentes compuestos, se pueden crear views y

añadirle métodos para la gestión de eventos.

TextView ListView Spinner

EditText con un Button

4. Interfaces de usuario

Page 16: Seminario Android

Android

Interfaces

Layout

Notifications

Compound

components

Menus

DatePicker TimePicker AutoComplete

4. Interfaces de usuario

Page 17: Seminario Android

Android

• Proporcionan interfaces amigables que muestran la

funcionalidad de nuestra App.

• Android facilita la creación de estos menús

estandarizándolos.

• También se pueden crear a través de XML

• En /res directorio /menu

• .xml con <menu> & <item>

• Tres tipos de menús de aplicación

Interfaces

Layout

Notifications

Compound

components

Menus

Option Menu

Context

Menu

Submenu

• Options Menu: Contiene un

máximo de 6 elementos con

iconos. El único que no soporta

checkbox ni radio-buttons.

4. Interfaces de usuario

Page 18: Seminario Android

Android

• Context Menu

• Conceptualmente similar al botón derecho del ratón.

• Presión sobre la vista unos dos segundos.

• Al aparecer, se invocará el método

onCreatContextMenu()

• Al seleccionar, se invocará el método

onContextItemSelected()

• Para asociar una View a este menú

• registerForContextMenu (View view)

Interfaces

Layout

Notifications

Compound

components

Menus

Option Menu

Context

Menu

Submenu

4. Interfaces de usuario

Page 19: Seminario Android

Android

• Submenús

• Se puede añadir dentro de cualquier menú,

excepto en otro submenú.

• Ideal para categorizar funcionalidades de nuestra

App.

• Igual que en los option Menu, al pulsar se

invocará el método onOptionsItemSelected()

Interfaces

Layout

Notifications

Compound

components

Menus

Option Menu

Context

Menu

Submenu

4. Interfaces de usuario

Page 20: Seminario Android

• En android los ficheros, base de datos

son privados por aplicación, pero

pueden acceder todas las clases de

ésta.

• Para compartir información, se utilizan

los Content Providers

Android

5. Almacenamiento de datos

• Preferences: técnica ágil para guardar datos simples, los

datos se almacenan en pares key /values – generalmente

usado para guardar preferencias (fuentes, colores)

• Para acceder a los ficheros locales se debe crear inputs y

outputs streams.

Storage

Preferences

Local Files

Database

Page 21: Seminario Android

• Las bases de datos se almacenan en la carpeta

• /data/data/nombre_package/databases

• Las aplicaciones normalmente usan bases de datos para

almacenar sus datos, por lo general se usan dos tipos de

implementaciones:

• SQLite

• DB4o

Android

5. Almacenamiento de datos

Page 22: Seminario Android

SQLite

• Es un motor de base de datos ligero en un modelo relacional. SQLite es

rápido y tiene un tamaño reducido por lo que es perfecto para los

dispositivos Android.

• En lugar de las bases de datos pesadas basadas en un servidor, como

Oracle y Microsoft SQL Server, cada base de datos SQLite se almacena

en único archivo en el disco.

DB4o

• Es una base de datos de objeto, por lo que no hay asignación de tablas en

un modelo relacional. Puede conservar los objetos complejos con

colecciones animadas u otros objetos complejos, cualquier nivel de

complejidad en tu jerarquía.

• No esta limitado a objetos planos con tipos primitivos para obtener un

rendimiento razonable.

Android

5. Almacenamiento de datos

Page 23: Seminario Android

¿DB4o 500 veces más rápido que SQLite? (benchmarking ) • Sobre 30000 objetos y 100 iteraciones db4o tomo 1.3 segundos frente los 710

segundos de SQLite

DB4o SQLite

Sincronización desactivada (No actúa en

cada operación) Sincronización activada100%

Envuelta en operaciones No hay operaciones– cada insert/ update/delete se

hace por separado.

Usa tabla no-normalizada Tablas normalizadas.

Utiliza la cache interna de las consultas. Las declaraciones preparadas se lanzan después

de cada ciclo.

Utiliza un comando para cada paso Instrucciones ejecutadas una a una.

Usa el contador de caché rápido Recuento de objetos en cada ciclo

Todo lo mantiene en la memoria cache,

no usa páginas. Tamaño de caché y páginas pequeña.

Android

5. Almacenamiento de datos

Page 24: Seminario Android

Como usar db4o en Android

1. Crear una clase central (ej.: Db4oHelper) que maneja la API de db4o

y controla cuándo crear, abrir y cerrar la base de datos.

2. Crear un Proveedor para cada una de las clases en las que podemos

poner en práctica las consultas asociadas. Se puede hacer que se

extienda de Db4oHelper para obtener todos los métodos de

mantenimiento (abrir, cerrar, etc.)

3. Es importante cerrar la base de datos antes de salir de la App. De lo

contrario los cambios no se realizaran. Una buena manera de

implementar en Android es en la actividad Launcher (main activity),

donde vamos a crear una instancia de Db4oHelper e invocar close()

al salir.

Android

5. Almacenamiento de datos

Page 26: Seminario Android

• Android Aplication Project

• Aplication Name

Android

6. Primera aplicación

Page 27: Seminario Android

• Blank activity

Android

6. Primera aplicación