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/
Top Related