2.1 introducción a android.pdf

39
Android SDK Desarrollo de aplicaciones para dispositivos móviles ed.itaguascalientes.edu.mx/moodle/

Upload: jose-de-jesus-garcia

Post on 16-Sep-2015

39 views

Category:

Documents


3 download

TRANSCRIPT

  • Android SDK

    Desarrollo de aplicaciones para dispositivos mviles

    ed.itaguascalientes.edu.mx/moodle/

  • Objetivo

    El objetivo de este curso es:

    Introduccin a la plataforma android: estado actual, evolucin de la plataforma

    Introduccin a la plataforma android como desarrollador: entrono de programacin y publicacin

    Introduccin a la programacin android: teora y practica bsica de programacin de pequeas aplicaciones

  • Caractersticas

    Plataforma abierta Basada en Linux y cdigoabierto.

    Adaptable a cualquier tipo de hardware. Telfonos, tabletas, relojes, cmaras, electrodomsticos y gran variedad de sistemas empotrados que se basan en este sistema operativo

    Portabilidad Aplicaciones desarrolladas en Java. Arquitectura basada en componentes inspirados en

    Internet Diseos de interface en XML. Filosofa siempre conectado a Internet Aceptable nivel de seguridad. Optimizado para baja potencia y poca memoria

    Mquina virtual Dalvik de Google.

    Alta calidad de grficos y sonido

  • Desarrollo de aplicaciones

    mviles: as est el mercado

  • Un gigante

    dormido, la otra

    gran plataforma en

    la sombra: HTML5

  • Android vs otras

    plataformas

  • Arquitectura

  • Ncleo Linux: El ncleo de Android est formado por el sistema operativo Linux versin 2.6. Esta capa proporciona servicios como la seguridad, el manejo de la memoria, el multiproceso, la pila de protocolos y el soporte de drivers para dispositivos.

    Esta capa del modelo acta como capa de abstraccin entre el hardware y el resto de la pila. Por lo tanto, es la nica que es dependiente del hardware.

    Arquitectura

  • Arquitectura

    Runtime de Android: Est basado en el concepto de mquina virtual utilizado en Java. Dado las limitaciones de los dispositivos donde ha de correr Android no fue posible utilizar una mquina virtual Java estndar. Google tom la decisin de crear una nueva, la mquina virtual Dalvik.

    Algunas caractersticas de la mquina virtual Dalvik que facilitan esta optimizacin de recursos son: que ejecuta ficheros Dalvik ejecutables (.dex) formato optimizado para ahorrar memoria.

    Est basada en registros. Cada aplicacin corre en su propio proceso Linux con su propia instancia de la mquina virtual Dalvik. Delega al kernel de Linux algunas funciones como threading y el manejo de la memoria a bajo nivel.

    Tambin se incluye en el Runtine de Android el core libraries con la mayora de las libreras disponibles en el lenguaje Java.

  • Arquitectura

  • Arquitectura

  • Arquitectura

    Entorno de aplicacin. Proporciona una plataforma de desarrollo libre para aplicaciones con gran riqueza e innovaciones (sensores, localizacin, servicios, barra de notificaciones,).

    Esta capa ha sido diseada para simplificar la reutilizacin de componentes. Las aplicaciones pueden publicar sus capacidades y otras pueden hacer uso de ellas (sujetas a las restricciones de seguridad). Este mismo mecanismo permite a los usuarios reemplazar componentes.

    Una de las mayores fortalezas del entorno de aplicacin de Android es que se aprovecha el lenguaje de programacin Java. El SDK de Android no acaba de ofrecer todo lo disponible para su estndar del entorno de ejecucin Java (JRE), pero es compatible con una fraccin muy significativa de la misma.

  • Arquitectura

    Entorno de aplicacin. Los servicios ms importantes que incluye son: Views Resource Manager Activity Manager Notification Manager Content Providers

  • Arquitectura

    Views: extenso conjunto de vistas, (parte visual de los componentes).

  • Arquitectura

    Resource Manager: proporciona acceso a recursos que no son en cdigo.

  • Arquitectura

    Activity Manager: maneja el ciclo de vida de las aplicaciones y proporciona un sistema de navegacin entre ellas.

  • Arquitectura

    Notification Manager: permite a las aplicaciones mostrar alertas personalizadas en la barra de estado.

  • Arquitectura

    Content Providers: mecanismo sencillo para acceder a datos de otras aplicaciones (como los contactos).

  • Arquitectura

    Aplicaciones: Este nivel est formado por el conjunto de aplicaciones instaladas en una mquina Android. Todas las aplicaciones han de correr en la mquina virtual Dalvik para garantizar la seguridad del sistema.

    Normalmente las aplicaciones Android estn escritas en Java. Para desarrollar aplicaciones en Java podemos utilizar el Android SDK. Existe otra opcin consistente en desarrollar las aplicaciones utilizando C/C++. Para esta opcin podemos utilizar el Android NDK (Native Development Kit).

  • Arquitectura

  • Las versiones de Android y

    niveles de API

    Android 1.0 Nivel de API 1 (septiembre 2008) Android 1.1 Nivel de API 2 (febrero 2009) Cupcake Android 1.5 Nivel de API 3 (abril 2009) Donut Android 1.6 Nivel de API 4 (septiembre 2009) clair Android 2.0 Nivel de API 5 (octubre 2009) Android 2.1 Nivel de API 7 (enero 2010) Froyo Android 2.2 Nivel de API 8 (mayo 2010) Gingerbread Android 2.3 Nivel de API 9 (diciembre 2010) Honeycomb Android 3.0 Nivel de API 11 (febrero 2011) Android 3.1 Nivel de API 12 (mayo 2011) Android 3.2 Nivel de API 13 (julio 2011) Ice Cream Sandwich Android 4.0 Nivel de API 14 (octubre 2011) Android 4.0.3 Nivel de API 15 (diciembre 2011) Jelly Bean Android 4.1 Nivel de API 16 (julio 2012) Android 4.2 Nivel de API 17 (noviembre 2012) Android 4.3 Nivel de API 18 (julio 2013) Android 4.4 Kitkat Nivel de API 19 (octubre 2013) Android 5.0 Lollipop Nivel de API 21 (noviembre 2014)

  • Eleccin de la plataforma de

    desarrollo

    A la hora de seleccionar la plataforma de desarrollo hay que consultar si necesitamos

    alguna caracterstica especial que solo est

    disponible a partir de una versin.

  • Eleccin de la plataforma de

    desarrollo

  • Eleccin de la plataforma de

    desarrollo

    ldpi mdpi tvdpi hdpi xhdpi xxhdpi Total

    Small 7.2% 7.2%

    Normal 12.0% 34.2% 19.6% 14.6% 80.4%

    Large 0.6% 4.4% 1.6% 0.6% 0.6% 7.8%

    Xlarge 4.0% 0.3% 0.3% 4.6%

    Total 7.8% 20.4% 1.6% 35.1% 20.5% 14.6%

  • Introduccin

    En que me afecta en todo esto a la hora de programar?

    Actualmente estn saliendo diferentes versiones de android en periodos muy cortos de tiempo.

    Cada nueva versin incorpora mas funcionalidades, posibilidades tanto a nivel funcional como a nivel estructural. (nuevas APIs).

    Actualmente existe un volumen no demasiado alto de terminales con muy diferentes versiones de android.

    Esperemos que cuando llegue el boom de esta plataforma esta sea mas estable.

  • Introduccin

    Ejemplo:

    Evento onClick para un botn en android 1.5

    class MyActivity extends Activity {

    findViewById(R.id.myButton).setOnClickListener(new

    View.OnClickListener() {

    public void onClick(View v) {

    // Do stuff

    }

    }); }

  • Introduccin

    Ejemplo:

    Evento onClick para un botn en android 1.6

    class MyActivity extends Activity {

    public void myClickHandler(View target) {

    // Do stuff

    }

    }

    Tambin hay que tener en cuenta las capacidades a nivel de hardware

  • Entorno Programacin

    SDK

  • Entorno Programacin

    Estructura de un Proyecto Android:

    Res (recursos) drawable (imgenes por defecto -)

    icon.png Imagen.png

    drawable-jp (imgenes japones-) Icon.png Imagen.png

    layout (diseos de pantalla) main.xml

    values strings.xml (textos por defecto-)

    values-jp Strings.xml (textos en japones-)

    src (codigo java) AndroidManifest.xml

  • Aplicacin Android

    Estructura .APK se compone de los siguientes archivos:

    AndroidManifest.xml classes.dex resources.arsc res (carpeta) META-INF (carpeta) lib (carpeta)

    Un archivo APK es una variante del formato JAR de Java. No es ms que un fichero en archivo comprimido ZIP donde se ha empaquetado cuatro tipos de informacin: El cdigo, los recursos, la firma digital y el fichero de manifiesto

  • Aplicacin Android

    Tipos de Aplicacin:

    ActivityEs el componente mas comn. Seria equivalente a un FORM o

    ventana y a partir de la base Activity existen Activitys derivadas que implementan metodos para facilitar la integracin de elementos como listas, mapas o tabs.

    Broadcast ReceiverSon componentes que escuchan eventos del generados por

    otras aplicaciones (llegada de un sms, bateria baja,..)

    ServiceServicios que se ejecutan en un segundo plano.

    Content ProviderSon estructuras que permiten intercambian informacin entre

    aplicaciones

  • Entorno Programacin

    Localizacin:

    Locale Code Language / Country Location of strings.xml Location of flag.png

    Default English / United Kingdom

    res/values/ res/drawable/

    de-rDE German / Germany res/values-de/ res/drawable-de-rDE/

    fr-rFR French / France res/values-fr/ res/drawable-fr-rFR/

    fr-rCA French / Canada res/values-fr/ res/drawable-fr-rCA/

    en-rCA English / Canada (res/values/) res/drawable-en-rCA/

    ja-rJP Japanese / Japan res/values-ja/ res/drawable-ja-rJP/

    en-rUS English / United States

    (res/values/) res/drawable-en-rUS/