Android Begins

Embed Size (px)

Citation preview

ANDROID BEGINS

Mg. Fabio Garca Ramrez

Mayo 26 del 2011

Agenda

DEFINIENDO ANDROID

EVOLUCION

FUNCIONALIDADES

DISPOSITIVOS

ARQUITECTURA

HERRAMIENTAS DE DESARROLLO

ESTRUCTURA DE APLICACIONES

DEMO

Definiendo Android

Android es un sistema operativo basado en Linux para dispositivos mviles, tales como telfonos 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 telfonos 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

Definiendo Android

Fuente: http://es.wikipedia.org/wiki/Android

Evolucin

Fuente: http://www.olivetelecom.in/mobile-phone/android-phones/images/android-timeline.jpg

Android Evolutionshttp://t0.gstatic.com/images?q=tbn:ANd9GcT_cbkGNcpHCn_ojn_EL5BPzccNFVQfwBYvnuLz8NEF2cmDmEXj

Evolucin

Fuente: http://www.visionmobile.com/blog/wp-content/uploads/2010/10/Android-Version-Release-Timeline.png

Android Evolutionshttp://t0.gstatic.com/images?q=tbn:ANd9GcT_cbkGNcpHCn_ojn_EL5BPzccNFVQfwBYvnuLz8NEF2cmDmEXj

Evolucin

Fuente: http://1.bp.blogspot.com/-6xS49hZKCYQ/TWhiGO1GELI/AAAAAAAAJ4A/hy58q_JULOQ/s1600/android-timeline-20090104-2.jpg

Android Evolutionshttp://t0.gstatic.com/images?q=tbn:ANd9GcT_cbkGNcpHCn_ojn_EL5BPzccNFVQfwBYvnuLz8NEF2cmDmEXj

Funcionalidades

Mquina virtual optimizada para dispositivos mviles

Framework de aplicacin que habilita la reutilizacin y reemplazo de componentes.

Navegador integrado, basado en Webkit.

Grficos 2D y 3D con OpenGL

SQLite para almacenamiento de datos

Soporte de archivos multimedia(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)

Telefona GSM

Bluetooth, EDGE, 3G, WiFi, 4G, WiMAX.....

Cmara, GPS, acelermetro

Dispositivos

Fuente:

http://android-devices.net/wp-content/uploads/2010/10/100-android-devices.png

Arquitectura

Fuente:http://t0.gstatic.com/images?q=tbn:ANd9GcQt1fUUqWanCr2GCvKMBWOqVDlsRYqTADY1M-WR3DC5SqRp9X8x

La arquitectura de Android est formada por una pila de capas de software que interactuan entre ellas. En trminos de desarrollo, esta divisin en capas facilita al desarrollador la creacin de aplicaciones, ya que todo est perfectamente estructurado para que se pueda acceder a las capas ms bajas utilizando las libreras disponibles para ello, evitando as tener que programar a bajo nivel las funcionalidades necesarias para el desarrollo de una aplicacin.La capa ms baja de la arquitectura de Android es el ncleo del sistema. Android se apoya en el kernel de Linux (en su versin 2.6). En esta capa de la arquitectura Android tiene acceso a la gestin de memoria y de los procesos, la pila de red y el modelo de drivers. El sistema incluye una mquina 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 aplicacin corre en su propio proceso y tiene su propia instancia en la mquina virtual Dalvik.Dalvik ejecuta archivos .dex en lugar de los clsicos .class de la mquina virtual de Java de escritorio. stos estn ms optimizados para los dispositivos mviles y son ms compactos. En esta mquina virtual no disponemos de toda la API de JavaSE o JavaME, sino que podemos utilizar un subconjunto llamado Core Libraries. Las libreras que puede utilizar el desarrollador en las capas superiores estn escritas en C/C++. Las funcionalidades que ofrecen estas libreras 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 travs de ste podemos acceder a la libreras subyacentes que proporciona el sistema, como a las libreras para la gestin de bases de datos (SQLite), para las fuentes de texto (FreeType), para el navegador (WebKit) o el cifrado de comunicaciones (SSL), entre otras.

Arquitectura

Fuente: http://flexguruin.files.wordpress.com/2010/09/android_dalvik_vm.gif?w=382&h=276

La mquina 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. An as, si tu aplicacin 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 mquina virtual Dalvik utiliza los ficheros ejecutables Dalvik (.dex) que estn optimizados para garantizar el mnimo consumo de memoria.

En el proceso de compilacin la mquina virtual utiliza los ficheros .class generados y los combina en uno o ms ficheros .dex. Reutiliza informacin duplicada en mltiples ficheros .class para as reducir a la mitad el espacio requerido de un fichero .jar tradicional. Por ejemplo, el tamao del fichero .dex del navegador web de Android ocupa unos 200K, mientras que la versin equivalente de esta aplicacin como fichero .jar ocupa unos 500K.

Arquitectura

Fuente:http://t3.gstatic.com/images?q=tbn:ANd9GcR6y3FlSdbtLZeIH_2qAf5guLAVyHLF8BUZ2V2raHvFQwT7gH7o&t=1

