Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Android (Visión General)

Aprende Android desde cero
by

Diversix Solutions

on 3 June 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Android (Visión General)

Visión general
Aprende Android desde cero
Arquitectura de Android
El siguiente gráfico muestra la arquitectura de Android. Como se puede ver está formada por cuatro capas. Una de las características más importantes es que todas las capas están basadas en software libre.
Diversix
www.diversix.com
Tabla 1:Comparativa de las principales plataformas móviles
Figura 1: Porcentaje de teléfonos inteligentes vendidos según su sistema operativos
hasta el tercer cuarto del 2013 en el mundo (fuente: Gartner Group).
Arquitectura de Android.
El núcleo Linux
El núcleo de Android está formado por el sistema operativo Linux versión 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 actúa como capa de abstracción entre el hardware y el resto de la pila. Por lo tanto, es la única que es dependiente del hardware.
Runtime de Android
Está basado en el concepto de máquina virtual utilizado en Java. Dado las limitaciones de los dispositivos donde ha de correr Android (poca memoria y procesador limitado) no fue posible utilizar una máquina virtual Java estándar. Google tomó la decisión de crear una nueva, la máquina virtual Dalvik, que respondiera mejor a estas limitaciones.

Algunas características de la máquina virtual Dalvik que facilitan esta optimización de recursos son: que ejecuta ficheros Dalvik ejecutables (.dex) –formato optimizado para ahorrar memoria. Además, está basada en registros. Cada aplicación corre en su propio proceso Linux con su propia instancia de la máquina virtual Dalvik. Delega al kernel de Linux algunas funciones como threading y el manejo de la memoria a bajo nivel.

También se incluye en el Runtine de Android el “core libraries” con la mayoría de las librerías disponibles en el lenguaje Java.
Librerías nativas
Incluye un conjunto de librerías en C/C++ usadas en varios componentes de Android. Están compiladas en código nativo del procesador. Muchas de las librerías utilizan proyectos de código abierto. Algunas de estas librerías son:

System C library
:
una derivación de la librería BSD de C estándar (libc), adaptada para dispositivos embebidos basados en Linux.
Media Framework:
librería basada en PacketVideo's OpenCORE; soporta codecs de reproducción y grabación de multitud de formatos de audio vídeo e imágenes MPEG4, H.264, MP3, AAC, AMR, JPG y PNG.
Surface Manager:
maneja el acceso al subsistema de representación gráfica en 2D y 3D.
WebKit:
soporta un moderno navegador web utilizado en el navegador Android y en la vista webview. Se trata de la misma librería que utiliza Google Chrome y Safari de Apple.
SGL:
motor de gráficos 2D.
Librerías 3D:
implementación basada en OpenGL ES 1.0 API. Las librerías utilizan el acelerador harware 3D si está disponible, o el software altamente optimizado de proyección 3D.
FreeType:
fuentes en bitmap y renderizado vectorial.
SQLite:
potente y ligero motor de bases de datos relacionales disponible para todas las aplicaciones.
SSL:
proporciona servicios de encriptación Secure Socket Layer.
Entorno de aplicación
Proporciona una plataforma de desarrollo libre para aplicaciones con gran riqueza e innovaciones (sensores, localización, servicios, barra de notificaciones,).

Esta capa ha sido diseñada para simplificar la reutilización 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 aplicación de Android es que se aprovecha el lenguaje de programación Java. El SDK de Android no acaba de ofrecer todo lo disponible para su estándar del entorno de ejecución Java (JRE), pero es compatible con una fracción muy significativa de la misma.

Los servicios más importantes que incluye sonn:

Views:
extenso conjunto de vistas, (parte visual de los componentes).
Resource Manager:
proporciona acceso a recursos que no son en código.
Activity Manager:
maneja el ciclo de vida de las aplicaciones y proporciona un sistema de navegación entre ellas.
Notification Manager:
permite a las aplicaciones mostrar alertas personalizadas en la barra de estado.
Content Providers:
mecanismo sencillo para acceder a datos de otras aplicaciones (como los contactos).
Aplicaciones
Este nivel está formado por el conjunto de aplicaciones instaladas en una máquina Android. Todas las aplicaciones han de correr en la máquina virtual Dalvik para garantizar la seguridad del sistema.

