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

Arquitectura de Android:

No description
by

on 16 October 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Arquitectura de Android:

Arquitectura de Android:
- Kernel de Linux.
Capas:
El núcleo del SO Android es Kernel de Linux 2.6, similar al de Ubuntu pero adaptado a las características de Android. Esto permite que se pueda acceder a los componentes del
teléfono.

Para cada elemento hardware del teléfono existe un controlador (o driver) dentro del Kernel que permite utilizarlo desde el software. El Kernel también se encarga de gestionar los recursos del teléfono (energía, memoria...) y del sistema operativo en sí: procesos, elementos de comunicación...
- Bibliotecas:
Están escritos en C y C++ y compilados para la arquitectura hardware específica del teléfono. Proporciona funcionalidad a las aplicaciones para tareas que se repiten con frecuencia, evitando tener que codificarlos cada vez, garantizando que se lleven a cabo de la forma más eficiente.

Algunas de las bibliotecas que se incluyen habitualmente son:

*Gestor de superficies(Surface Manager): compone las imágenes que se muestran en pantalla a partir de capas gráficas 2D y 3D.

*SGL(Scalable Graphics Library): representa elementos en 2 dimensiones.

*SSL(Secure Sockets Layer): proporciona seguridad al acceder a internet por medio de criptografía.
Entorno de ejecución:
El principal componente del entorno de ejecución es la máquina virtual Dalvik, componente que ejecuta todas las aplicaciones no nativas de Android.

Las aplicaciones se codifican en Java y se compilan en un formato específico para la máquina virtual, que es la que las ejecuta.

Esto asegura que las aplicaciones puedan ejecutarse en cualquier aplicación de Android.
Marco de aplicación:
Forma todas las clases y servicios que utilizan directamente las aplicaciones para realizar sus funciones y que se apoyan en las bibliotecas y en el entorno de ejecución detallados anteriormente.

La mayoría de los componentes son bibliotecas Java que acceden a los recursos a través de la máquina virtual Dalvik. Entre otras se encuentran:

*Administrador de actividades(Activity Manager): controla el ciclo de vida y la pila de actividades. Las actividades son las ventanas de la aplicación que se muestran en el dispositivo Android.

*Administrador de ventanas(Windows Manager): se encarga de organizar lo que se muestra en pantalla, creando superficies que pueden ser rellenadas por las actividades.

*Administrador de ubicaciones(Location Manager): determina la posición geográfica del dispositivo Android.
Es un lenguaje de programación que ofrece la potencia del diseño orientado a objetos con una sintaxis fácilmente accesible y un entorno robusto y agradable. Proporciona un conjunto de clases potentes y flexibles que ponen al alcance de cualquiera la utilización de aplicaciones que se pueden incluir directamente en páginas webs.

A estas aplicaciones se les denomina applets.
Características:

*Orientación a objetos: el concepto de objetos resulta sencillo y fácil de ampliar. Además, se conservan elementos "no objetos", como números, caracteres y otros tipos de datos simples.

*Riqueza semántica: Pese a su simpleza se ha conseguido un considerable potencial, y aunque cada tarea se puede realizar de un número reducido de formas, se ha conseguido un gran potencial de expresión e innovación desde el punto de vista del programador.

Se incluyen todas las aplicaciones del dispositivo, tanto las que tienen interfaz de usuario como las que no; tanto las nativas (programadas en C o C++) como las administrativas (Java); tanto las que vienen de serie con el dispositivo como las instaladas por el usuario.

Aquí está también la aplicación del sistema (launcher). Es la que permite ejecutar otras aplicaciones proporcionando la lista de aplicaciones instaladas y mostrando diferentes escritorios donde se pueden colocar accesos directos a aplicaciones o incluso pequeñas aplicaciones incrustadas o widgets, que son también aplicaciones de esta capa.
Aplicaciones:
La arquitectura de Android está formada
por varias capas que facilitan al desarrollador
la creación de las aplicaciones.

A las capas mas bajas se accede mediante librerías para que el desarrollador no tenga que
programar a bajo nivel las funcionalidades necesarias para que una aplicación haga uso de los componentes del hardware de los teléfonos.

Cada una de las capas utiliza elementos de
la capa inferior para realizar sus funciones.

A este tipo de arquitectura se le denomina pila.
* Modelo de objeto rico: existen varias clases que contienen las abstracciones básicas para facilitar a los programas una gran capacidad de representación.

*Fácil aprendizaje: el único requerimiento para aprender Java es tener una comprensión de los conceptos básicos de la programación orientada a objetos.

* Completado con utilidades: el paquete de utilidades de Java viene con un conjunto completo de estructuras de datos complejas y sus métodos asociados, que serán de inestimable ayuda para implementar applets y otras aplicaciones más complejas.

* Interactivo y animado
Uno de los requisitos de Java desde sus inicios fue la posibilidad de crear programas en red interactivos, por lo que es capaz de hacer varias cosas a la vez sin perder rastro de lo que debería suceder y cuándo.

* Trabajo en red: Java anima las páginas Web y hace posible la incorporación de aplicaciones interactivas y especializadas.
*Applets
Una applet (miniaplicación) es un pequeño programa en Java transferido dinámicamente a través de Internet.

*Seguridad: existe una preocupación lógica en Internet por el tema de la seguridad: virus, caballos de Troya, y programas similares navegan de forma usual por la red, constituyendo una amenaza palpable.

*Lenguaje basado en C++: Java fue desarrollado basándose en C++, pero eliminando rasgos del mismo poco empleados, optándo por una codificación comprensible.

Diferencias:

*Se distingue por su forma de manejar ciertos operadores y no permite una sobrecarga de operadores.

*No soporta herencia múltiple.

*Java maneja argumentos en la línea de comandos de forma diversa a como lo hacen C o C++.

*Tiene una clase String que es parte del paquete java.lang y se diferencia de la matriz de caracteres terminada con un nulo que usan C y C++.

*Java cuenta con un sistema automático para asignar y liberar memoria, con lo que no es necesario utilizar las funciones previstas con este fin en C y C++.

*Gestión de la Entrada/Salida: en lugar de utilizar primitivas como las de C para trabajar con ficheros, se utlizan primitivas similares a las de C++, mucho más elegantes, que permiten tratar los ficheros, sockets, teclado y monitor como flujos de datos.

*Diferentes tipos de aplicaciones: en Java podemos crear los siguientes tipos de aplicaciones:

*Aplicaciones: Se ejecutan sin necesidad de un navegador.

*Applets: Se pueden descargar de Internet y se observan en un navegador.

*JavaBeans: Componentes software Java, que se puedan incorporar gráficamente a otros componentes.

*JavaScript: Conjunto del lenguaje Java que puede codificarse directamente sobre cualquier documento HTML.
*Servlets: Módulos que permiten sustituir o utilizar el lenguaje Java en lugar de programas CGI (Common Gateway Interface) a la hora de dotar de interactividad a las páginas Web.
Full transcript