Android Begins

2,027 views

Published on

Slides utilizadas en la IX Tertulia Tecnologica, realizada en el mes de Mayo del 2011 en el Tecnologico Comfenalco.

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
2,027
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
22
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • La arquitectura de Android está formada por una pila de capas de software que interactuan entre ellas. En términos de desarrollo, esta división en capas facilita al desarrollador la creación de aplicaciones, ya que todo está perfectamente estructurado para que se pueda acceder a las capas más bajas utilizando las librerías disponibles para ello, evitando así tener que programar a bajo nivel las funcionalidades necesarias para el desarrollo de una aplicación. La capa más baja de la arquitectura de Android es el núcleo del sistema. Android se apoya en el kernel de Linux (en su versión 2.6). En esta capa de la arquitectura Android tiene acceso a la gestión de memoria y de los procesos, la pila de red y el modelo de drivers. El sistema incluye una máquina virtual de Java (JVM), que se llama Dalvik, que ha sido creada por Google para dispositivos con poca memoria y poca capacidad de proceso. En Android, cada aplicación corre en su propio proceso y tiene su propia instancia en la máquina virtual Dalvik. Dalvik ejecuta archivos .dex en lugar de los clásicos .class de la máquina virtual de Java de escritorio. Éstos están más optimizados para los dispositivos móviles y son más compactos. En esta máquina virtual no disponemos de toda la API de JavaSE o JavaME, sino que podemos utilizar un subconjunto llamado Core Libraries. Las librerías que puede utilizar el desarrollador en las capas superiores están escritas en C/C++. Las funcionalidades que ofrecen estas librerías son accesibles desde el Framework de aplicaciones. Es decir, un API de Java, que es el lenguaje que se utiliza para programar aplicaciones para Android. El Framework de aplicaciones proporciona al desarrollador todo lo necesario para programar aplicaciones para Android. Como hemos visto antes, a través de éste podemos acceder a la librerías subyacentes que proporciona el sistema, como a las librerías para la gestión de bases de datos (SQLite), para las fuentes de texto (FreeType), para el navegador (WebKit) o el cifrado de comunicaciones (SSL), entre otras.
  • La máquina virtual Dalvik utiliza el kernel de Linux para realizar tareas a bajo nivel. Es posible escribir aplicaciones en C/C++ para ejecutarlas directamente en el kernel de Linux, aunque rara vez será necesario hacer esto. Aún así, si tu aplicación requiere de mucha eficiencia y velocidad es posible crear aplicaciones en C/C++ mediante el Native Development Kit (NDK) que provee Android. Ficheros ejecutables Dalvik (.dex) La máquina virtual Dalvik utiliza los ficheros ejecutables Dalvik (.dex) que están optimizados para garantizar el mínimo consumo de memoria. En el proceso de compilación la máquina virtual utiliza los ficheros .class generados y los combina en uno o más ficheros .dex. Reutiliza información duplicada en múltiples ficheros .class para así reducir a la mitad el espacio requerido de un fichero .jar tradicional. Por ejemplo, el tamaño del fichero .dex del navegador web de Android ocupa unos 200K, mientras que la versión equivalente de esta aplicación como fichero .jar ocupa unos 500K.
  • La máquina virtual Dalvik utiliza el kernel de Linux para realizar tareas a bajo nivel. Es posible escribir aplicaciones en C/C++ para ejecutarlas directamente en el kernel de Linux, aunque rara vez será necesario hacer esto. Aún así, si tu aplicación requiere de mucha eficiencia y velocidad es posible crear aplicaciones en C/C++ mediante el Native Development Kit (NDK) que provee Android. Ficheros ejecutables Dalvik (.dex) La máquina virtual Dalvik utiliza los ficheros ejecutables Dalvik (.dex) que están optimizados para garantizar el mínimo consumo de memoria. En el proceso de compilación la máquina virtual utiliza los ficheros .class generados y los combina en uno o más ficheros .dex. Reutiliza información duplicada en múltiples ficheros .class para así reducir a la mitad el espacio requerido de un fichero .jar tradicional. Por ejemplo, el tamaño del fichero .dex del navegador web de Android ocupa unos 200K, mientras que la versión equivalente de esta aplicación como fichero .jar ocupa unos 500K.
  • Una aplicación Android está conformada por componentes, los cuales están definidos en el manifiesto de la aplicación(AndroidManifest.xml), donde se indica adicionalmente, los permisos, requisitos de hardware, plataforma, entre otros. Los componentes disponibles son: Activities(Actividades) , representan la capa de presentación de la aplicación. Utilizan vistas para presentar la UI. Views(Vistas), las cuales repr esentan los componentes visuales de la aplicación Services(Servicios), componentes que se ejecutan en background, actualizan los datos de las actividades y emiten notificaciones. Proveedores de Contenido(Content Providers), se encargan de gestionar las bases de datos para las aplicaciones. Intents(Intenciones), que gestionan el paso de mensajes entre Actividades, Servicios o todo el sistema. Broadcast Receivers(Receptores de Broadcast) , permiten que las Aplicaciones escuchen las intenciones de Broadcast, que cumplan unos determinados criterios. Notifications(Notificaciones) , representan el mecanismo para que las aplicaciones puedan notificar al usuario, sin interrumpir la actividad en primer plano
  • Una aplicación Android está conformada por componentes, los cuales están definidos en el manifiesto de la aplicación(AndroidManifest.xml), donde se indica adicionalmente, los permisos, requisitos de hardware, plataforma, entre otros. Los componentes disponibles son: Activities(Actividades) , representan la capa de presentación de la aplicación. Utilizan vistas para presentar la UI. Views(Vistas), las cuales repr esentan los componentes visuales de la aplicación Services(Servicios), componentes que se ejecutan en background, actualizan los datos de las actividades y emiten notificaciones. Proveedores de Contenido(Content Providers), se encargan de gestionar las bases de datos para las aplicaciones. Intents(Intenciones), que gestionan el paso de mensajes entre Actividades, Servicios o todo el sistema. Broadcast Receivers(Receptores de Broadcast) , permiten que las Aplicaciones escuchen las intenciones de Broadcast, que cumplan unos determinados criterios. Notifications(Notificaciones) , representan el mecanismo para que las aplicaciones puedan notificar al usuario, sin interrumpir la actividad en primer plano Fuente: http://www.greenandroid.es/2011/03/19/componentes-aplicacion-android/
  • src/: contiene el código fuente de la aplicación. es/greenandroid/android/: paquete que contiene el código de la aplicación. Puede haber varios paquetes que incluyan código que responda a diversas funcionalidades. Main.java: contiene el código de la actividad principal (la actividad principal no tiene por qué llamarse así). bin/: contiene el fichero .apk y los recursos compilados. jni/: contiene código nativo desarrollado con el NDK. gen/: contiene los ficheros .java generados por el ADT. es/greenandroid/android/: paquete que contiene el código de la aplicación. Puede haber varios paquetes que incluyan código que responda a diversas funcionalidades. R.java: fichero fuente para manejar recursos desde la aplicación: no debe modificarse. Android X.Y/ ó Google APIs [Android X.Y]/: contiene el SDK completo. X.Y es el número de versión. android.jar: librerías del SDK de Android. Aparece cuando usamos Android X.Y. o Google APIs [Android X.Y]. maps.jar: librerías de mapas de Google Maps. Sólo aparece cuando usamos Google APIs [Android X.Y]. assets/: está vacío. Puedes utilizarlo para almacenar ficheros en bruto. Los ficheros guardados aquí se empaquetan en el fichero .apk. Se puede navegar por este directorio utilizando el AssetManager. res/: contiene los recursos de la aplicación. anim/: contiene ficheros XML que se compilan en animaciones. color/: contiene ficheros XML que describen colores. drawable/: contiene imágenes y ficheros XML que describen formas y objetos Drawable. Hay tres tipos: hdpi (alta definición), ldpi (baja definición), mdpi (media definición). icon.png: icono de la aplicación que se muestra en el lanzador de aplicaciones del dispositivo. layout/: contiene ficheros XML que se compilan en layouts de panatalla o en partes de pantalla. menu/: contiene ficheros XML que definen menús de aplicación. raw/: es similar al directorio assets pero a estos recursos se accede mediante la clase R. values/: contiene ficheros XML que se compilan en diversos tipos de recursos. A diferencia de los recursos del directorio res/, los recursos escritos en los ficheros XML en este directorio no son referenciados por su nombre de fichero. Contiene, entre otros ficheros, el fichero de internacionalización strings.xml. xml/: contiene ficheros XML que configuran componentes de la aplicación, como las preferencias de pantalla. libs/: contiene librerías privadas. AndroidManifest.xml: fichero que describe la aplicación: componentes, permisos, capacidades, … build.properties: contiene propiedades modificadas para el sistema de compilación. En Eclipse no se utiliza. build.xml: fichero Ant del proyecto. En Eclipse no se utiliza. default.properties: fichero generado automáticamente que define como construir la aplicación.
  • Android Begins

    1. 1. ANDROID BEGINS Mg. Fabio García Ramírez Mayo 26 del 2011
    2. 2. Agenda <ul><li>DEFINIENDO ANDROID
    3. 3. EVOLUCION
    4. 4. FUNCIONALIDADES
    5. 5. DISPOSITIVOS
    6. 6. ARQUITECTURA
    7. 7. HERRAMIENTAS DE DESARROLLO
    8. 8. ESTRUCTURA DE APLICACIONES
    9. 9. DEMO </li></ul>
    10. 10. Definiendo Android Android es un sistema operativo basado en Linux para dispositivos móviles, tales como teléfonos inteligentes o tablets. Fue desarrollado inicialmente por Android Inc., una firma comprada por Google en 2005. Es el principal producto de la Open Handset Alliance, un conglomerado de fabricantes y desarrolladores de hardware, software y operadores de servicio. Las unidades vendidas de teléfonos inteligentes con Android se ubican en el primer puesto en los Estados Unidos, en el segundo y tercer trimestre de 2010, con una cuota de mercado de 43,6% en el tercer trimestre. Fuente: http://es.wikipedia.org/wiki/Android
    11. 11. Definiendo Android Fuente: http://es.wikipedia.org/wiki/Android
    12. 12. Evolución Fuente: http://www.olivetelecom.in/mobile-phone/android-phones/images/android-timeline.jpg Android Evolutions http://t0.gstatic.com/images?q=tbn:ANd9GcT_cbkGNcpHCn_ojn_EL5BPzccNFVQfwBYvnuLz8NEF2cmDmEXj
    13. 13. Evolución Fuente: http://www.visionmobile.com/blog/wp-content/uploads/2010/10/Android-Version-Release-Timeline.png Android Evolutions http://t0.gstatic.com/images?q=tbn:ANd9GcT_cbkGNcpHCn_ojn_EL5BPzccNFVQfwBYvnuLz8NEF2cmDmEXj
    14. 14. Evolución Fuente: http://1.bp.blogspot.com/-6xS49hZKCYQ/TWhiGO1GELI/AAAAAAAAJ4A/hy58q_JULOQ/s1600/android-timeline-20090104-2.jpg Android Evolutions http://t0.gstatic.com/images?q=tbn:ANd9GcT_cbkGNcpHCn_ojn_EL5BPzccNFVQfwBYvnuLz8NEF2cmDmEXj
    15. 15. Funcionalidades <ul><li>Máquina virtual optimizada para dispositivos móviles
    16. 16. Framework de aplicación que habilita la reutilización y reemplazo de componentes.
    17. 17. Navegador integrado, basado en Webkit.
    18. 18. Gráficos 2D y 3D con OpenGL
    19. 19. SQLite para almacenamiento de datos
    20. 20. Soporte de archivos multimedia(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
    21. 21. Telefonía GSM
    22. 22. Bluetooth, EDGE, 3G, WiFi, 4G, WiMAX.....
    23. 23. Cámara, GPS, acelerómetro </li></ul>
    24. 24. Dispositivos Fuente: http://android-devices.net/wp-content/uploads/2010/10/100-android-devices.png
    25. 25. Arquitectura Fuente :http://t0.gstatic.com/images?q=tbn:ANd9GcQt1fUUqWanCr2GCvKMBWOqVDlsRYqTADY1M-WR3DC5SqRp9X8x
    26. 26. Arquitectura Fuente: http://flexguruin.files.wordpress.com/2010/09/android_dalvik_vm.gif?w=382&h=276
    27. 27. Arquitectura Fuente: http://t3.gstatic.com/images?q=tbn:ANd9GcR6y3FlSdbtLZeIH_2qAf5guLAVyHLF8BUZ2V2raHvFQwT7gH7o&t=1
    28. 28. Herramientas de Desarrollo <ul><li>Android SDK, paquete con las herramientas necesarias(emulador, depurador, controlador de dispositivo, otras), disponible en: http://developer.android.com/sdk/index.html
    29. 29. Eclipse Classic, entorno de desarrollo, disponible en: http://www.eclipse.org/downloads/
    30. 30. Android ADT(Android Development Tools), plug-in para Eclipse, que permite extender las funcionalidades del mismo para desarrollar de manera eficiente en Android, disponible en: https://dl-ssl.google.com/android/eclipse / </li></ul>
    31. 31. Estructura de Aplicaciones Fuente: http://programming-android.labs.oreilly.com/figs/web/ch03-components.png
    32. 32. Estructura de Aplicaciones <ul><li>Un proyecto Android se almacena en un archivo .apk, con una estructura similar a la siguiente: </li></ul>
    33. 33. Demo Fuente: http://programming-android.labs.oreilly.com/figs/web/ch03-components.png

    ×