• Save
Fundamentos del Desarrollo de Aplicaciones para Android
Upcoming SlideShare
Loading in...5
×
 

Fundamentos del Desarrollo de Aplicaciones para Android

on

  • 12,349 views

Introducción acerca de los elementos básicos necesarios para el desarrollo de aplicaciones móviles sobre Android.

Introducción acerca de los elementos básicos necesarios para el desarrollo de aplicaciones móviles sobre Android.

Statistics

Views

Total Views
12,349
Views on SlideShare
11,994
Embed Views
355

Actions

Likes
5
Downloads
0
Comments
2

3 Embeds 355

http://carlosagg.wordpress.com 338
http://jcbenitezp.blogspot.com 16
http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Fundamentos del Desarrollo de Aplicaciones para Android Fundamentos del Desarrollo de Aplicaciones para Android Presentation Transcript

  • FUNDAMENTOS DELDESARROLLO DEAPLICACIONES ANDROID Santiago Márquez Solís 1
  • Contenidos Introducción Instalación SDK Manager Arquitectura Fundamentos ◦ Componentes de Aplicación ◦ Activación/Desactivación de Componentes ◦ Fichero de Manifiesto ◦ Ciclo de Vida 2
  • INTRODUCCION 3
  • Android (1) Introducción (1) ◦ S.O basado en Linux ◦ Desarrollado por Android Inc y comprado por Google en 2005 ◦ Es el principal producto de la Open Handset Alliance  78 empresas – Las top 12 son:  Google, HTC, Dell, Intel, Motorola, Qualcomm, Texas Instrument, Samsung, LG, T-Mobile, Ndivia y Wind River Systems ◦ Cuota de penetración del mercado superior al 30% 4
  • Android (2) Introducción (2) 5
  • Android (3) Introducción (3) ◦ Actualmente hay más de 200.000 aplicaciones desarrolladas ◦ Se obtienen a través de Android Market ◦ Las aplicaciones se desarrollan en Java ◦ Google liberó Android bajo licencia de Apache  Libre  Código Abierto 6
  • Android (4) Introducción (4) ◦ Características por Versión (1) 7
  • Android (5) Introducción (6) ◦ Características por Versión (2) 8
  • Android (6) Introducción (7) ◦ Características por Versión (3) 9
  • Android (7) Introducción (8) ◦ Características por Versión (4) 10
  • Android (8) Introducción (9) ◦ Características por Versión (5) 11
  • Android (9) Introducción (10) ◦ Características por Versión (y 6) 12
  • Android (10) Introducción (y 11) ◦ Para acabar algunas estadísticas:  El sistema operativo está compuesto por 12 millones de líneas de código  Incluyendo 3 millones de líneas de XML  2,8 millones de líneas de lenguaje C  2,1 millones de líneas de Java  y 1,75 millones de líneas de C++. 13
  • INSTALACION 14
  • Android (11) Instalación (1) ◦ Dos pasos:  Descarga/Instalación del Android SDK  Descarga/Instalación sobre Eclipse ◦ Paso 1: Descarga/Instalación Android SDK  http://developer.android.com/sdk/index.html descargamos la versión para nuestro S.O  Generalmente es un fichero con el nombre “installer_rXXX-windows.exe”  XXX indica la revisión del instalador  Finalizada la instalación tendremos acceso al SDK Manager 15
  • Android (12) Instalación (2) ◦ Paso 2: Descarga/Instalación Eclipse (1)  http://www.eclipse.org (ultima versión 3.6 o Helios)  Basta con descargar el zip y descomprimirlo  Luego hay que enlazarlo con Android SDK para poder desarrollar 16
  • Android (13) Instalación (3) ◦ Paso 2: Descarga/Instalación Eclipse (2)  Enlazando Eclipse con Android  Seleccionamos “Help >> Install New Software” 17
  • Android (14) Instalación (y 4) ◦ Paso 2: Descarga/Instalación Eclipse (y 3)  Enlazando Eclipse con Android Añadimos el repositorio de Android desde Google 18
  • SDK MANAGER 19
  • Android (15) SDK Manager (1)  Herramienta que permite descargar en nuestro entorno de trabajo las diferentes versiones del API de Android 20
  • Android (16) SDK Manager (2)  Virtual Devices: permite manipular los diferentes dispositivos para los que desarrollaremos.  Installed Packages: muestra una lista de los diferentes APIs y herramientas instaladas en nuestra máquina  Available Packeges: relación de paquetes disponibles para descargar desde el sitio web de desarrollo de Android  Settings: configuración de los valores de proxy para el descargador 21
  • Android (17) SDK Manager (3) ◦ Los Android Virtual Device (AVD) permiten crear dispositivos virtuales sobre los que probar nuestra aplicación. ◦ Son muy fáciles de configurar:  Al seleccionar el Target se actualizan las propiedades básicas de Hardware para ese Target (pueden añadirse más) 22
  • Android (18) SDK Manager (3) Nombre de nuestra configuración Dispositivo objetivo (depende de lo que hayamos instalado) Tamaño de la tarjeta de almacenamiento Permite salvar snapshot (instantaneas) del dispositivo Características de Pantalla Propiedades del Hardware 23
  • Android (19) SDK Manager (4) ◦ Resoluciones de Pantalla: 24
  • Android (20) SDK Manager (5) ◦ Propiedades Hardware (1):  SD Card Support El dispositivo admite la inserción/extracción de tarjetas SD virtuales  Dpad support Si el dispositivo tiene teclado Dpad  Accelerometer Si el dispositivo tiene acelerometro  Maximun horizontal/vertical camera pixels Pixeles horizontal/vertical de la camara  Cache Partition Size Tamaño en disco para la cache 25
  • Android (21) SDK Manager (6) ◦ Propiedades Hardware (2):  Audio playback support El dispositivo tiene soporte para audio  Trackball support El dispositivo tiene soporte para trackball  Camara support El dispositivo tiene cámara  Batery support El dispositivo puede funcionar con batería  Touch screen support El dispositivo tiene pantalla táctil 26
  • Android (22) SDK Manager (7) ◦ Propiedades Hardware (3):  Audio recording support El dispositivo puede grabar audio  GPS support El dispositivo dispone de GPS  Cache partition support El dispositivo tiene soporte para el uso de memoria cache  Keyboard support El dispositivo tiene teclado QWERTY  Max VM application heap size Tamaño máximo del VM del heap de la aplicación 27
  • Android (23) SDK Manager (y 8) ◦ Propiedades Hardware (y 4):  Device Ram size Tamaño en MB de la RAM del dispositivo  GSM modem support El dispositivo tiene soporte para modem GSM 28
  • ARQUITECTURA 29
  • Android (24) Arquitectura (1) 30
  • Android (25) Arquitectura (2) ◦ Dalvik  es la máquina virtual que utiliza la plataforma Android  ha sido diseñada por Dan Bornstein con contribuciones de otros ingenieros de Google  está optimizada para requerir poca memoria  está diseñada para permitir ejecutar varias instancias de la máquina virtual simultáneamente  No funciona con Java Bytecode sin embargo puede transformarse un class en dex con la herramienta dx. 31
  • Android (26) Arquitectura (3) ◦ Aplicaciones  Todas las aplicaciones están escritas en lenguaje de programación Java (se incluye un conjunto de aplicaciones base como son: cliente de correo electrónico, programa de SMS, calendario, mapas, navegador, contactos y otros) ◦ Marco de trabajo de Aplicaciones:  los desarrolladores tienen acceso completo a los mismos APIs del framework usados por las aplicaciones base.  Está diseñada para simplificar la reutilización de componentes  cualquier aplicación puede publicar sus capacidades  cualquier otra aplicación puede luego hacer uso de esas capacidades  sujeto a reglas de seguridad del framework 32
  • Android (27) Arquitectura (4) ◦ Bibliotecas:  Conjunto de bibliotecas de C/C++ usadas por varios componentes del sistema.  Se exponen a los desarrolladores a través del marco de trabajo de aplicaciones de Android  System C library: implementación biblioteca C estándar)  Media Library: basada en OpenCORE soporta los formatos siguientes: MPEG4, H.264, MP3, AAC, AMR, JPG, y PNG  Surface Manager: Acceso al subsistema de visualización para crear gráficos en 2D y 3D  LibWebCore: Motor del navegador web  SGL: Motor del sistema gráfico 2D  3D Libraries: OpenGL ES 1.0  FreeType: Renderizado de bitmaps y vector  SQLite: Motor de base de datos relacional 33
  • Android (28) Arquitectura (y 5) ◦ Runtime de Android:  Set de bibliotecas base que proporcionan la mayor parte de las funciones disponibles en las bibliotecas base del lenguaje Java. ◦ Núcleo Linux:  Depende de Linux para los servicios base del sistema como seguridad, gestión de memoria, gestión de procesos, pila de red y modelo de controladores.  El núcleo también actúa como una capa de abstracción entre el hardware y el resto de la pila de software. 34
  • FUNDAMENTOS 35
  • Android (29) Fundamentos (1) ◦ Las aplicaciones Android están escritas en Java ◦ El código Java compilado (más sus recursos) se empaquetan mediante la herramienta appt ◦ Los ficheros empaquetados y distribuibles tienen la extensión .apk  Son los ficheros que se instalan en el dispositivo  Es lo que se considera una aplicación Android 36
  • Android (30) Fundamentos (2) ◦ Cada aplicación se caracteriza por:  Ejecutarse en su propio proceso Linux  El proceso se inicia cuando el código necesita ser ejecutado  El proceso finaliza cuando el código acaba y se necesitan recursos para otras aplicaciones  Cada proceso tiene su propia maquina virtual  Las aplicaciones se ejecutan aisladas del código de otras aplicaciones  Cada aplicación tiene asignada un user ID  Permite la gestión de los permisos de la aplicación 37
  • Android (31) Fundamentos (3) ◦ Componentes de Aplicación (1)  Se pueden usar componentes de otras aplicaciones existentes  El código invocado no se incorpora al código de tú aplicación  es invocado por nuestra aplicación y ejecutado desde la aplicación que lo proporciona  El sistema es capaz de iniciar un proceso de aplicación cuando una parte de la misma lo necesita  El sistema instancia únicamente los objetos Java de esa parte que queremos invocar  No existe un único punto de entrada a la aplicación (no hay main()) sino componentes que se instancian según las necesidades  Activities  Services  Broadcast receivers 38  Content providers
  • Android (32) Fundamentos (4) ◦ Componentes de Aplicación (2)  Activities  Presentan un interface visual de usuario  Puede haber una o varias por aplicación  Pueden estar relacionadas entre si, en cuyo caso se especifica cual es la primera que debe aparecer  Cada actividad dispone de una ventana por defecto para mostrarse  Por defecto ocupan toda la pantalla pero puede ajustarse el tamaño o incluso ser flotantes  Los objetos que se muestran en la pantalla pertenecen a la clase “View”  Funciona de modo jerárquico 39
  • Android (33) Fundamentos (5) ◦ Componentes de Aplicación (3)  Servicies  Carecen de interface de usuario  Se ejecutan en segundo plano por tiempo indefinido  Se ejecutan en el hilo principal del proceso de la aplicación  Es posible conectarse con un servicio a través de la interface que expongan al exterior  Cada servicio hereda de la clase “Services” del API de Android 40
  • Android (34) Fundamentos (6) ◦ Componentes de Aplicación (4)  Broadcast Receivers  Son componentes cuya función es recibir notificaciones de que “algo” ha sucedido en el sistema y retransmitirlo a la aplicación que lo implemente  No presentan interface de usuario aunque pueden iniciar actividades o usar el “NotificationManager” para alertar al usuario (encendiendo el flash, vibración, activando sonido, etc.)  O ponen un icono en la barra de estado  Una aplicación puede tener cualquier número de estos componentes  Extienden de la clase “BroadcastReceiver” 41
  • Android (35) Fundamentos (7) ◦ Componentes de Aplicación (5)  Content Provider  Permiten que un conjunto de datos de una aplicación estén disponibles para otra.  Los datos pueden estar en el sistema de ficheros, en una base de datos SQLite, etc.  Extienden de la clase “ContentProvider”  No se llaman a los métodos directamente sino a través de un objeto “ContentResolver” 42
  • Android (36) Fundamentos (8) ◦ Activación de Componentes (1)  Los Content Provider se activan por un ContentResolver  El resto hacen uso de los “Intents”  Son mensajes asíncronos de diferentes clases  Se representan mediante objetos de la clase “Intent” MÉTODOS RELACIONADOS CON LA ACTIVACION DE COMPONENTES Actividades Context.startActivity() Activity.startActivitiyForResult() getIntent() onNewIntent() onActivityResult() Servicios Context.startService() Context.bindService() onStart() onBind() Broadcast Context.sendBroadcast() Context.sendOrderedBroadcast() Context.sendStickyBroadcast() onReceive() 43
  • Android (37) Fundamentos (9) ◦ Activación de Componentes (2)  Intent Filters  Android los utiliza para asociar un Intent con un componente  Informan a Android del tipo Intents que el componente es capaz de manejar  Se declaran en el fichero de manifiesto dentro de las actividades a las que pertenecen 44
  • Android (38) Fundamentos (10) ◦ Desactivación de Componentes  Los Content Provider solo están activos mientras responden una petición de un ContentResolver por lo que no hay necesidad de desactivarlos manualmente. MÉTODOS RELACIONADOS CON LA DESACTIVACION DE COMPONENTES Actividades finish() finishActivity() Servicios stopSelf() Context.stopService() 45
  • Android (39) Fundamentos (11) ◦ El Fichero de Manifiesto (1)  Es un fichero XML, en donde una aplicación declara:  los componentes que posee  las librerías que necesita  los permisos necesarios  Se denomina “AndroidManifest.xml” y se localiza en el directorio raíz  Tags importantes:  <activity>  <service>  <receiver>  <provider> 46
  • Android (40) Fundamentos (12) ◦ El Fichero de Manifiesto (2) 47
  • Android (41) Fundamentos (13) ◦ Ciclo de Vida de los Componentes (1)  Abarca desde que el componente es instanciado para responder a un Intent hasta que es destruido  Cada componente tiene su propio ciclo de vida, por tanto distinguimos entre:  Ciclo de Vida de Activities  Ciclo de Vida de Services  Ciclo de Vida de BroadCast 48
  • Android (42) Fundamentos (14) ◦ Ciclo de Vida de los Componentes (2)  Ciclo de Vida de Activities (1)  Tres estados principales (1):  Activo o Running  Está en ejecución en la pantalla y es el centro de la interacción con el usuario  Pausado  Ha perdido el foco pero es visible para el usuario.  Puede ser eliminada por el S.O si necesita memoria  Mantiene el estado de sus elementos hasta que vuelve a estar activa o se elimina 49
  • Android (43) Fundamentos (15) ◦ Ciclo de Vida de los Componentes (3)  Ciclo de Vida de Activities (2)  Tres estados principales (y 2):  Stop  No es visible para el usuario ya que su ventana de ejecución está oculta  Es eliminada por el sistema si necesita memoria  Todavía mantiene su estado e información de sus miembros 50
  • Android (44)  Fundamentos (16) ◦ Ciclo de Vida de los Componentes (4)  Ciclo de Vida de Activities (3)  La transición entre estados se realiza mediante los Debe ser métodos siguientes: implementado  void onCreate(…)obligatoriamente  void onStart()  void onRestart()  void onResume()  void onPause()  void onStop()  void onDestroy() 51
  • Android (45) Fundamentos (17) ◦ Ciclo de Vida de los Componentes (5)  Ciclo de Vida de Activities (y 4)  Los métodos onPause(), onStop() y onDestroy() pueden ser eliminados por el sistema al “matar” (kill) el proceso sobre el que corre la actividad  Android solo garantiza la ejecución de onPause() por tanto todo el código persistente debe de ir en este método  Es diferente a salvar el estado de la actividad Se usa un  onSaveInstanceState() objeto Bundle  onRestoreInstanceState() con pares clave-valor que se puede recuperar 52
  • Android (46) Fundamentos (18) ◦ Ciclo de Vida de los Componentes (6)  Ciclo de Vida de Services (1)  Dos modos de operación:  Se inician y ejecutan hasta que alguien o ellos mismos lo paran:  Context.startService() / Context.stopService()  Service.stopSelf() / Service.stopSelfResult()  Mediante una conexión de un cliente con el servicio a través de un interface que expongan  Context.bindService() / Context.unbindService() 53
  • Android (47)  Fundamentos (19) ◦ Ciclo de Vida de los Componentes (7)  Ciclo de Vida de Services (y 2)  Estos modos de operación se reflejan en los métodos de ciclo de vida:  onCreate()  onStart(Intent intent) Opcionales  onDestroy() (sólo si se  onBind() permite elenlace con el  onUnbind() servicio) 54
  • Android (48) Fundamentos (20) ◦ Ciclo de Vida de los Componentes (y 8)  Ciclo de Vida de Broadcast Receiver  Solo tienen un único método de ciclo de vida  onReceive(Context, Intent)  Cuando un mensaje llega a un receptor se ejecuta su método onReceive 55
  • Android (49) Fundamentos (21) ◦ Procesos y Ciclo de Vida (1)  Android mantiene los procesos de aplicación vivos todo el tiempo que es posible  Elimina los procesos viejos cuando necesita memoria  Para ello usa un sistema de nivel de prioridad jerárquico con cinco niveles:  Proceso en primer plano Más  Proceso visible prioridad  Proceso de servicio  Proceso en segundo plano  Proceso vacio Menos prioridad 56
  • Android (y 50) Fundamentos (y 22) ◦ Procesos y Ciclo de Vida (y 2)  Android asigna la prioridad mayor que puede al proceso dentro de la lista anterior  Si un proceso sirve a otro, el que sirve tiene mayor prioridad que el servido o al menos la misma 57