Introducción al desarrollo Android, Sesión 2

620 views

Published on

Slides para la segunda sesión de formación en plataformas móviles (Android) en UC3M

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
620
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
24
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introducción al desarrollo Android, Sesión 2

  1. 1. Mecanismos de desarrollo en Android www.solusoft.es
  2. 2. avanzandoenandroid IndiceTipos de AplicacionesControles elementalesControles avanzadosPreferenciasTrabajando en segundo planoLogsDemo Google PlayReferencia www.solusoft.es
  3. 3. tiposdeapps ¿Dónde se desarrollan? Web NativasHíbridas www.solusoft.es
  4. 4. tiposdeapps ¿Dónde se desarrollan?Aplicaciones Nativas•Pensadas para ejecutarse en unaplataforma específica.•En Android se desarrollan en Java.•Se ejecutan de forma eficiente.•Pueden acceder a todos losservicios y sensores del dispositivo.•La aplicación se compila ydistribuye (son muy visibles).•No requiere conexión a internet. www.solusoft.es
  5. 5. tiposdeapps ¿Dónde se desarrollan?Aplicaciones Web Móviles•Se ejecutan dentro del navegador.•Son Multiplataforma y reutilizables.•HTML(5), CSS y Javascript.•No requieren aprobación.•El mantenimiento es responsabilidadnuestra.•No son eficientes.•El acceso a recursos del teléfono eslimitado.•No se distribuyen en el market. www.solusoft.es
  6. 6. tiposdeapps ¿Dónde se desarrollan?Aplicaciones Híbridas•Una parte de la aplicación esespecífica de la plataforma, otra esmultiplataforma y reutilizable.•El desarrollo es algo máscomplicado.•La comunicación con los recursosdel teléfono se realiza mediantecomunicadores.•No son especialmente eficientes.•Se distribuyen en el market. www.solusoft.es
  7. 7. tiposdeapps ¿Dónde están los datos? Aisladas ConectadasSincronizadas www.solusoft.es
  8. 8. tiposdeapps ¿Dónde están los datos?Aplicaciones Aisladas•Los datos y el procesamiento seencuentran en el dispositivo.•No requiere conexión a internet.•El mantenimiento se centraliza.•Es más fácil de distribuir.•La comunicación entre dispositivosno es posible.•Padece un alto grado defragmentación.•Es muy difícil migrar a otrasplataformas. www.solusoft.es
  9. 9. tiposdeapps ¿Dónde están los datos?Aplicaciones Conectadas•Los datos y el procesamiento sealojan en un servicio web.•Requiere conexión a internetconstante.•El mantenimiento no es centralizado.•Su distribución es más compleja.•Permite comunicación entredispositivos.•Padece un grado medio defragmentación.•Se facilita migrar a otrasplataformas. www.solusoft.es
  10. 10. tiposdeapps ¿Dónde están los datos?Aplicaciones Sincronizadas•Los datos y el procesamiento sealojan en la web y parte en eldispositivo.•Permite su uso sin conexión ainternet.•Su implementación es máscomplicada.•Los datos no están siempreactualizados.•Ventajas y desventajas de ambostipos. www.solusoft.es
  11. 11. controlesbasicos usados con frecuencia www.solusoft.es
  12. 12. controlesbasicos usados con frecuenciaControles de EntradaMétodos frecuentes:•getText /getValue•setText / setValue•setEnabled•setVisibilityEventos relevantes:•onClick()•onLongClick()•onFocusChange()•onKey()•onTouch() www.solusoft.es
  13. 13. controlesbasicos usados con frecuenciaEjemplo de usoEl botón estará deshabilitadohasta que la caja de textotenga algo escrito. onKey() setEnabled onClick() getText www.solusoft.es
  14. 14. controlesavanzados usados con frecuencia www.solusoft.es
  15. 15. controlesavanzados ListView ListView •Muestra una lista desplazable de elementos. •Por defecto serán titulo y descripción. •Se rellenan utilizando un Adapter que inyecta contenidos. •Admiten mucha personalización. www.solusoft.es
  16. 16. controlesavanzados ListView www.solusoft.es
  17. 17. controlesavanzados ListView Elementos personalizados •Es frecuente definir el layout de los elementos individuales que se muestran en la lista. •Basta con generar un layout para el elemento y especificar como se rellena en el Adapter correspondiente. www.solusoft.es
  18. 18. controlesavanzados ListView www.solusoft.es
  19. 19. controlesavanzados ListView Actividad y Adaptador •La actividad que controla la lista debería extender la clase ListActivity •Para representar items con layouts complejos hay que implementar un CustomAdaptater que controlará como se muestra cada elemento www.solusoft.es
  20. 20. controlesavanzados ListView Adapterpublic class ControladorLista extends ListActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.lista); // Obtenemos la lista de Libros ArrayList<Libro> Libros = getItems(); // Entregamos la lista de Libros al adaptador de la lista setListAdapter(new LibroAdapter(this, R.layout.lista_item, Libros)); } www.solusoft.es
  21. 21. controlesavanzados ListView Adapterprivate class LibroAdapter extends ArrayAdapter<Libro> { private ArrayList<Libro> items; public LibroAdapter(Context context, int textViewResourceId, ArrayList<Libro> items) { super(context, textViewResourceId, items); this.items = items; } @Override public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; if (v == null) { LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = vi.inflate(R.layout.lista_item, null); } Libro libro = items.get(position); if (libro != null) { TextView ttitulo = (TextView) v.findViewById(R.id.titulo); TextView tautor = (TextView) v.findViewById(R.id.autor); if (ttitulo != null) { ttitulo.setText(libro.getTitulo()); } if (tautor != null) { tautor.setText(libro.getAutor()); } } return v; }} www.solusoft.es
  22. 22. controlesavanzados ListView AdapterPara ver este ejemplo en detalle…http://blog.findemor.es/2011/02/como-programar-en-android-guia-3/http://blog.findemor.es/2011/02/como-programar-en-android-guia-4/ www.solusoft.es
  23. 23. controlesavanzados Menu Menú de aplicación •Aparecen en la zona inferior al pulsar el botón de menú •Pueden definirse por XML o Runtime •Es posible agrupar opciones, establecer iconos, etc. •Recomendado para opciones secundarias www.solusoft.es
  24. 24. controlesavanzados Menu www.solusoft.es
  25. 25. controlesavanzados Preferencias Preferencias •Permiten almacenar datos personales, opciones, et c, de tipo clave-valor. •No debe sustituir el uso de SQLite, ficheros, etc. •Pueden definirse por XML (DefaultShared) o Runtime (Shared) www.solusoft.es
  26. 26. controlesavanzados Preferencias Implementar la Activity… Y para leerlas… www.solusoft.es
  27. 27. controlesavanzados WebViews WebView •Permiten navegar •Permiten implementar aplicaciones Web o Híbridas •Pueden manejarse redirecciones, etc. •Admite mucha configuración •Es muy costoso en rendimiento www.solusoft.es
  28. 28. controlesavanzados WebViews www.solusoft.es
  29. 29. segundoplanoTrabajando en segundo plano www.solusoft.es
  30. 30. segundoplano Trabajando en segundo planoUIThreadAlarmBroadcastService www.solusoft.es
  31. 31. segundoplano UIUI thread – Main thread•Es el hilo principal de la app.•Lo crea el sistema cuando seejecuta la aplicación.•Ejecuta la parte gráfica.•Nunca debe bloquearse conoperaciones no instantáneas.•Accede a Android UI toolkit www.solusoft.es
  32. 32. segundoplano UI www.solusoft.es
  33. 33. segundoplano ThreadsWorker threads - AsyncTasks•Hilos secundarios y tareasasíncronas.•Lo crea el hilo principal cuandonecesita realizar tareas noinstantáneas.•Ningún hilo secundario debeacceder a la Android UI toolkit.•Podemos bloquear la interfazusando un www.solusoft.es
  34. 34. segundoplano Threads www.solusoft.es
  35. 35. segundoplano AlarmsAlarmManager•Es un hilo secundario.•La aplicación configura y registrasu disparador en elAlarmManager.•Permite programar tareas en elfuturo o ejecutar aplicaciones.•Se mantiene si el sistema entraen reposo.•Se eliminan si el sistema seapaga o reinicia.•¡Es más eficiente que un WorkerThread!. www.solusoft.es
  36. 36. segundoplano Alarms www.solusoft.es
  37. 37. segundoplano BroadcastBroadcastReceiver•Es un hilo secundario.•El sistema los ejecuta cuando segenera un mensaje Broadcast.•Permite detectar eventos delsistema y desencadenar tareas.•La aplicación también puedeemitir mensajes Broadcast.•LocalBroadcastManager es máseficiente y seguro, pero es deámbito local. www.solusoft.es
  38. 38. segundoplano BroadcastDeclaración y permiso necesario www.solusoft.es
  39. 39. segundoplano ServicesServices•Es una aplicación en sí mismo,sin interfaz de usuario.•Los ejecuta algún componente(como una actividad) llamando astartService().•Se ejecuta indefinidamente.•Admite Bound de otroscomponentes para ofrecer unainterfaz cliente-servidor.•Puede generar hilos a su vez.•Al tratarse de un componente:deben declararse en el Manifest. www.solusoft.es
  40. 40. segundoplano ServicesPermiso necesario www.solusoft.es
  41. 41. dudaspendientes Preguntas sin resolver www.solusoft.es
  42. 42. dudaspendientes LOGs para depurarLogcat Almacenamiento Permiso necesario <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> www.solusoft.es
  43. 43. demogoogleplay Llegando a los usuarios www.solusoft.es
  44. 44. codetimeEs hora de probar www.solusoft.es
  45. 45. algunasreferencias En caso de duda…Estas diapositivashttp://bit.ly/soluAndroid2Guías de uso del APIhttp://developer.android.com/guideEntrenamiento y ejemploshttp://developer.android.com/trainingReferencias APIhttp://developer.android.com/referenceInstalar el SDKhttp://developer.android.com/tools/index.htmlRepositorio DEMOhttps://github.com/findemor/FormacionAndroidEjemplosGuías en mi blog http://blog.findemor.es/category/android/ www.solusoft.es
  46. 46. playtime Es hora de jugarTag V1 Ejercicio propuesto Servicio en segundo plano que almacena posiciones, que serán mostradas en una lista y se verán en un mapa al seleccionar una. Fecha corrección: 30/11/2012 www.solusoft.es
  47. 47. contactmeEn caso de duda consulte a su farmacéutico Manuel J. García Técnico de Innovación en solusoft mgarcia@solusoft.es @findemor Foro de Imagineware http://foro.imagineware.info www.solusoft.es

×