Normalmente las aplicaciones Android están escritas en Java. Para desarrollar aplicaciones en Java podemos utilizar el Android SDK. Existe otra opción consistente en desarrollar las aplicaciones utilizando C/C++. Para esta opción podemos utilizar el Android NDK (Native Development Kit).
La telefonía móvil está cambiando la sociedad actual de una forma tan significativa como lo ha hecho Internet. Esta revolución no ha hecho más que empezar, los nuevos terminales ofrecen unas capacidades similares a un ordenador personal, lo que permite que puedan ser utilizados para leer nuestro correo o navegar por Internet. Pero a diferencia de un ordenador, un teléfono móvil siempre está en el bolsillo del usuario. Esto permite un nuevo abanico de aplicaciones mucho más cercanas al usuario. De hecho, muchos autores coinciden en que el nuevo ordenador personal del siglo veintiuno será un terminal móvil.

El lanzamiento de Android como nueva plataforma para el desarrollo de aplicaciones móviles ha causado una gran expectación y está teniendo una importante aceptación tanto por los usuarios como por la industria. En la actualidad se está convirtiendo en una seria alternativa frente a otras plataformas como Symbian, iPhone o Windows Phone.
Evolución telefonía móvil
Conocer las características de Android, destacando los aspectos que lo hacen diferente de sus competidores.

Estudiar la arquitectura interna de Android.

Conocer donde podemos conseguir documentación sobre Android.

Enumerar las principales versiones de Android y aprender a elegir la más idónea para desarrollar nuestras aplicaciones.

Crear una primera aplicación y estudiar su estructura de un proyecto en Android.
Objetivos
?Que hace Android Especial¿
Plataforma realmente abierta.

Adaptable a cualquier tipo de hardware.

Portabilidad asegurada

Arquitectura basada en componentes inspirados en Internet.

Filosofía de dispositivo siempre conectado a Internet.

Gran cantidad de servicios incorporados.
Aceptable nivel de seguridad.

Optimizado para baja potencia y poca memoria.

Alta calidad de gráficos y sonido.
Los orígenes
2007
2010
2012
2011
2005
Google adquiere Android Inc.
Google adquiere Android Inc. en el año 2005. Se trataba de una pequeña compañía, que acababa de ser creada, orientada a la producción de aplicaciones para terminales móviles. Ese mismo año empiezan a trabajar en la creación de una máquina virtual Java optimizada para móviles (Dalvik VM).
Handset Alliance
En el año 2007 se crea el consorcio Handset Alliance con el objetivo de desarrollar estándares abiertos para móviles. Está formado por Google, Intel, Texas Instruments, Motorola, T-Mobile, Samsung, Ericson, Toshiba, Vodafone, NTT DoCoMo, Sprint Nextel y otros. Una pieza clave de los objetivos de esta alianza es promover el diseño y difusión de la plataforma Android. Sus miembros se han comprometido a publicar una parte importante de su propiedad intelectual como código abierto bajo licencia Apache v2.0.

