Introducción a Android: 10 cosas importantes que hay que entender

7,167 views

Published on

Estan son las diapositivas del taller de Android que se dio en la Universidad Autonoma de Baja California Sur por parte de UNAM MOBILE.
Web: unammobile.net
Tw: @unam_mobile

Published in: Education
2 Comments
8 Likes
Statistics
Notes
  • @fprmaster hola si, claro que habría posibilidad, pueden contactarme directamente a mi Twitter por DM @yezika_ink para hablar de ello :D o bien a mi correo yesica.hernandez@unam.mobi
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Hola!, que posibilidades tendrias de impartirnos un curso de intro a android en la segunda quincena de junio en el tecnologico de Huejutla, nosotros veriamos lo de los viaticos
    muy buenas diapositivas, tienen logica y ya entendia varias cosas.
    Gracias!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
7,167
On SlideShare
0
From Embeds
0
Number of Embeds
1,274
Actions
Shares
0
Downloads
0
Comments
2
Likes
8
Embeds 0
No embeds

No notes for slide

Introducción a Android: 10 cosas importantes que hay que entender

  1. 1. ANDROID DEL 1 AL 10Yésica Hernández Hernández @yezika_ink
  2. 2. Temario1 Antecedentes2 Java SE3 Android OS e instalación4 Arquitectura MVC5 Arquitectura de un programa6 Interfaces de Usuario: Vistas e7 Intenciones8 Uso de Bases de Datos y Sistema de Archivos9 Multimedia y Acceso a hw10 CNDH: Una app en 15 minutos
  3. 3. Introducción AntecedentesUff ! } Evolución de los celulares
  4. 4. Introducción AntecedentesWow } 1997: Philips,"The Synergy" } acceso wireless a e-mail, internet y faxes.
  5. 5. Introducción Antecedentes yupi
  6. 6. Introducción: JAVANace en 1995 con el proposito de proveer televisióndigital interactiva.Implementa una MV que recibe codigo tipo BytecodeWORA (Write once, run anywhere)Controlado por el Java Comunnity Process Principios: Simple, orientado a objetos y familiar* Robusto y seguro Neutral respecto a la arquitectura y portable. Interpretado, dinamico y multihilo. http://download.oracle.com/javase/ tutorial/
  7. 7. Introducción: JAVA Plataforma JAVA JVM: Maquina virtual de java API SDK Interface de Programación de Aplicaciones (API) Herramientas comunes: Debug Compilador<3 IDE Código de muestra Generador de documentación Documentación JRE Herramientas de despliegue Librerias JVM
  8. 8. Introducción: JAVA
  9. 9. Introducción: AndroidSe anuncio en el 2007 (Open Handset Alliance)HTC, LG Motorola, SamsungChina Mobile Communications, KDDI, DoCoMo, Sprint/Nextel, T-Mobile, Telecom Italia, TelefonicaAudience, Broadcom, Intel, Marvell, NVidia Qualcomm, SiRF,SynapticseBay, esmertec, Google, LivingImage, LiveWire, Nuance, PacketVideo, SkyPop, SONiVOX), Aplix, Noser, TAT, Wind River Objetivo: Proveer una plataforma para las aplicaciones de dispositivos móviles a nivel mundial.
  10. 10. Introducción: AndroidProblemas que propusoresolver:FragmentaciónPilas de softwarepropietarioRedes cerradas El entorno de ejecución de Android: Recursos limitados Mezclas de elementos (reutilizacion de componentes) Aplicaciones intercambiables
  11. 11. Introducción: Android Capacidades Soporte de Hardware Disposición visual del adicional: GPS, dispositivo acelerometro, Almacenamiento termometro, Conectividad proximidad, Llamadas de voz y video temperatura, etc Envio de mensajes Bluetoothwow Multilenguaje Navegador web Reconocimiento de voz Multihilo Soporte de Java Thetering Formatos multimedia Capacidades de transmisión
  12. 12. Introducción: AndroidCapacidades Soporte de HardwareDisposición visual del adicional: GPS, dispositivo acelerometro,Almacenamiento termometro,Conectividad proximidad,Llamadas de voz y video temperatura, etcEnvio de mensajes BluetoothMultilenguaje Reconocimiento de vozNavegador web MultihiloSoporte de Java TheteringFormatos multimediaCapacidades de transmisión
  13. 13. Introducción: Android!!!
  14. 14. Introducción: Android http://venturebeat.com/2011/07/25/att-gingerbread/
  15. 15. ¿Por dónde empiezo? Yaquiero desarrollar una app! Primero hay que instalar todo lo necesario, ¿Ya lo tienen?
  16. 16. Instalación Requisitos minimos Sistema operativos: Windows Linux Mac Hardware: Mínimo crítico 1 Gb en RAM* Deseable mas de 2 Gb Software: Java SDK instalado y configurado Driver USB para un dispositivo físico*!!! Descargar: Android SDK Eclipse IDE / Netbeans Driver USB* Plugin(s) de desarrollo
  17. 17. InstalaciónContenido del SDKDocsCopia de la documentación mas recientePlatformsLibrerias, imagenes de sistema, codigo de muestra,skins y adb.Platform-toolsHerramientas de desarrollo y depuración quedependen de la plataforma y se actualizan cuando selibera una nueva.ToolsHerramientas de desarrollo y depuración, seactualizan periodicamente.
  18. 18. InstalaciónConfiguración de EclipseHelp > Install New SoftwareAgregar url: https://dl-ssl.google.com/android/eclipse/
  19. 19. InstalaciónConfiguración de EclipseWindow > Preferences
  20. 20. Introducción: Android ADB (Linea de comandos) u Cliente y servidor en la maquina de desarrollo u Servicio (deamon) en el dispositivo u Establecer conexion con los dispositivos u Ejecutar comandos u Instalar aplicaciones<3 u Obtener el log del sistema u Acceder a bases de datos SQLite en el dispositivo
  21. 21. Introducción: Android ANDROID (herramienta por linea de comandos o GUI)
  22. 22. Introducción: Android ANDROID (herramienta por linea de comandos o GUI)
  23. 23. Introducción: Android ANDROID (herramienta por linea de comandos o GUI) Aqui estamosdescargando el api14 ICS
  24. 24. Introducción: Android DDMS (herramienta por linea de comandos o GUI)Oh!
  25. 25. Introducción AndroidCreando un dispositivo virtualEn la herramienta android se pueden creartanto dispositivos virtuales se deseenPor linea de comandos: ./RUTA_SDK_ANDROID/tools/androidPor medio del IDE
  26. 26. Introducción: Android MAS INFORMACIONhttp://developer.android.com/ guide/developing/tools/index.html Yes!
  27. 27. Programando en Android¿Qué debo hacer primero?u Entender los tipos de aplicacionesu Entender el ciclo de vidau Entender los elementos visualesu Entender la interacción con la interfáz
  28. 28. Programando en Android El modelo MVC en Android La parte visual que permite al Código que usuario recibe y interactuar procesa los eventos de la vista Define elcomportamiento u objetivo del programa
  29. 29. Programando en Android Tipos de aplicación Aplicaciones en primer plano Tienen funcionalidad solo cuando estan en primer plano. Ejemplo: juegos y aplicaciones con mapas Aplicaciones en segundo plano Despues de ser configuradas pasan la mayor parte del tiempo ejecutandose en segundio plano, normalmente responden a eventos causados por el HW, sistema u otras aplicaciones por ejemplo la interfaz de las llamadas entrantes o salientes y el gestor de redOh! Aplicaciones intermitentes Necesitan algunas interacciones con el usuario, pero generalmente resuelven todas sus actividades por si mismas, por ejemplo: el reproductor multimedia Widgets Se ejecutan desde la pantalla de Home del usuario.
  30. 30. Programando en Android Componentes de una aplicación El usuario Actividades puede interactuar a Consiste en una pantalla con una sola interfaz de usuario,travez de ellas una aplicación se compone de un conjunto de actividades. Se compone por la definición de un esqueleto xml de la interfáz o varios y una clase controladora que hace uso de dichos elementos. Servicios Se ejecuta en segundo plano y provee funcionalidad a otras aplicaciones. Por ejemplo el reproductor de música que corre en segundo plano mientras hacemos otras tareas Tienen un ciclo de vida diferente a las actividades
  31. 31. Programando en Android Componentes de una aplicaciónPor ejemplo, existe un Proveedores de contenido proveedor para los Permiten compartir datos con otras actividades y servicios.contactos del Usan una interfáz estándar en forma de URI. teléfono Cuando una aplicación es registrada en el sistema como proveedor de contenido, puede ser capaz de responder a estas peticiones Notificaciones Permiten desplegar de forma visual y/o auditiva mensajes para capturar la atención del usuario. Se pueden personalizar visualmente u obtener datos a través de ellas
  32. 32. Programando en Android El ciclo de vida de una ActividadPara cada Actividad se debensobrecargar los metodos: onCreate onStart onResume onPause onStop onDestroy
  33. 33. Programando en Android Ciclo de vida onCreate es llamada cuando la aplicacion se crea por primera vez. Crear e inicar elementos de las vistas, bd Objeter mensajes de otras actividades (mediante un Bundle) onStart es llamada cuando la actividad se muestra en pantalla, onResumeMe! se ejecuta despues de onStart si la actividad corre en segundo plano de la vista, puede manejar los eventos derivados de la vista. Si otra aplicacion pide el foco en pantalla y luego al finalizar devuelve la vista a nuestra aplicacion, se ejecuta para poder actualizar datos en la vista.
  34. 34. Programando en Android Ciclo de vida onPause Cuando se hace la transición a otra actividad, aqui se puede definir que partes del programa no se deben seguir ejecutando para ahorrar recursos. En este estado, si el dispositivo de queda sin memoria, considerara terminar la aplicación. onStop se ejecuta cuando la actividad no esta visible ya sea porqueMe! otra actividad solicitó el foco o porque la activida será destruida onDestroy es el último método de la aplicación que se ejecutará antes de que el proceso sea destruido
  35. 35. Programando en Android Errores en tiempo de ejecuciónADB juega un papelfundamentalpara hallar el error
  36. 36. Programando en Android AndroidManifest.xml Proposito Este archivo define la estructura y los metadatos de la aplicacion, sus componentes y requerimientos. Define cada componente de la aplicacion en un nodo y para cada uno define filtros de intentos y permisos que controlan la interaccion entre ellos. Define configuraciones de seguridad, requerimientos de hardware y de plataforma.Oh! Algunos elementos: reqFiveWayNav - especifica que el dispositivo debe tener un trackball o un D-pad reqHardKeyboard - especifica que se necesita un teclado fisico
  37. 37. Programando en Android AndroidManifest.xml Algunos elementos: uses-feature android.hardware.camera si se requiere la camara del dispositivo suports-screns smallScreens - QVGA normalScreen - WVGA anyDensity - si la aplicacion se acomodaa cualquier densidad applicationOh! activity provider receiver uses-permision - habilita el uso de recursos permision - establece restricciones al acceder a la aplicacion instrumentation - declara clases de prueba de la aplicacion .
  38. 38. Programando en Android Configuración de AndroidManifest.xml Configuraciones que ya tenemos Declaración de las actividades que forman la aplicación Lo que vamos a agregar Indicar qué actividad es la inicial <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
  39. 39. Programando en Android Configuración de AndroidManifest.xml <activity android:label="@string/app_name" android:name="ControladorLogo"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="ControladorJuego" />
  40. 40. Programando en Android Configuración de AndroidManifest.xml<uses-sdk android:minSdkVersion="8" /><uses-permissionandroid:name="android.permission.VIBRATE" />Por ejemplo aquí estamos otorgando a la aplicación permiso paraque pueda generar vibraciones a través del hardware del teléfono Wow
  41. 41. Programando en Android Comunicación e Intenciones (intents) Las actividades, servicios y los receptores de mensajes de difusión Reutilizar se comunican y son invocados mediante mensajes asíncronosfunciones de llamados Intents, otras apps Permiten invocar actividades de otras aplicaciones Permiten enviar datos mediante un objeto de tipo Bundle que puede contener objetos serializables Compartimos Los elementos accesibles se pueden referenciar por su nombre de información clase + paquete o bien por una URI entre Actividades Nombre clase o destino Activity Datos
  42. 42. Programando en AndroidElementos visuales Un mundo de posibilidades para combinar y crearMe!
  43. 43. Programando en Android Elementos visualesElemento miElementoX = (Elemento)findViewById(R.id.X); Todos heredan propiedades de View
  44. 44. Programando en Android Elementos visuales Estructura xml <LinearLayout xmlns:android="http:// que define id schemas.android.com/apk/res/android" android:id="@+id/root" android:orientation="vertical" Referencia en android:background="@drawable/lt_gray" el código del id android:layout_width="fill_parent" android:layout_height="wrap_content"> ... otros elementos....package curso.ejemplo.ids; </LinearLayout>import android.app.Activity;import android.os.Bundle;public class AndroidDemo extends Activity { private LinearLayout root; @Override public void onCreate(Bundle state) { super.onCreate(state); setContentView(R.layout.main); root = (LinearLayout) findViewById(R.id.root); }}
  45. 45. Programando en Android Jugando con eventos Acciones guiadas por el usuario Toca DeslizaPresiona
  46. 46. Programando en Android Jugando con eventos Button.OnClickListener listener = new Button.OnClickListener() { @Override public void onClick(View arg0) { .........................acciones............................^^ } }; ((Button) findViewById(R.id.button1)).setOnClickListener (listener);
  47. 47. Programando en Android Menús Se lanza alpresionar un elemento particular Se obtiene con la tecla Menu
  48. 48. Programando en Android Alertas y diálogos Se puede obtener información de ellos Mensajeinformativo, 1 a la vez y desaparece solo
  49. 49. Programando en Android AlmacenamientoA B C D E
  50. 50. Programando en Android Acceso a hardwareSe necesita establecer permisos en el Android Manifest paraacceder a la mayoría de los recursosEl API cuenta con clases especializadas para manejar de formasencilla el harware disponible: GPS, Acelerómetro, Vibrador,Sonido, Cámara, Micrófono, Bluetooth Intents
  51. 51. Programando en Android private void recordVideo(Uri outputpath) { Intent intent = new Intent (MediaStore.ACTION_VIDEO_CAPTURE);Acceso a hardware If (outputpath != null) intent.putExtra(MediaStore.EXTRA_OUTPUT, output); intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, HIGH_VIDEO_QUALITY); startActivityForResult(intent, RECORD_VIDEO); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == RECORD_VIDEO) { Uri recordedVideo = data.getData(); //…. Otras acciones }}
  52. 52. Programando en Android En el Android Manifest <uses-permission android:name="android.permission.CAMERA"/>Acceso a hardware En el código Camera camera = Camera.open(); Camera.Parameters parameters = camera.getParameters(); List<String> colorEffects = parameters.getSupportedColorEffects(); if (colorEffects.contains(Camera.Parameters.EFFECT_SEPIA)) parameters.setColorEffect(Camera.Parameters.EFFECT_SEPIA); camera.setParameters(parameters); camera.release();
  53. 53. Reproducir un video Menu usando Usar layouts contenidocompuestas basado en web Una aplicación en 15 minutos Una app para la CNDH
  54. 54. Programando en Android Refinando la aplicación Antes deteclear sin control… Recomendaciones para programar en Android * No hacer suposiciones sobre el tamaño de la pantalla o la resolución * Nunca codificar los valores de cadena en el código * Utilizar diseños relativos y píxeles independientes del dispositivo * Optimizar los activos para diferentes resoluciones de pantalla * Determinar qué APIs están disponibles * Guarde los valores como los recursos (colores,dimensiones, matrices, imágenes, diseños)
  55. 55. Programando en Android Creando un proyecto usando EclipseEl plugin que se instaló en eclipse permitecrear automáticamente proyectos con laestructura adecuada, acceder a lasdispositivos virtuales y capacidades dedepuración File>New>AndroidProject
  56. 56. Programando en Android Referencia de todosEstructura de un proyecto los objetos Clases Objetos del API Textos, menús Recursos colores, formas, estilos visuales Esqueleto de las vistas Config. de la app
  57. 57. Programando en AndroidArquitectura de la applicación CNDHHappycoding

×