La mquina 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. An as, si tu aplicacin 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 mquina virtual Dalvik utiliza los ficheros ejecutables Dalvik (.dex) que estn optimizados para garantizar el mnimo consumo de memoria.

En el proceso de compilacin la mquina virtual utiliza los ficheros .class generados y los combina en uno o ms ficheros .dex. Reutiliza informacin duplicada en mltiples ficheros .class para as reducir a la mitad el espacio requerido de un fichero .jar tradicional. Por ejemplo, el tamao del fichero .dex del navegador web de Android ocupa unos 200K, mientras que la versin equivalente de esta aplicacin como fichero .jar ocupa unos 500K.

Herramientas de Desarrollo

Android SDK, paquete con las herramientas necesarias(emulador, depurador, controlador de dispositivo, otras), disponible en: http://developer.android.com/sdk/index.html

Eclipse Classic, entorno de desarrollo, disponible en: http://www.eclipse.org/downloads/

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/

Una aplicacin Android est conformada por componentes, los cuales estn definidos en el manifiesto de la aplicacin(AndroidManifest.xml), donde se indica adicionalmente, los permisos, requisitos de hardware, plataforma, entre otros. Los componentes disponibles son:Activities(Actividades), representan la capa de presentacin de la aplicacin. Utilizan vistas para presentar la UI.Views(Vistas), las cuales representan los componentes visuales de la aplicacinServices(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

Estructura de Aplicaciones

Fuente: http://programming-android.labs.oreilly.com/figs/web/ch03-components.png

Una aplicacin Android est conformada por componentes, los cuales estn definidos en el manifiesto de la aplicacin(AndroidManifest.xml), donde se indica adicionalmente, los permisos, requisitos de hardware, plataforma, entre otros. Los componentes disponibles son:Activities(Actividades), representan la capa de presentacin de la aplicacin. Utilizan vistas para presentar la UI.Views(Vistas), las cuales representan los componentes visuales de la aplicacinServices(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/

Estructura de Aplicaciones

Un proyecto Android se almacena en un archivo .apk, con una estructura similar a la siguiente:

src/: contiene el cdigo fuente de la aplicacin. es/greenandroid/android/: paquete que contiene el cdigo de la aplicacin. Puede haber varios paquetes que incluyan cdigo que responda a diversas funcionalidades. Main.java: contiene el cdigo de la actividad principal (la actividad principal no tiene por qu llamarse as). bin/: contiene el fichero .apk y los recursos compilados. jni/: contiene cdigo nativo desarrollado con el NDK. gen/: contiene los ficheros .java generados por el ADT. es/greenandroid/android/: paquete que contiene el cdigo de la aplicacin. Puede haber varios paquetes que incluyan cdigo que responda a diversas funcionalidades. R.java: fichero fuente para manejar recursos desde la aplicacin: no debe modificarse. Android X.Y/ Google APIs [Android X.Y]/: contiene el SDK completo. X.Y es el nmero de versin. android.jar: libreras del SDK de Android. Aparece cuando usamos Android X.Y. o Google APIs [Android X.Y]. maps.jar: libreras de mapas de Google Maps. Slo aparece cuando usamos Google APIs [Android X.Y]. assets/: est vaco. 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 aplicacin. anim/: contiene ficheros XML que se compilan en animaciones. color/: contiene ficheros XML que describen colores. drawable/: contiene imgenes y ficheros XML que describen formas y objetos Drawable. Hay tres tipos: hdpi (alta definicin), ldpi (baja definicin), mdpi (media definicin). icon.png: icono de la aplicacin 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 mens de aplicacin. 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 internacionalizacin strings.xml. xml/: contiene ficheros XML que configuran componentes de la aplicacin, como las preferencias de pantalla. libs/: contiene libreras privadas. AndroidManifest.xml: fichero que describe la aplicacin: componentes, permisos, capacidades, build.properties: contiene propiedades modificadas para el sistema de compilacin. En Eclipse no se utiliza. build.xml: fichero Ant del proyecto. En Eclipse no se utiliza. default.properties: fichero generado automticamente que define como construir la aplicacin.

Demo

Fuente: http://programming-android.labs.oreilly.com/figs/web/ch03-components.png

Pulse para editar el formato del texto de ttuloHaga clic para modificar el estilo de ttulo del patrn

Pulse para editar el formato del texto de ttuloHaga clic para modificar el estilo de ttulo del patrn

Pulse para editar los formatos del texto del esquemaSegundo nivel del esquemaTercer nivel del esquemaCuarto nivel del esquemaQuinto nivel del esquemaSexto nivel del esquemaSptimo nivel del esquemaOctavo nivel del esquema

Noveno nivel del esquemaHaga clic para modificar el estilo de texto del patrnSegundo nivelTercer nivelCuarto nivelQuinto nivel

Pulse para editar los formatos del texto del esquemaSegundo nivel del esquemaTercer nivel del esquemaCuarto nivel del esquemaQuinto nivel del esquemaSexto nivel del esquemaSptimo nivel del esquemaOctavo nivel del esquema

Noveno nivel del esquemaHaga clic para modificar el estilo de texto del patrnSegundo nivelTercer nivelCuarto nivelQuinto nivel