En noviembre del 2007 se lanza una primera versión del Android SDK. Al año siguiente aparece el primer móvil con Android (T-Mobile G1). En octubre Google libera el código fuente de Android principalmente bajo licencia de código abierto Apache (licencia GPL v2 para el núcleo). Ese mismo mes se abre Android Market, para la descarga de aplicaciones. En abril del 2009 Google lanza la versión 1.5 del SDK que incorpora nuevas característica como el teclado en pantalla. A finales del 2009 se lanza la versión 2.0 y durante el 2010 las versiones 2.1, 2.2 y 2.3.
Android se consolida
Durante el año 2010 Android se consolida como uno de los sistemas operativos para móviles más utilizados, con resultados cercanos al iPhone e incluso superando al sistema de Apple en EE.UU.
Android alcanza 50% en el mercado
En el 2011 se lanzan la versión 3.0, 3.1 y 3.2 específica para tabletas y la 4.0 tanto para móviles como para tabletas. Durante este año Android se consolida como la plataforma para móviles más importante alcanzando una cuota de mercado superior al 50%.
Android alcanza 75% en el mercado
En 2012 Google cambia su estrategia en su tienda de descargas online, reemplazando Android Market por Google Play Store. Donde en un solo portal unifica tanto la descarga de aplicaciones como de contenidos. En este año aparecen las versiones 4.1 y 4.2 del SDK. Android mantiene su expectacular crecimiento, alcanzando a finales de año una cuota de mercado del 75%.
Instalación del entorno de desarrollo
Google ha preparado el el paquete de software Android SDK, que incorpora todas las herramientas nedesarias para el desarrollo de aplicaciones en Android. En el se incluye conversor de códgo, debugger, librarias, emulador, documentation, ejemplos de código, etc. Todas estas herramientas son accesibles desde la línea de comandos, por otra parte para el desarrollo.

No obstante la mayoría de desarrolldores prefiefen utilizar un IDE, o entorno de desarrollo integrado que integre un editor de texto con todas las herramientas de desarrollo. Aunque no son las únicas dos posibilidades las alternativas más recomendables son Eclipse e IntelliJ Idea. Dado que es frecuente los problemas con el entorno de desarrollo, puede ser una buena idea instalar las dos y utilizar el que menos problemas nos de. A continuación pasamos a describir varias alternativas para el proceso de instalación.
Instalación de Android Studio

En la edición de Google I/O 2013 se ha lanzado un preview de Android Studio. Se trata de un nuevo entorno de desarrollo para Android basado en IntelliJ IDEA. Incorpora nuevas características que no han sido incorporadas en el tradicional IDE basado en Eclipse. Esto parece indicar que Google va a potenciar este entorno para el desarrollo de aplicaciones, en detrimento del entorno basado en Eclipse.

Puedes descargar ADT Bundle en http://developer.android.com/sdk/installing/studio.html

