Android – Introducción CatDroid – Oct. 2010 (por Roberto C. Serrano)
Acerca de mi <ul><li>Roberto C. Serrano </li></ul><ul><li>Ex-ingeniero de Software en Motorola (Android Platform Team) </l...
En esta mini-presentación <ul><li>Introducción:  </li></ul><ul><li>Introducción al sistema operativo Android y sus peculia...
Introducción al sistema operativo Android y sus peculiaridades
Demo del shell de Android <ul><li>Android es casi un Linux  (pero con muchas peculiaridades) </li></ul><ul><li>http://code...
Openness y Android <ul><li>“ Android es la primera plataforma extensiva para electrónica movil.…” </li></ul><ul><li>Compon...
Android Applications <ul><li>Sin Licencia en la plataforma (http://android.git.kernel.org/) </li></ul><ul><ul><li>SMS mana...
Carácter. del Android SDK y Plataforma <ul><li>Open platform (no fees, no licensing) </li></ul><ul><li>Wi-fi hrdw. acess <...
Funcionalidad disponible <ul><li>Sistema Agnóstico al Hardware  (via el Kernel) </li></ul><ul><li>Background services </li...
El pastel de Android HAL CORE ANDROID + LIBRARIES HAL Multimedia / Graphics  TCMD MBM / Boot loader CONNECTIVITY USB BLUET...
Q&A
La Activity en Android
Activities y Tasks <ul><li>Definición de Dan Morrill’s:   </li></ul><ul><ul><li>Una Actividad es como una molécula, un tro...
Activities y Tasks (cont.) <ul><li>Por defecto cada aplicación de Android vive en su mundo: </li></ul><ul><li>Cada Applica...
Activities (continue)
Activities (continue)
Actividad frente a Tarea (apps) <ul><li>Una clase concreta en el API </li></ul><ul><li>Encapsula una operación particular ...
Process(a) esto... <ul><li>En que se parece un Android y un Linux? </li></ul><ul><ul><li>Android process == Linux process ...
Componentes de una App. en Android <ul><li>Content Providers : Una abstracción provista para representar cualquier informa...
Otros Componentes  <ul><li>Elementos Gráficos :  Menus, Dialogs, ListViewss, Buttons, Widgets, etc. </li></ul><ul><li>Pers...
Otros elementos a tu disposición  (lista no exhaustiva) <ul><li>Storage :  Puedes empaqueta ficheros de datos, para elemen...
Q&A
Upcoming SlideShare
Loading in...5
×

Píldora 1: Android intro

8,154

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
8,154
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
88
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Píldora 1: Android intro

  1. 1. Android – Introducción CatDroid – Oct. 2010 (por Roberto C. Serrano)
  2. 2. Acerca de mi <ul><li>Roberto C. Serrano </li></ul><ul><li>Ex-ingeniero de Software en Motorola (Android Platform Team) </li></ul><ul><li>Desarrollador de Android </li></ul><ul><li>Responsible desarrollo dispoitivos móviles para Addapta Technological Services </li></ul><ul><li>Co-fundador de la comunida CatDroid </li></ul><ul><li>Info de Contacto: </li></ul><ul><ul><li>[email_address] o twitter.com/hojalataverde </li></ul></ul>
  3. 3. En esta mini-presentación <ul><li>Introducción: </li></ul><ul><li>Introducción al sistema operativo Android y sus peculiaridades </li></ul><ul><li>Introducción a un Android Activity y los Componentes de una Applicación </li></ul>
  4. 4. Introducción al sistema operativo Android y sus peculiaridades
  5. 5. Demo del shell de Android <ul><li>Android es casi un Linux (pero con muchas peculiaridades) </li></ul><ul><li>http://code.google.com/p/android-vnc/ </li></ul><ul><li>Get fbvncserver binary </li></ul><ul><li>Load it into the phone/emulator: </li></ul><ul><li>adb push fbvncserver /data/local  </li></ul><ul><li>adb shell chmod 777 /data/local/fbvncserver </li></ul><ul><li>adb forward tcp:5901 tcp:5901 </li></ul><ul><li>Run the vnc server: </li></ul><ul><li>adb shell /data/local/fbvncserver </li></ul>
  6. 6. Openness y Android <ul><li>“ Android es la primera plataforma extensiva para electrónica movil.…” </li></ul><ul><li>Componentes: </li></ul><ul><ul><li>Una referencia de diseño de de hrdw que describe los requisitos mínimos para dar soporte a la plataforma. </li></ul></ul><ul><ul><li>Linux Kernel </li></ul></ul><ul><ul><li>Librerias Open Source a </li></ul></ul><ul><ul><li>Run time environment (Dalvik) </li></ul></ul><ul><ul><li>Framework para aplicaciones </li></ul></ul><ul><ul><li>Un framework para interface de usuario </li></ul></ul><ul><ul><li>Un paqueta de aplicaciones preinstaladas (un telefono inteligente 100% funcional) </li></ul></ul><ul><ul><li>Un kit de desarrollo (Tools, plug-ins, and documentation) </li></ul></ul>
  7. 7. Android Applications <ul><li>Sin Licencia en la plataforma (http://android.git.kernel.org/) </li></ul><ul><ul><li>SMS management app. </li></ul></ul><ul><ul><li>PIM (Google calendar, etc) </li></ul></ul><ul><ul><li>WebKit based browser </li></ul></ul><ul><ul><li>Cliente de Mail POP3 </li></ul></ul><ul><ul><li>Instant Messaging Client (GChat) </li></ul></ul><ul><ul><li>Music Player and Picture viewer </li></ul></ul><ul><li>Con Licencia: </li></ul><ul><ul><li>Android Market Place </li></ul></ul><ul><ul><li>App. Google Maps y navegación </li></ul></ul><ul><ul><li>Cliente eMail(GMail) </li></ul></ul><ul><li>Etc. </li></ul>
  8. 8. Carácter. del Android SDK y Plataforma <ul><li>Open platform (no fees, no licensing) </li></ul><ul><li>Wi-fi hrdw. acess </li></ul><ul><li>Full comm. stack (GSM, EDGE, 3G, Bluetooth) </li></ul><ul><li>GPS </li></ul><ul><li>Multimedia (playback and recording of audio, video, etc) </li></ul><ul><li>APIs to accel. And compass hrdwr. </li></ul><ul><li>IPC messaging </li></ul><ul><li>Share Data stores </li></ul><ul><li>Web-Kit browser </li></ul><ul><li>Eventually hwrd. accel. 3D graphics (Open GL ES) </li></ul><ul><li>Media Libraries (Licensed for MP3, etc…) </li></ul><ul><li>And open Application Framework (reuse and replacement) </li></ul>
  9. 9. Funcionalidad disponible <ul><li>Sistema Agnóstico al Hardware (via el Kernel) </li></ul><ul><li>Background services </li></ul><ul><li>SQLite DB </li></ul><ul><li>Comunicación entre applicaciones </li></ul><ul><li>Incluye Soporte multimedia </li></ul><ul><li>Sistema de optimización de Mem. y gestión de Procesos </li></ul><ul><li>Busqueda rápida desde 1.6 </li></ul><ul><li>Sintetizador de voz desde 1.6 </li></ul><ul><li>Gestión Transparente o intencionada de de múltiples resoluciones desde 1.6 </li></ul><ul><li>API de Blutooth desde 2.0 </li></ul><ul><li>Gestión centralizada de contactos desde 2.0 </li></ul><ul><li>Live WallPapers desde 2.0 </li></ul><ul><li>Reconocimiento de voz desde 2.1 </li></ul><ul><li>navegación desde 2.1 </li></ul><ul><li>Mensajes de la Nube al teléfono (Push) desde 2.2 </li></ul><ul><li>Apps instalables en memoria externa (SD) desde 2.2 </li></ul>
  10. 10. El pastel de Android HAL CORE ANDROID + LIBRARIES HAL Multimedia / Graphics TCMD MBM / Boot loader CONNECTIVITY USB BLUETOOTH Wi-Fi CONNECTIVITY MODEM + RIL KERNEL+BSP GPS
  11. 11. Q&A
  12. 12. La Activity en Android
  13. 13. Activities y Tasks <ul><li>Definición de Dan Morrill’s:   </li></ul><ul><ul><li>Una Actividad es como una molécula, un trozo cuantificable de funcionalidad. </li></ul></ul><ul><ul><li>Una tarea es una collección de actividades (parte una o multiples aplicaciones) </li></ul></ul><ul><ul><li>Un proceso en Android es un “proceso” estandard de Linux </li></ul></ul>
  14. 14. Activities y Tasks (cont.) <ul><li>Por defecto cada aplicación de Android vive en su mundo: </li></ul><ul><li>Cada Applicación se ejecuta en su propio proceso por defecto </li></ul><ul><li>Cada proceso se ejecuta dentro de su propia máquina virtual </li></ul><ul><li>Cada aplicación recive su Linux User ID </li></ul>
  15. 15. Activities (continue)
  16. 16. Activities (continue)
  17. 17. Actividad frente a Tarea (apps) <ul><li>Una clase concreta en el API </li></ul><ul><li>Encapsula una operación particular </li></ul><ul><li>Se ejecuta en el Proceso del .APK que las instaló </li></ul><ul><li>Opcionalmente asociadas con su ventana (UI) </li></ul><ul><li>Es el contexto de ejecución del APK </li></ul><ul><li>Es más una noción que una parte del API </li></ul><ul><li>Collección de Actividades relaccionas </li></ul><ul><li>Capaz de extenderse a múltiples APKs y procesos </li></ul><ul><li>Asociado con su propio “history stack” </li></ul><ul><li>Son lo que los usuarios de otras plataformas entiende como “aplicaciones” </li></ul>
  18. 18. Process(a) esto... <ul><li>En que se parece un Android y un Linux? </li></ul><ul><ul><li>Android process == Linux process (con su unico UID) </li></ul></ul><ul><ul><li>Por defecto, 1 proceso por APK </li></ul></ul><ul><ul><li>Por defecto, 1 hilo (thread) por proceso </li></ul></ul><ul><ul><li>La mayoría de los componente conectan eventos via el hilo principal. </li></ul></ul>
  19. 19. Componentes de una App. en Android <ul><li>Content Providers : Una abstracción provista para representar cualquier información (data) almacenada en el aparato y a la que necesitan acceso múltiples aplicaciones. </li></ul><ul><li>Services : Unidad de ejecución provista para que sobreviva más allá de una actividad. Pueden ser ejecutados como parte o independientemente de una actividad. </li></ul><ul><li>Intents : Mortero que una el resto de los componentes. Mensajes de sistema que transmiten eventos representado cambios de estado en el hardware, acciones, etc. </li></ul><ul><li>Broadcast Receivers : Los consumidores de los Intents. Registrando tu app. como un broadcast reciever le estas dando a la aplicación la habilidad de consumir Intents que coinciden con un criterio de filtrado específico. </li></ul><ul><li>Notifications : El framework de notificación a usuarios permite que un Servicio o aplicación comunique con el usuario sin interrumpir su flujo de trabajo. </li></ul>
  20. 20. Otros Componentes <ul><li>Elementos Gráficos : Menus, Dialogs, ListViewss, Buttons, Widgets, etc. </li></ul><ul><li>Persistent Storage : Sistema de almacenamiento simplificado útil para persistir información de una sesión a otra (usado principalmente para almacenar preferencias). </li></ul><ul><li>Async Tasks : Además de el método tradicional de java para crear hilos, Android provee de esta clase útil para envolver tareas pesadas para que no interfieran con la experiencia del usuario. </li></ul><ul><li>WebViewClient : Estructura disponible para que una aplicación pueda mostrar contenido Web (basado en WebKit). </li></ul><ul><li>PreferenceActivity : Permite la creación de Actividades de Ajustes (settings) y persistencia de los datos de manera simplificada. </li></ul><ul><li>HTTPClient : Estructura provista para la adquisición de datos desde un servidor web (útil para extrar objetos json o xml). </li></ul><ul><li>MapView Activit y: Estructura que permite hacer uso de la infraestructura de Google Maps desde una aplicación. </li></ul><ul><li>etc.. </li></ul>
  21. 21. Otros elementos a tu disposición (lista no exhaustiva) <ul><li>Storage : Puedes empaqueta ficheros de datos, para elementos estáticos, como iconos, cadenas de texto, arrays, etc. Se puede obtener espacio en la base de datos (SQLite) y en la memoria principal, o si el usuario provee de tarjeta SD, también se puede usar para almacenar todo ello para almacenar elementos generados de manera dinámica (o descargados de internet). </li></ul><ul><li>Network : Desde Java Sockets (via NIO) a pantallas que contengan un navegador, Android provee de un montón de mecanismos para aprovechar la accesibilidad a Internet. </li></ul><ul><li>Multimedia : Desde la lógica de una aplicación se puede incluir la reproducción y grabación de Audio y vídeo así como la de captura de imágenes (fotos). </li></ul><ul><li>GPS : Aparatos estandarizados de Android tienen la habilidad de reportar la ubicación (con diferentes niveles de granularidad). Además usando google maps, se pueden mostrar mapas, etc. </li></ul><ul><li>Phone Services : Una aplicación de android puede hacer uso de los servicios de telefonía, permitiendo el iniciar llamadas, enviar SMS, etc. </li></ul>
  22. 22. Q&A
  1. A particular slide catching your eye?

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

×