Your SlideShare is downloading. ×
0
Mecanismos de desarrollo en                  Android                     www.solusoft.es
avanzandoenandroid                              IndiceTipos de AplicacionesControles elementalesControles avanzadosPrefere...
tiposdeapps ¿Dónde se desarrollan? Web     NativasHíbridas           www.solusoft.es
tiposdeapps                   ¿Dónde se desarrollan?Aplicaciones Nativas•Pensadas para ejecutarse en unaplataforma específ...
tiposdeapps                  ¿Dónde se desarrollan?Aplicaciones Web Móviles•Se ejecutan dentro del navegador.•Son Multipla...
tiposdeapps                   ¿Dónde se desarrollan?Aplicaciones Híbridas•Una parte de la aplicación esespecífica de la pl...
tiposdeapps   ¿Dónde están los datos?  Aisladas      ConectadasSincronizadas             www.solusoft.es
tiposdeapps                  ¿Dónde están los datos?Aplicaciones Aisladas•Los datos y el procesamiento seencuentran en el ...
tiposdeapps                 ¿Dónde están los datos?Aplicaciones Conectadas•Los datos y el procesamiento sealojan en un ser...
tiposdeapps                  ¿Dónde están los datos?Aplicaciones Sincronizadas•Los datos y el procesamiento sealojan en la...
controlesbasicos     usados con frecuencia          www.solusoft.es
controlesbasicos                            usados con frecuenciaControles de EntradaMétodos frecuentes:•getText /getValue...
controlesbasicos                                      usados con frecuenciaEjemplo de usoEl botón estará deshabilitadohast...
controlesavanzados        usados con frecuencia             www.solusoft.es
controlesavanzados                         ListView    ListView    •Muestra una lista    desplazable de    elementos.    •...
controlesavanzados                ListView          www.solusoft.es
controlesavanzados                         ListView    Elementos personalizados    •Es frecuente definir el    layout de l...
controlesavanzados                ListView          www.solusoft.es
controlesavanzados                            ListView    Actividad y Adaptador    •La actividad que    controla la lista ...
controlesavanzados                                                                     ListView Adapterpublic class Contro...
controlesavanzados                                                                     ListView Adapterprivate class Libro...
controlesavanzados                                                               ListView AdapterPara ver este ejemplo en ...
controlesavanzados                         Menu    Menú de aplicación    •Aparecen en la zona    inferior al pulsar el    ...
controlesavanzados                 Menu          www.solusoft.es
controlesavanzados                     Preferencias    Preferencias    •Permiten almacenar    datos    personales, opcione...
controlesavanzados                       Preferencias    Implementar la Activity…    Y para leerlas…                   www...
controlesavanzados                     WebViews    WebView    •Permiten navegar    •Permiten implementar    aplicaciones W...
controlesavanzados              WebViews          www.solusoft.es
segundoplanoTrabajando en segundo plano            www.solusoft.es
segundoplano            Trabajando en segundo planoUIThreadAlarmBroadcastService                        www.solusoft.es
segundoplano                                    UIUI thread – Main thread•Es el hilo principal de la app.•Lo crea el siste...
segundoplano               UI     www.solusoft.es
segundoplano                                ThreadsWorker threads - AsyncTasks•Hilos secundarios y tareasasíncronas.•Lo cr...
segundoplano           Threads     www.solusoft.es
segundoplano                                 AlarmsAlarmManager•Es un hilo secundario.•La aplicación configura y registras...
segundoplano            Alarms     www.solusoft.es
segundoplano                            BroadcastBroadcastReceiver•Es un hilo secundario.•El sistema los ejecuta cuando se...
segundoplano                                  BroadcastDeclaración y permiso necesario                           www.solus...
segundoplano                            ServicesServices•Es una aplicación en sí mismo,sin interfaz de usuario.•Los ejecut...
segundoplano                          ServicesPermiso necesario                    www.solusoft.es
dudaspendientes     Preguntas sin resolver          www.solusoft.es
dudaspendientes                                    LOGs para depurarLogcat       Almacenamiento             Permiso necesa...
demogoogleplay    Llegando a los usuarios           www.solusoft.es
codetimeEs hora de probar www.solusoft.es
algunasreferencias                                            En caso de duda…Estas diapositivashttp://bit.ly/soluAndroid2...
playtime                             Es hora de jugarTag V1   Ejercicio propuesto         Servicio en segundo plano que   ...
contactmeEn caso de duda consulte a su farmacéutico                   Manuel J. García            Técnico de Innovación   ...
Upcoming SlideShare
Loading in...5
×

Introducción al desarrollo Android, Sesión 2

435

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
435
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
24
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×