Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Píldoras android i. Intro - 2ª parte

0 views

Published on

2ª parte de la introducción al desarrollo para Android.
Es una pequeña introducción a las acitvites, los intents y los Recursos del sistema

Published in: Technology, News & Politics
  • Be the first to comment

Píldoras android i. Intro - 2ª parte

  1. 1. Píldoras Android I Introducción – 2ª parte<br />Sergi Martínez<br />
  2. 2. Overview<br />Bloques básicos de una aplicación de Android<br />Activity<br />Intents<br />El Manifest<br />Recursos<br />
  3. 3. Bloques básicos de una aplicación<br />Activities<br />Son los encargados de mostrar la interfaz y gestionar sus eventos<br />Services<br />Se ejecutan en background<br />Broadcast Receivers<br />Responden ante sucesos del sistema<br />Content Providers<br />Almacenan información y la ponen a disposición de otras apps<br />
  4. 4. Activity<br />«…si hay que mostrarlo, se muestra, pero mostrarlo paná, es tontería»<br />
  5. 5. Activities<br />Una Activity es una pantalla de la interfaz<br />Las aplicaciones constan de una o más Activity<br />Cada Activity es reponsable de guardar su estado<br />Una Activity se encarga de:<br />Crear una ventana donde colocar la interfaz <br />Gestionar la interfaz<br />Responder a los eventos (onClick, onLongClick, etc).<br />
  6. 6. Una Activity básica<br />
  7. 7. Estados de una actividad<br />El sistema gestiona las actividades como una pila<br />Una actividad tiene cuatro estados:<br />Activa: la actividad está en primer plano y tiene el focus(enfoque de usuario). Se encuentra en lo alto de la pila.<br />En pausa: la actividad es visible, pero no tiene el focus. Ej: hay un diálogo sobre ella con el focusretenido.<br />Detenida: La actividad está tapada por otra aplicación. Mantiene sus datos.<br />Destruida: Una actividad detenida ha sido destruida para liberar memoria y ha perdido sus datos. Hay que recrearla completamente.<br />
  8. 8. Ciclo de vida de una actividad<br />
  9. 9. Métodos<br />
  10. 10. Iniciar otra Activity<br />Uso del método startActivity(Intent) o startActivityForResult (Intent, int)<br />Podemos pasar parametros con Intent.putExtra(int, <type>)<br />Recibirlos con getIntent().getExtras().get<Type>(clave);<br />
  11. 11. Devolver valores de una Activity<br />Establecemos el valor a devolver con setResult(intresultCode) o setResult (intresultCode, Intent data)<br />La actividad «llamadora» implementa el método onActivityResult(intrequestCode, intresultCode, Intent data)<br />resultCode puede ser uno de estos valores:<br />RESULT_CANCELED<br />RESULT_OK<br />RESULT_FIRST_USER<br />
  12. 12. Intent<br />«… Trata de arrancarlo, Carlos, por tu…»<br />
  13. 13. Intents<br />Android se basa en multitud de pequeños componentes<br />Estos componentes se comunican viaIntents<br />Mensajes utilizados para notificar a las aplicaciones de eventos<br />Cambios de Hardware. Ej: tarjeta SD insertada.<br />Recepción de datos. Ej: llegada de un sms<br />Eventos de la apliación. Ej: se ha lanzado la aplicación<br />Etc<br />Es posible crear nuestros propio intents<br />
  14. 14. Partes de un Intent<br />Partes básicas<br />La acción: una constante que indica la acción que se lanza. Ej.: VIEW_ACTION, EDIT_ACTION<br />Los datos: uri indicando el recurso asociado. Ej.: content://contacts/people/1<br />Partes opcionales<br />Una categoría: agrupa el tipo de Intent<br />Un tipo MIME: indica el tipo de recurso si no concemos una uri<br />Un componente: la clase que debe tener el receptor. Obvia las otras propiedades, pero es más frágil.<br />Extras: un Bundle con información extra que el receptor va a necesitar<br />
  15. 15. Ejemplos de Intent<br />ANSWER_ACTION<br />CALL_ACTION<br />DELETE_ACTION<br />DIAL_ACTION<br />EDIT_ACTION<br />FACTORY_TEST_ACTION<br />GET_CONTENT_ACTION<br />INSERT_ACTION<br />MAIN_ACTION: Inicio de aplicación<br />PICK_ACTION: permitir a otras apps elegir contenido de la tuya<br />VIEW_CONTENT: para ver contenido<br />EDIT_CONTENT: para editar contenido<br />
  16. 16. Categorias de Intent<br />ALTERNATIVE_CATEGORY<br />BROWSABLE_CATEGORY<br />DEFAULT_CATEGORY<br />GADGET_CATEGORY<br />HOME_CATEGORY<br />LAUNCHER_CATEGORY<br />PREFERENCE_CATEGORY<br />SELECTED_ALTERNATIVE_CATEGORY<br />TAB_CATEGORY<br />TEST_CATEGORY<br />
  17. 17. Llegando a la actividad adecuada<br />Una actividad debe cumplir tres reglas para responder un Intent<br />La actividad debe soportar la acción especificada<br />La actividad debe soportar el tipo MIME si lo hay<br />La actividad debe soportar TODAS las categorias nombradas en el Intent<br />Uso de Intent-Filter en el manifest<br />
  18. 18. Ejemplo<br />
  19. 19. Manifest.xml<br />«…un xml para atarlos a todos en las sombras…»<br />
  20. 20. Manifest<br />El Manifest es el archivo donde la aplicación le dice al sistema que elementos requiere para funcionar<br />Siempre debe llamarse AndroidManifest.xml y estar en la raiz del proyecto<br />Entre otras cosas contiene:<br />Atributos de la aplicación y metadatos<br />La declaración de actividades y otros componentes<br />Librerías externas<br />Permisos<br />Se puede editar via GUI o editando el XML<br />
  21. 21. Manifest inicial<br />
  22. 22. Versión de la aplicación<br />VersionCode es importante para el Market<br />VersionName es importante para el usuario y/o nosotros<br />
  23. 23. Definición de la actividad<br />Definimos las actividades y sus intent-filter<br />
  24. 24. Versión del SDK<br />minSdkVersion, maxSdkVersion y targetSdkVersion<br />
  25. 25. Permisos de la aplicación<br />Avisan al usuario de las acciones que realizará la apliación<br />Listados en: http://developer.android.com/reference/android/Manifest.permission.html<br />
  26. 26. Recursos<br />«…¡Adelante gadget-o-Layout!…»<br />
  27. 27. Recursos<br />Un recurso es un elemento a utilizar durante la ejecución de la aplicación<br />Existen diferentes tipos de recursos:<br />Layouts<br />Imágenes<br />Cadenas de texto<br />Sonidos<br />Colores<br />Temas<br />Animaciones<br />etc<br />
  28. 28. Recursos<br />Se almacenan en la carpeta resources<br />Cada tipo de recurso tiene va en una carpeta específica<br />Utilizan sufijos para determinar que recursos utlizar según contexto (tamaño de pantalla, idioma, orientación, etc.)<br />Nombre en mínusculas<br />La extensión se ignora (mismo nombre, diferente extensión se considera duplicado)<br />
  29. 29. La clase R<br />La clase R es generada y mantenida por el sistema y no debe ser modificada<br />Contiene un identificador (int) único por cada recurso <br />Podemos hacer referencia a un recurso en código por R.<tipo>.<nombre>. Ej.: R.layout.main<br />
  30. 30. Nombrar recursos en XML<br />Para referirnos a un recurso utilizamos la siguiente sintaxis:<br />@<tipo de recurso>/<nombre del recurso><br />Por ejemplo<br />@string/app_name<br />Para definir un nombre utilizamos:<br />@+<tipo de recurso>/<nombre de recurso><br />
  31. 31. Ejemplo<br />
  32. 32. Fin<br />¿Hay preguntas? ¿no? Pues vamos a comer <br />sergi@catdroid.org<br />sergi.martinez@gmail.com<br />www.sergiandreplace.com<br />@sergiandreplace<br />

×