NOTA: Actualmente Android Studio está disponible en versión beta. Varias características están incompletas y que puede encontrar errores. Si no te sientes cómodo usando un producto inacabado, puedes pasar al siguiente punto y descargar en su lugar el paquete ADT.
Instalación basada en Eclipse con ADT Bunble
Google ha sacado recientemente ADT Bundle, un paquete que incluye los elementos para instalar de forma sencilla el IDE basado en Eclipse. En el siguiente apartado se explica como instalar cada uno de estos elementos por separado. Aunque es algo más laborioso puede ser interesante para aprender a configurar manualmente cada componente o cuando aparecen problemas en la instalación.
Puedes descargar ADT Bundle en http://developer.android.com/sdk/installing/studio.html
Es la primera versión con algún usuario (aunque apenas la usa un 0,1% en enero de 2013). Como novedades, se incorpora la posibilidad de teclado en pantalla con predicción de texto, los terminales ya no tienen que tener un teclado físico, así como la capacidad de grabación avanzada de audio y vídeo. También aparecen los widgets de escritorio y live folders. Incorpora soporte para bluetooth estéreo, por lo que permite conectarse automáticamente a auriculares bluetooth. Las transiciones entre ventanas se realizan mediante animaciones.
Android 1.5 Nivel de API 3 (abril 2009)
Permite capacidades de búsqueda avanzada en todo el dispositivo. También se incorpora gestures y multi-touch. Permite la síntesis de texto a voz. También se facilita que una aplicación pueda trabajar con diferentes densidades de pantalla. Soporte para resolución de pantallas WVGA. Aparece un nuevo atributo XML, onClick, que puede especificarse en una vista. Play Store antes, Android Market se mejora permitiendo una búsqueda más sencilla de aplicaciones. Soporte para CDMA/EVDO, 802.1x y VPNs. Mejoras en la aplicación de la cámara.
Android 1.6 Nivel de API 4 (septiembre 2009
Se considera una actualización menor, por lo que le siguieron llamando Éclair. Destacamos el reconocimiento de voz que permite introducir un campo de texto dictando sin necesidad de utilizar el teclado. También permite desarrollar fondos de pantalla animados. Se puede obtener información sobre la señal de la red actual que posea el dispositivo. En el paquete WebKit se incluyen nuevos métodos para manipular bases de datos almacenadas en Web. También se permite obtener permisos de geolocalización, y modificarlos en WebView. Se incorporan mecanismos para administrar la configuración de la caché de aplicaciones, almacenamiento web, y modificar la resolución de la pantalla. También se puede manejar vídeo, historial de navegación, vistas personalizadas…
Android 2.1 Nivel de API 7 (enero 2010)
Como característica más destacada se puede indicar la mejora de velocidad de ejecución de las aplicaciones (ejecución del código de la CPU de 2 a 5 veces más rápido que en la versión 2.1 de acuerdo a varios benchmarks). Esto se consigue con la introducción de un nuevo compilador JIT de la máquina Dalvik.

Se añaden varias mejoras relacionadas con el navegador Web, como el soporte de Adobe Flash 10.1 y la incorporación del motor Javascript V8 utilizado en Chrome o la incorporación del campo de “subir fichero” en un formulario.

El desarrollo de aplicaciones permite las siguientes novedades: se puede preguntar al usuario si desea instalar una aplicación en un medio de almacenamiento externo (como una tarjeta SD), como alternativa a la instalación en la memoria interna del dispositivo. Las aplicaciones se actualizan de forma automática cuando aparece una nueva versión. Proporciona un servicio para la copia de seguridad de datos que se puede realizar desde la propia aplicación para garantizar al usuario el mantenimiento de sus datos. Por último, se facilita que las aplicaciones interaccionen con el reconocimiento de voz y que terceras partes proporcionen nuevos motores de reconocimiento.

Se mejora la conectividad: ahora podemos utilizar nuestro teléfono para dar acceso a Internet a otros dispositivos (tethering), tanto por USB como por Wi-Fi. También se añade el soporte a Wi-Fi IEEE 802.11n y notificaciones push.

Se añaden varias mejoras en diferentes componentes: En el API gráfica OpenGL ES se pasa a soportar la versión 2.0. También se puede realizar fotos o vídeos en cualquier orientación (incluso vertical) y configurar otros ajustes de la cámara. Para finalizar, permite definir modos de interfaz de usuario (“automóvil” y “noche”) para que las aplicaciones se configuren según el modo seleccionado por el usuario
Android 2.2 Nivel de API 8 (mayo 2010)
Debido al éxito de Android en las nuevas tabletas ahora soporta mayores tamaños de pantalla y resoluciones (WXGA y superiores).

Incorpora un nuevo interfaz de usuario con un diseño actualizado. Dentro de las mejoras de la interfaz de usuario destacamos la mejora de la funcionalidad de “cortar, copiar y pegar” y un teclado en pantalla con capacidad multitáctil.

Se incluye soporte nativo para varias cámaras, pensado en la segunda cámara usada en videoconferencia. La incorporación de esta segunda cámara ha propiciado la inclusión de reconocimiento facial para identificar el usuario del terminal.

La máquina virtual de Dalvik para Android introduce un nuevo recolector de basura que minimiza las pausas de la aplicación, ayudando a garantizar una mejor animación y el aumento de la capacidad de respuesta en juegos y aplicaciones similares. Se trata de corregir así una de las lacras de este sistema operativo móvil, que en versiones previas no ha sido capaz de cerrar bien las aplicaciones en desuso. Se dispone de mayor apoyo para el desarrollo de código nativo (NDK).También se mejora la gestión de energía y control de aplicaciones. Y se cambia el sistema de ficheros, que pasa de YAFFS a ext4.
Android 2.3 Nivel de API 9 (diciembre 2010)
Para mejorar la experiencia de Android en las nuevas tabletas se lanza la versión 3.0 optimizada para dispositivos con pantallas grandes. La nueva interfaz de usuario ha sido completamente rediseñada con paradigmas nuevos para la interacción, navegación y personalización. La nueva interfaz se pone a disposición de todas las aplicaciones, incluso las construidas para versiones anteriores de la plataforma.

Las principales novedades de este SDK son:

Con el objetivo de adaptar la interfaz de usuario a pantallas más grandes se incorporan las siguientes características: resolución por defecto WXGA (1280×800), escritorio 3D con widgets rediseñados, nuevos componentes y vistas, notificaciones mejoradas, arrastrar y soltar, nuevo cortar y pegar, barra de acciones para que las aplicaciones dispongan de un menú contextual siempre presente y otras características para aprovechar las pantallas más grandes.

Se mejora la reproducción de animaciones 2D/3D gracias al renderizador OpenGL acelerado por hardware. El nuevo motor de gráficos Rederscript saca un gran rendimiento de los gráficos en Android e incorpora su propia API.

Primera versión de la plataforma que soporta procesadores multinúcleo. La máquina virtual Dalvik ha sido optimizada para permitir multiprocesado, lo que permite una ejecución más rápida de las aplicaciones, incluso aquellas que son de hilo único.
Android 3.0 Nivel de API 11 (febrero 2011)
La característica más importante es que se unifican las dos versiones anteriores (2.x para teléfonos y 3.x para tabletas) en una sola compatible con cualquier tipo de dispositivo. Entre las características más interesantes destacamos:

Se introduce un nuevo interfaz de usuario totalmente renovado. Por ejmplo, se reemplazan los botones físicos por botones en pantalla (como ocurria en las versiones 3.x).

Nuevo API de reconocedor facial, permite entre otras muchas aplicaciones desbloquear el teléfono a su propietario. También se mejora en el reconocimiento de voz. Por ejemplo se puede empezar a hablar en cuanto pulsamos el botón.

Aparece un nuevo gestor de tráfico de datos por Internet, donde podremos ver el consumo de forma gráfica y donde podemos definir los límites a ese consumo para evitar cargos inesperados con la operadora. Incorpora herramientas para la edición de imágenes en tiempo real, con herramientas para distorsionar, manipular e interactuar con la imagen al momento de ser capturada. Se mejora el API para comunicaciones por NFC y la integración con redes sociales.

En diciembre del 2011 aparece una actualización de mantenimiento (versión 4.0.2) que no aumenta el nivel de API.
Android 4.0 Nivel de API 14 (octubre 2011)
¿Que versión de Android
estamos actualmente?
Elección de la plataforma de desarrollo
A la hora de seleccionar la plataforma de desarrollo hay que consultar si necesitamos alguna característica especial que solo esté disponible a partir de una versión. Todos los usuarios con versiones inferiores a la seleccionada no podrán instalar la aplicación. Por lo tanto, es recomendable seleccionar la menor versión posible que nuestra aplicación pueda soportar. Por ejemplo, si nuestra aplicación necesita utilizar varios cursores simultáneos en la pantalla táctil (multi-touch), tendremos que utilizar la versión 1.6 al ser la primera que lo soporta. Pero, la aplicación no podrá ser instalada en vesiones anteriores. Para ayudarnos a tomar la decisión de que plataforma utilizar puede ser interesante consultar los porcentajes de utilización:
Tras estudiar la gráfica podemos destacar el reducido número de usuarios que utilizan las versiones 1.x (0.2%). Por lo tanto, puede ser buena idea utilizar como versión mínima la 2.1 (ó 2.2) para desarrollar nuestro proyecto, dado que daríamos cobertura al 99,8% (ó 97%) de los terminales. Las versiones 3.x (1,5%) han tenido muy poca difusión y presentan tendencia a disminuir. Las versiones 4.1 y 4.2, con un 10%, todavía son minoritarias pero se prevé que este porcentaje vaya aumentando. No obstante, estas cifras cambian mes a mes. Recomendamos consultar el link siguiente antes de tomar decisiones sobre las versiones a utilizar.
Versiones de Android































































Full transcript