Seminario Android

746 visualizaciones

Publicado el

0 comentarios
1 recomendación
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
746
En SlideShare
0
De insertados
0
Número de insertados
4
Acciones
Compartido
0
Descargas
32
Comentarios
0
Recomendaciones
1
Insertados 0
No insertados

No hay notas en la diapositiva.

Seminario Android

  1. 1. AndroidDaniel GuzmánFran Carpio
  2. 2. 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
  3. 3. Android1. ¿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
  4. 4. Android2. Arquitectura del sistema
  5. 5. Android2. Arquitectura del sistema • 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
  6. 6. Android2. Arquitectura del sistema 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.
  7. 7. Android2. Arquitectura del sistema • 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.
  8. 8. Android2. Arquitectura del sistema • 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
  9. 9. Android2. Arquitectura del sistema • 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) …
  10. 10. Android3. Arquitectura de las aplicaciones 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
  11. 11. Android3. Arquitectura de las aplicaciones 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)
  12. 12. Android4. Interfaces de usuario Interfaces • En Android, las interfaces se construyen utilizando los objetos View y ViewGroup Layout Notifications • Las Views son el punto de interacción con el usuario (setContentView() en Activity) Compound components • Widget: Son Views preconstruidas que Menus vienen incluidas en la plataforma Android. • Están en el paquete: android.widget• Son casi 50 clases y 30 interfaces • Button, TextView, EditText, ListView, CheckBox, RadioButton, Gallery, Spinner … • AutoCompleteTextView, ImageSwitcher & TextSwitcher
  13. 13. Android4. Interfaces de usuario Interfaces • Su objetivo es controlar la posición de las Views hijas en la pantalla. Layout • Tipos: • FrameLayout: el más simple: añade cada View hija en la Notifications esquina superior izquierda. Compound • LinearLayout: añade cada View hija en línea recta components horizontal o vertical. Menus • RelativeLayout: añade las Views unas en relación a otras. • AbsoluteLayout: añade las vistas dando coordenadas absolutas.
  14. 14. Android4. Interfaces de usuario Una vez añadido View/ Widget a nuestro UI, necesitamos Interfaces conocer como interaccionar o notificar al usuario. Ej.: Batería baja, confirmación de recepción de un archivo, Layout barras de progreso, etc. Notifications Se requiere una manera concreta de información: vibración, iluminación LEDs Compound Toast: para breves mensajes desde el background components Status Bar: para recordatorios persistentes que requieren del Menus usuario Dialog: para notificaciones relacionadas con la Activity.
  15. 15. Android4. Interfaces de usuario Hacen referencia a Views con funcionalidad compleja añadida. Interfaces Para crear componentes compuestos, se pueden crear views y añadirle métodos para la gestión de eventos. Layout Notifications TextView ListView Spinner Compound components Menus EditText con un Button
  16. 16. Android4. Interfaces de usuario Interfaces Layout DatePicker TimePicker AutoComplete Notifications Compound components Menus
  17. 17. Android4. Interfaces de usuario Interfaces • Proporcionan interfaces amigables que muestran la funcionalidad de nuestra App. Layout • Android facilita la creación de estos menús estandarizándolos. Notifications • También se pueden crear a través de XML • En /res directorio /menu Compound components • .xml con <menu> & <item> • Tres tipos de menús de aplicación Menus • Options Menu: Contiene un Option Menu máximo de 6 elementos con Context iconos. El único que no soporta Menu checkbox ni radio-buttons. Submenu
  18. 18. Android4. Interfaces de usuario Interfaces • Context Menu • Conceptualmente similar al botón derecho del ratón. Layout • Presión sobre la vista unos dos segundos. • Al aparecer, se invocará el método Notifications onCreatContextMenu() Compound • Al seleccionar, se invocará el método components onContextItemSelected() Menus • Para asociar una View a este menú • registerForContextMenu (View view) Option Menu Context Menu Submenu
  19. 19. Android4. Interfaces de usuario Interfaces • Submenús • Se puede añadir dentro de cualquier menú, Layout excepto en otro submenú. • Ideal para categorizar funcionalidades de nuestra Notifications App. Compound • Igual que en los option Menu, al pulsar se components invocará el método onOptionsItemSelected() Menus Option Menu Context Menu Submenu
  20. 20. Android5. Almacenamiento de datos Storage • En android los ficheros, base de datos son privados por aplicación, pero pueden acceder todas las clases de Preferences ésta. Local Files • Para compartir información, se utilizan Database los Content Providers • 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.
  21. 21. Android5. Almacenamiento de datos • 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
  22. 22. Android5. Almacenamiento de datosSQLite • 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.
  23. 23. Android5. Almacenamiento de datos ¿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 Sincronización activada100% cada operación) No hay operaciones– cada insert/ update/delete se Envuelta en operaciones hace por separado. Usa tabla no-normalizada Tablas normalizadas. Las declaraciones preparadas se lanzan después Utiliza la cache interna de las consultas. 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, Tamaño de caché y páginas pequeña. no usa páginas.
  24. 24. Android5. Almacenamiento de datos 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.
  25. 25. Android6. Primera aplicación Requisitos para el desarrollo de la aplicación: • Eclipse  http://www.eclipse.org/downloads/ • Android SDK  http://developer.android.com/sdk/index.html • Android ADT Plugin  http://developer.android.com/sdk/installing/installing-adt.html
  26. 26. Android6. Primera aplicación • Android Aplication Project • Aplication Name
  27. 27. Android6. Primera aplicación • Blank activity
  28. 28. Android7. Referéncias • Android Developers o http://developer.android.com/training/basics/firstapp/index.html • Android SDK o http://developer.android.com/sdk/index.html • Android o http://es.wikipedia.org/wiki/Android o http://androideity.com/2011/07/04/arquitectura-de-android/

×