SlideShare una empresa de Scribd logo
1
República Bolivariana de Venezuela
Universidad de Oriente
Coordinación de Postgrado – Núcleo Monagas
Maestría en Informática Gerencial
Sistemas Operativo Modernos
SISTEMA OPERATIVO:
ANDROID
Prof.: Integrantes:
Gerardo Guacaran Acosta Gómez, Samuel Joseph
Deyan Rodríguez, Kleeder José
Figuera Jiménez, Alexis Rafael
Parra Bello, María Valentina
Febrero 2019
2
ÍNDICE GENERAL
Pág.
INTRODUCCIÓN 5
PARTE 1. ESTRUCTURA DEL HARDWARE 7
CAPÍTULO 1.- Conceptos de Telefonía celular 7
1.1 Tecnología inalámbrica 7
1.1.1 Redes analógicas y digitales 8
1.2 Smartphone 11
1.3 Definición de Telefonía celular. Funcionamiento y
generaciones: 1G, 2G, …5G
11
1.4 Bandas: Dual, Tribanda, Cuatribanda 13
1.5 Tarjetas Dual Sim 14
1.6 Tecnologías 15
CAPÍTULO 2.- Diagrama de bloques de la estructura de
hardware de un Smartphone real, susceptible de soportar la
implantación del Sistema Operativo ANDROID
18
2.1 Diagrama de Bloques de la estructura del Hardware 18
2.2 Descripción del bloque procesador 18
2.2.1 Arquitectura ARM 19
2.2.2 Procesadores Qualcomm Snapdragon y SoCS 20
2.2.3 SoC Exynos de Samsumg 21
2.3 Descripción del bloque memoria y jerarquía 22
2.3.1 Memoria RAM 22
2.3.2 Almacenamiento Interno, La RAM 24
2.3.3 Almacenamiento Extraíble 25
2.4 Descripción del bloque periféricos 26
2.4.1 Bluetooth 26
2.4.2 GPS en los Smartphone 27
2.4.3 Sensor de luz en los móviles 28
2.4.4 Sensor de proximidad 28
2.4.5 WIFI en Smartphone 29
2.4.6 Cámaras de Móviles 30
2.5 Evolución histórica de la estructura del hardware 30
PARTE 2. ESTRUCTURA DEL SISTEMA OPERATIVO 32
CAPÍTULO 3.- Sistema operativo ANDROID 32
3.1 Definición 32
3.2 Ecosistema (reloj, tableta, carro, casa, teléfono, tv)
ANDROID
32
3.3 Objetivos de diseño 34
3.4 Evolución Histórica del Sistema operativo 36
3.4.1 Reseña (historia) 36
3.4.1.1 Creadores 40
3.4.1.2 Logo 42
3.4.1.3 Versiones 43
3
3.5 Diagrama de bloque del Sistema operativo ANDROID 47
3.6 Descripción de cada bloque 48
3.7 Kernel Linux 50
3.7.1 Herramientas de desarrollo 51
3.7.1.1 Eclipse 52
3.7.1.2 Java 63
3.7.1.3 SDK 65
3.7.1.4 Android estudio 65
3.8.1 Aplicaciones Android 66
3.8.2 Requisitos del sistema 70
3.8.3 Publicación 72
3.8.4 Emuladores 73
3.8.5 ¿Cómo emular Android? 74
3.9 Dalvik (máquina virtual) 74
CAPÍTULO 4.- Conceptualización de Procesos y/o hilos 77
4.1 Conceptos de Procesos y/o hilos 77
4.1.1 Hilos 80
4.1.2 Procesos VS Hilos 81
4.2 Diagrama de estado de Procesos y/o hilos 82
CAPÍTULO 5.- Planificación de procesos 85
5.1 Sincronización de procesos 86
5.2 Planificación de sistemas en ambiente Multiprogramación 91
5.2.1 Ventajas de la multiprogramación 93
5.3 Planificación de sistemas en ambiente Multiprocesamiento 94
5.4 Estrategia real de Planificación de Procesos de ANDROID 97
CAPÍTULO 6.- Gestión de memoria principal 98
6.1 Memoria Física y memoria virtual 98
6.2 Jerarquía de memoria 99
6.3 Partición, Segmentación, Paginación 99
CAPÍTULO 7.- Gestión de almacenamiento en ANDROID 101
7.1 Planificación y gestión de dispositivos de almacenamiento
secundario (Discos y memoria flash)
101
7.2 Sistema VFS su equivalente 102
7.3 Sistemas de archivos manejados por ANDROID (NFS,
FAT, ..)
103
CAPÍTULO 8.- Gestión de E/S 105
8.1 Manejo de Periféricos a través del Sistema de archivos 105
CAPÍTULO 9.- Consideraciones sobre seguridad y
protección ofrecidas por el Sistema Operativo objeto de
estudio
107
9.1 Seguridad a través del software 107
9.2 Descripción de algunos fallos de seguridad y protección en
ANDROID
109
9.3 Comparación de algunos fallos de seguridad con otros
Sistemas operativos
109
9.4 Ventajas vs. Desventajas de ANDROID 110
4
CAPÍTULO 10.- Discusión sobre las tendencias 112
10.1 Comparación de ANDROID con otros Sistemas Operativos 112
10.2 Tendencias “free” u “Open” de este Sistema operativo 114
10.3 Base instalada(Cuota de mercado local y global) de este
Sistema Operativo al año 2016
115
10.4 Reseña de algún artículo reciente (año 2016) donde se
compare este Sistema operativo con otro
116
CONCLUSIÓN 118
BIBLIOGRAFÍA 119
5
INTRODUCCION
Los Sistemas operativos han estado presenta en nuestras vidas,
desde los dispositivos electrónicos hasta los muy comunes dispositivos de
bolsillos (Smartphone y tablets). El avance de la tecnología para
dispositivos móvil ha generado Sistemas Operativos independiente con
capacidad de procesamiento de información y su libre acceso de
personalización adaptándose a los gustos de los usuarios.
La llegada de los sistemas operativos nos ha agilizado nuestras
tareas diarias, cada una adaptándose a nuestras necesidades, con un
diseño único para diversos usuarios, quienes los prefieran GNU/LINUX y
otros amantes del WINDOWS. Estos sistemas operativos vienen equipados
con recursos que nos ayudan a facilitar las tareas y así poder alcanzar su
punto óptimo. Desde la llegada de los primeros ordenadores IMB hasta los
más actuales. Los Sistemas Operativos han venidos evolucionando y
cumpliendo con los requerimientos, adaptándose a lo que el usuario busca
conseguir.
Linux ha sido el sistema Operativo con más aportaciones por los
desarrolladores ya que ofrece un código abierto y único para los
desarrolladores. Sin embargo, Windows va dirigido hacia el usuario común
quien busca una interfaz menos compleja y de fácil uso. Por tal motivo Linux
ha desarrollado sistemas operativos para dispositivos móvil disponible para
todo tipo de usuario que sin ningún tipo de conocimiento puedan acceder a
su interfaz, además de contar con aplicaciones pre instaladas, lo que lo
hace diferente a cualquier otro sistema operativo, y es cuando nos
referimos a ANDROID, el cual es un sistema operativo de código abierto,
desarrollado por un lenguaje multifuncional realizado por el SDK java. Esta
construido sobre el Kernel de Linux y además utiliza una maquina
6
personalizada virtual diseñada para optimizar los recursos de memoria y de
hardware en un entorno móvil.
Android se ha preocupado en captar al usuario de dispositivo móvil
para que así aprovechen al máximo el uso de todas las herramientas que
ofrece. En el presente trabajo daremos a conocer acerca del Sistema
Operativo Android ya que hoy en día es el más usado en los dispositivos
móvil y cualquier usuario puede adquirirlo a un costo muy por debajo de
otros sistemas operativos modernos que están en el mercado como lo son:
IOS, BLACKBERRY, WINDOWS MOBILE; todos ellos los encontramos en
Celulares inteligentes, Tablets, Reloj Inteligente, Tv, entre otros.
7
PARTE 1. ESTRUCTURA DEL HARDWARE
Capítulo 1. Conceptos de Telefonía Celular
La telefonía celular o dispositivos móviles (también conocidos como
computadora de mano, «Palmtop» o simplemente handheld) son aparatos
de pequeño tamaño, con algunas capacidades de procesamiento, móviles
o no, con conexión permanente o intermitente a una red, con memoria
limitada, están diseñados para funciones específicas, pero que pueden
llevar a cabo otras funciones más generales.
El teléfono móvil es un dispositivo inalámbrico electrónico que
permite tener acceso a la red de telefonía celular o móvil. Se denomina
celular en la mayoría de países latinoamericanos debido a que el servicio
funciona mediante una red de celdas, donde cada antena repetidora de
señal es una célula, si bien también existen redes telefónicas móviles
satelitales. Su principal característica es su portabilidad, que permite
comunicarse desde casi cualquier lugar. La principal función es la
comunicación de voz, como el teléfono convencional
1.1 Tecnología Inalámbrica
La tecnología inalámbrica no es más que un concepto que se emplea
para hablar del uso de la tecnología sin cables, razón por la que se puede
establecer una conexión entre varios computadores o dispositivos y sin un
gran volumen de elementos físicos extra. La atención sobre la tecnología
inalámbrica es una necesidad en el mundo moderno, porque ha posibilitado
dejar en el olvido los cables, sin que esto implique que se pierda la opción
de establecer una conexión, razón por la que desaparecen las limitaciones
del espacio y el tiempo, lo que da una impresión que las oficinas, centros
de trabajo o estudio se ubiquen en cualquier sitio del mundo.
8
Tecnología Inalámbrica
La tecnología inalámbrica posibilita la comunicación al usar un
emisor y receptor que no están unidos a través de un medio de propagación
físico, sino que se utiliza un tipo de modulación de ondas electromagnéticas
en el espacio. A raíz de lo anterior, los dispositivos físicos tan sólo van a
estar situados en los emisores y en los receptores de la señal, en donde se
pueden plantear como ejemplo las computadoras portátiles, antenas, PDA,
los teléfonos móviles, entre otros.
1.1.1 Redes Analógicas y Digitales
La información se transmite de muchas maneras ya sea con el uso
de un dispositivo u otro. La diferencia entre una señal analógica y digital es
una de las primeras dudas que nos planteamos al conocer más sobre esta
materia. Debemos tener en cuenta que ambos métodos se encargan de
que podamos transmitir información con eficiencia, pero en cada caso de
una forma específica. El sistema que se utiliza para que la información se
pueda transmitir es el aprovechamiento de señales eléctricas que activan
los procesos de intercambio de datos. Tanto las señales digitales como las
analógicas cuentan con diferenciaciones que conviene conocer si estamos
especializándonos en tecnología móvil y otros sistemas similares.
9
Señal analógica
Las medidas físicas se utilizan cuando hablamos de utilizar señales
analógicas, que son especialmente usadas para llevar a cabo la
transmisión de elementos de vídeo o sonido. Aunque son señales de tipo
continuo hay que decir que su expansión se produce por la entrada en
escena de las ondas de tipo senoidal. Para que las distintas señales
analógicas que se transmitan puedan ser interpretadas de una manera
adecuada habrá que tener un decodificador que permita cumplir con el
proceso de trabajo.
Una de las ventajas del uso de la señal analógica es que hay poco
consumo de ancho de banda, mientras que por otro lado es un tipo de
acción que se procesa en tiempo real. Hay menores necesidades en
términos de inversión y la calidad suele ser más fiel a la realidad (cuando
hablamos de la transmisión de sonido). Pero también tiene sus
desventajas. La principal es lo complicado que resulta solucionar una
transmisión fallida en comparación a si estuviéramos usando una señal
digital. Sin llegar a uno de estos fallos trabajando con señales analógicas
también se corre el riesgo de ver cómo el contenido en cuestión se degrada
a medida que realizamos copias.
Esto no ocurre en una señal digital, donde no importa el número de
veces que la repliquemos, dado que nunca hay bajada de calidad. Las
señales analógicas están más limitadas que las digitales debido al poco
soporte que proporcionan en términos de volumen de datos que permiten
transmitir. Aun así, hay algunos contextos en los que sí siguen siendo útiles,
como es el caso de los micrófonos.
Señal digital
En el otro lado de la balanza tenemos las señales digitales, que se
usan de una forma más frecuente debido a su flexibilidad y polivalencia. La
10
información no se transmite de la misma forma, sino que en este caso se
utiliza un sistema de códigos binarios (los números 0 y 1) con los que se
lleva a cabo la transmisión bajo una pareja de amplitudes que proporciona
grandes posibilidades.
El proceso del que hablábamos con las ondas senoidales en las
señales analógicas cambia de forma completa para dar paso a ondas
cuadradas, lo que permite hacer uso de la modulación digital y de un tipo
de señal que no es continua. Hay aspectos que se deben tener en cuenta
tal y como ya hemos mencionado antes, como que las señales digitales
proporcionan una mayor capacidad para transmitir información de una
manera fiel. Estas señales no producen deterioro en la información ni en la
calidad de los datos, lo que ayuda a que el resultado sea más adecuado.
Debido a esto las señales digitales son las que se utilizan en todo
tipo de dispositivos digitales usados en la actualidad en todo el mundo,
como reproductores de los más variados formatos, desde reproductores de
Cds de música hasta reproductores de películas en formato DVD. Las
muchas opciones que proporcionan las señales digitales, la facilidad que
hay para transmitir información con ella y la manera en la cual se pueden
usar sin pérdida de información, han hecho que se impongan en el
mercado.
Y aunque, como mencionábamos en el apartado anterior, las
señales analógicas aún se usan en algunos contextos, es más frecuente
que se opte por las digitales incluso teniendo en cuenta que sus costes son
más altos. Al fin y al cabo, el sector tecnológico ha visto que, en este
sentido, en la transmisión de información, era más importante contar con
una señal eficiente que con una económica. Y esto es algo que también
vemos aplicado al sector de los dispositivos móviles cada vez que los
utilizamos.
11
1.2 Smartphone
Es un teléfono inteligente que puede comunicarse a través de Wi-Fi,
bluetooth, conexión a internet, envío de mensajería, y con e-mails.
Generalmente se define como dispositivo electrónico de mano que integra
la funcionalidad de un teléfono celular, PDA o similar. Opera añadiendo
funciones de teléfono a un PDA existente o añadiendo funcionalidades
"inteligentes", como las funciones del PDA, en un teléfono celular Una
característica clave de un Smartphone es que las aplicaciones adicionales
pueden ser instaladas en el dispositivo. Estas aplicaciones pueden ser
desarrolladas por el fabricante del dispositivo, por el operador o por
cualquier empresa desarrolladora de software.
1.3 Definición de Telefonía celular. Funcionamiento y generaciones:
1G, 2G, 3G, 4G y 5G
 1G
En 1981, Ericsson lanza el sistema NMT 450 (Nordic Mobile Telephony
450 MHz). Utilizaba canales de radio analógicos (frecuencias en torno a
450 MHz) con modulación en frecuencia (FM). Fué el primer sistema del
mundo de telefonía móvil tal como se entiende hasta hoy en día. En 1986,
Ericsson modernizó el sistema, llevándolo hasta el nivel NMT 900. Esta
nueva versión funcionaba prácticamente igual que la anterior pero a
frecuencias superiores (del orden de 900 MHz). Esto posibilitó dar servicio
a un mayor número de usuarios y avanzar en la portabilidad de los
terminales.
 2G
En la década de 1990 nace la segunda generación, que utiliza sistemas
como GSM, IS-136, iDEN e IS-95. Las frecuencias utilizadas en Europa
12
fueron de 900 y 1800 MHz. Su desarrollo tiene como piedra angular la
digitalización de las comunicaciones. Las comunicaciones digitales ofrecen
una mejor calidad de voz que las analógicas, además se aumenta el nivel
de seguridad y se simplifica la fabricación del Terminal, reduciendo los
costos significativamente. Nacen varios estándares de comunicaciones
móviles: D-AMPS (EE. UU.), Personal Digital Cellular (Japón), cdmaOne
(EE. UU. y Asia) y GSM.
 3G
Surge por la necesidad de aumentar la capacidad de transmisión de
datos para poder ofrecer servicios como la conexión a Internet desde el
móvil, la videoconferencia, la televisión y la descarga de archivos. En este
momento el desarrollo tecnológico ya posibilita un sistema totalmente
nuevo: UMTS (Universal Mobile Telecommunications System). UMTS
utiliza la tecnología CDMA, lo cual le hace alcanzar velocidades realmente
elevadas (de 144 kbit/s hasta 7.2 Mbit/s, según las condiciones del terreno).
 4G
Es la evolución tecnológica que ofrece al usuario de telefonía móvil un
mayor ancho de banda que permite, entre muchas otras cosas, la recepción
de televisión en Alta Definición (HD). Hoy en día existe un sistema de este
nivel operando con efectividad solo con algunas compañías de EEUU,
llamado LTE.
 5G
5G (redes móviles quinta generación o sistemas inalámbricos de 5 ª
generación) denota la siguiente fase importante de normas de
telecomunicaciones móviles más allá de los actuales 4G / IMT-Avanzadas
normas. En telecomunicaciones, 5G son las siglas utilizadas para referirse
13
a la quinta generación de tecnologías de telefonía móvil. Es la sucesora de
la tecnología 4G. Actualmente se encuentra sin estandarizar y las
empresas de telecomunicación están desarrollando sus prototipos. Está
previsto que su uso común sea en 2020. En noviembre de 2014, la
compañía china Huawei anuncia la firma de un acuerdo con la operadora
móvil rusa Megafon para estandarizar y desarrollar redes 5G de prueba, en
vistas a la Copa Mundial de Fútbol de 2018.
1.4 Bandas: Dual, Tribanda, Cuatribanda
En telecomunicaciones, los términos multibanda, doble banda,
tribanda, cuatribanda y pentabanda hacen referencia a un dispositivo
(sobre todo un teléfono móvil) que soporta múltiples radio-bandas de
frecuencia utilizadas en comunicaciones. En el caso de móviles, su
propósito es el de apoyar la itinerancia entre los diferentes países / regiones
cuya infraestructura no pueda soportar los servicios móviles en el mismo
rango de frecuencias.
Tipos de Bandas según Generaciones
En Venezuela el acceso a la telefonía y sus funcionamientos básicos
como banda y capacidad de generaciones es limitado a:
14
Bandas 2G (GSM):
 Digitel: 900Mhz
 Movistar: 850Mhz
 Movilnet: 850Mhz
Bandas 3G (También conocida como WCDMA):
 Digitel: 900Mhz
 Movistar: 1900Mhz
 Movilnet: 1900Mhz
Bandas 4G (También conocida como LTE):
 Digitel 4G: Banda 3 LTE 1800MHz.
 Movistar 4G+: Banda 4 LTE 1700/2100MHz (Esto es, banda
1700MHz para subida y 2100MHz para bajada)
 Movilnet 4G: Banda 4 LTE 1700/2100MHz (Esto es, banda 1700MHz
para subida y 2100MHz para bajada)
1.5 Tarjetas Dual Sim
Los móviles Dual SIM o doble SIM son teléfonos que pueden utilizar
dos tarjetas SIM, o sea que permiten el uso de dos líneas telefónicas
distintas en un mismo terminal. Dos números diferentes, con configuración
diferente, planes de precios independientes... Dicho de otro modo, son dos
móviles en uno. Estas dos líneas no tienen por qué ser de la misma
operadora si el móvil es libre.
Esto puede ser útil para personas que tengan, por ejemplo, un
número de trabajo y otro personal: podrán utilizar los dos sin necesidad de
15
llevar dos teléfonos a todas partes. También es útil para poder combinar
tarifas para ahorrar: por ejemplo, teniendo un bono de datos de una
compañía en una tarjeta y otro de llamadas, de otra compañía, en la otra.
Hay gente que utiliza el Dual SIM para aprovechar llamadas gratuitas entre
números de una misma compañía (para llamar a su pareja, por ejemplo) en
una tarjeta y otras tarifas en la otra. O bien para extranjeros o personas que
llaman fuera, para combinar una tarifa pensada para llamadas
internacionales con otra normal.
Dual Sim
1.6 Tecnologías
Para la mejor explicación en cuanto a las diversas tecnologías, se
evidencio en un cuadro a continuación cuáles son sus principales
características:
Principales Tecnologías
GPRS General Packet Radio Service
 Tasa máxima encontrada en la práctica: 26 a 40
kbit/s.
 Disputa los mismos slots de tiempo ya existentes
que el tráfico de voz, lo que es un limitante para que
los operadores ofrezcan tasas mayores.
16
EDGE Enhanced Data rates for Global Evolution
 Puede aumentar en 3 veces la tasa de transmisión
por la utilización de un nuevo esquema de
modulación.
 Tasa máxima encontrada en la práctica de 384Kbps
y un promedio de 110 a 120 kbps en una red
cargada.
WCDMA
HSDPA
Wideband CDMA
 También conocido como CDMA DS (Direct
Sequence)
 Es una de las tecnologías de acceso (ULTRA FDD)
del UMTS (Universal Mobile Telecommunications
System)
 High Speed Downlink Packet Access (HSDPA) es
un servicio de paquetes de datos, basado en el
WCDMA, que optimiza la transmisión de datos en la
dirección del teléfono celular (enlace de bajada).
Está en desarrollo el High-Speed Uplink Packet
Access (HSUPA), que hará lo mismo para el enlace
de subida.
 Consulte Tecnologías 3G
HSPA High Speed Packet Access
 Primera evolución del WCDMA/HSDPA que
aumenta la velocidad del HSDPA en el uplink.
 Es la combinación del HSDPA y HSUPA (High
Speed Upnlink Packet Access, un servicio de
paquetes de datos, basado en el WCDMA, que
optimiza la transmisión de datos en la dirección de
la Estación Radio Base (enlace de subida). Esta
mejora incluye mayor rendimiento, menor latencia y
mayor eficiencia espectral)
 Las redes HSPA fueron implantadas en los rangos
de frecuencia de 850/900/1900/2100 MHz.
 Muchos operadores lanzaron HSPA inicialmente
con las tasas máximas (download) de 3,6 Mbps,
actualizandola posteriormente para los 7,2 Mbps ó
14,4 Mbps.
HSPA+ High Speed Packet Access Plus
 Evoulución del HSPA que puede ofrecer tasas de
datos de downlink de hasta 84 Mbps y Uplink de
hasta 23 Mbps. (Rel 9)
 También conoecida como HSPA Evolution y HSPA
Evolved.
17
 HSPA + aumenta significativamente la capacidad
del HSPA. Él dobla la capacidad de datos y aumenta
en hasta tres veces la capacidad de voz a través del
Voip, ayudando a atender la creciente demanda por
servicios de datos.
 Se tornó la principal tecnología de banda ancha
móvil en el mundo con un 43,8% de las redes 3G ya
actualizadas en el 1T12.
 Estimaciones hechas por Teleco indican que más
del 80% de las redes 3G serán HSPA+ en menos de
3 años.
 Para muchos operadores el HSPA+ ofrecerá el salto
para el LTE
LTE Long Term Evolution
 Evolución del HSPA+, es la próxima etapa en las
comunicaciones móviles por radio.
 Utilizan en su mayoría un par de canales separados
para transmisión y recepción (FDD), aunque hayan
también redes en que la transmisión y recepción
comparten el mismo canal (TDD).
 Aumenta la Capacidad de Datos en Densas Áreas
Urbanas.
 Ofrece además una reducción de la latencia y debe
ser utilizado inicialmente para datos y desahogar el
tráfico de las redes actuales. La voz en el LTE es
VoIP.
 El LTE está evolucionando paralelamente al HSPA+
para la mejoría en el desempeño de las redes.
18
CAPÍTULO 2.- DIAGRAMA DE BLOQUES DE LA ESTRUCTURA DE
HARDWARE DE UN SMARTPHONE REAL, SUSCEPTIBLE DE
SOPORTAR LA IMPLANTACIÓN DEL SISTEMA OPERATIVO ANDROID
2.1 Diagrama de Bloques de la estructura del Hardware
Diagrama de Bloques
2.2 Descripción del bloque procesador
La evolución del hardware de los smartphones viene dada por la
miniaturización de los componentes electrónicos que lo forman y un menor
proceso de producción/fabricación con menor consumo y mayores
velocidades. Las velocidades de micro procesamiento guardan una
relación directa con el número de transistores incluidos sobre el chip, y
cuanto más pequeño sea el transistor (proceso de producción menor),
mayor cantidad de ellos podrá ser empaquetada dentro de un mismo chip.
19
El microprocesador es la parte más importante de cualquier equipo
electrónico, y desde hace unos años la tendencia es duplicar, triplicar e
incluso cuadriplicar el núcleo de dicho microprocesador. Los sistemas
operativos y el software que corre en ellos deberían de estar adaptados a
esta tecnología para poder aprovecharla al máximo.
2.2.1 Arquitectura ARM
Es una arquitectura RISC (Reduced Instruction Set Computer =
Computadora con Conjunto de Instrucciones Reducidas) de 32 bits
desarrollada por ARM Holdings plc. En 1983 comenzó a plasmarse la idea
para desarrollar la arquitectura ARM, todo empezó como un proyecto de
desarrollo en la empresa Acorn Computers.
La razón principal, para el desarrollo de este nuevo procesador
RISC, era que Acorn tenía una larga línea de ordenadores personales
basados en el MOS 6502, por lo que tenía sentido desarrollar uno de su
propia cosecha con el que los desarrolladores se sintieran cómodos al
trabajar con él. En el año 1985 el equipo terminó el diseño preliminar y
concluyó los primeros prototipos del nuevo procesador ARM, le llamaron
ARM1, tendría que pasar otro año para que la primera versión comercial se
bautizase como ARM2, esto ocurrió en el año 1986.
El ARM2 es, con mucha probabilidad, el procesador de 32 bits útil
más simple del mundo, ya que posee sólo 30.000 transistores. Si lo
comparamos con un Intel 80386 (microprocesador de 32 bits lanzado en el
año 1985) que posee 275.000 transistores, se observa que la diferencia
con respecto al ARM2 es muy notable, ya que el chip de Intel tiene más de
9 veces la cantidad de transistores que el de Acorn. Gracias a esto, posee
un consumo en energía bastante bajo, a la vez que ofrece un mejor
20
rendimiento que un Intel 286. Su sucesor, el ARM3, incluye una pequeña
memoria caché de 4 KB, lo que mejora los accesos a memoria repetitivos.
La mayor utilización de la tecnología ARM se alcanzó con la familia de
procesadores ARM7TDMI, con millones de unidades en teléfonos móviles
y sistemas de videojuegos portátiles. Y es que, la relativa simplicidad de los
procesadores ARM los hace ideales para aparatos que precisen consumir
poca o muy poca energía.
El diseño del ARM se ha convertido en uno de los más usados del
mundo, desde discos duros hasta juguetes. Hoy en día, cerca del 75% de
los procesadores de 32 bits montados en cualquier tipo de dispositivo
poseen este chip en su núcleo. El 98% de los microprocesadores utilizados
en smartphones hace uso de la arquitectura de ARM.
2.2.2 Procesadores Qualcomm Snapdragon y SoCs
Qualcomm es un poco diferente a los otros fabricantes SoC, ya que
no utilizan las referencias de los diseños de ARM en la producción del
procesador central. El sistema SoC Snapdragon S1 y S2 son de un solo
núcleo único, que van hasta los 1,5 GHz, a través de sus procesadores
Scorpion. S1 fue el tipo de procesador inicial que se lanzó, se introdujo en
el primer lote de teléfonos Windows, utilizando el procesador de 1 GHz
QSD8x50, y en algunos dispositivos Android como el HTC Desire, HTC
Droid Incredible, HTC Nexus One y HTC EVO 4G.
También hay un rápido procesador de la serie S2 SoC que es el
MSM8x55T que se sincroniza con relojes que van de entre 1,4 y 1,5 GHz.
Esto se ve en muchos smartphones de segunda generación que llevan
instalado Windows Phone, como la serie Nokia Lumia, Titan HTC y
Samsung Focus S. Con la serie Snapdragons S3 se vio un gran salto que
fue desde un solo núcleo a doble núcleo, así como una mejora de la GPU.
21
Estos dispositivos se fabrican utilizando el proceso de 45 nm y los
núcleos Scorpion utilizan todavía Cortex-A8, a diferencia de otros SoC de
doble núcleo que utilizan un núcleo más nuevo, el Cortex-A9. Las
velocidades van de 1.2 a 1.5 Ghz, MSM8x60 S3 se encuentra en productos
como el HTC Sensation, HTC EVO 3D, HTC Rezound y algunos modelos
de Samsung Galaxy S II.
Imagen: línea Snapdragon S4
Fuente: https://histinf.blogs.upv.es/
2.2.3 SoC Exynos de Samsung
La gama de SoCs Samsung Exynos es bastante pequeña. Por lo
general sólo se encuentran chipsets Exynos de Samsung dentro de
smartphones y tabletas propios de Samsung y de alta gama, con una
excepción, la gama de productos china Meizu(una compañía que, por
ahora, se limita a lanzar terminales en territorio asiático).
El primero de SoC de Samsung, Exynos, fue originalmente conocido
como el Samsung Hummingbird y lo montaba el original Samsung Galaxy
S, es ahora conocido como el Samsung Exynos 3310. El Exynos 3310 se
fabricó con un proceso de 45 nm y contiene un procesador ARM Cortex-
A8, con un solo núcleo de procesamiento de 1,0 GHz junto con un
acelerador de gráficos PowerVR SGX540 que era muy potente para la
época.
22
No sólo el Exynos de doble núcleo 4210 mejora, en gran medida, la
velocidad del Exynos 3310, también incluye otras características en el SoC;
como capacidades de GPS integradas en el 4210, que externamente los
incorporan los TI OMAP y el Exynos 3310, y una mejorada interfaz módem
que hace que sea más fácil incorporar diferentes tipos de tecnología
inalámbrica en el sistema.
El futuro para el chipset Exynos es impresionante, ya que, Samsung
ya está en disposición de ofrecer el Exynos 5250, que es un 2,0 GHz de
doble núcleo con procesador ARM Cortex-A15, con mejores gráficos Mali,
soporte 3D estereoscópico, 2560×1600 (WQXGA), soporte de pantallas y
gran mejora de las capacidades de cámara.
Imagen: chip Exynos 5250
Fuente: https://histinf.blogs.upv.es/
2.3 Descripción del bloque memoria y jerarquía
2.3.1 Memoria RAM
23
La memoria RAM es uno de los componentes críticos del móvil, junto
con los núcleos de procesamiento de la CPU y GPU. Sin RAM, cualquier
tipo de sistema de computación sería incapaz de realizar tareas básicas y
acceder a los archivos de su memoria secundaria sería ridículamente lento.
Este tipo de memoria es un intermediario entre el sistema de archivos,
ubicados en la ROM, y los núcleos de procesamiento, que procesa
cualquier tipo de información lo más rápidamente posible.
Los archivos críticos que necesita el procesador se almacenan en la
memoria RAM, que siempre ha de estar lista en espera de ser leída o
escrita. Estos archivos críticos para el dispositivo pueden ser: los
componentes del sistema operativo, datos de aplicaciones y gráficos de un
juego, o en general cualquier cosa a la que se deba acceder a velocidades
mayores que las de acceso a memorias de almacenamiento secundario.
El tipo de memoria RAM que se utiliza en móviles smartphone es,
técnicamente, DRAM (RAM Dinámica).La estructura de la DRAM es tal que
cada condensador de la placa de RAM almacena un bit, y estos
condensadores requieren de un constante “refresco” o actualización de los
datos que están almacenados. La ventaja que la DRAM tiene frente a la
RAM estática (SRAM) es que el almacenamiento se puede cambiar para
hacer frente a cualquier tarea que el sistema esté tratando de realizar.
La RAM es diferente a la memoria de almacenamiento de memoria
flash tipo ROM. La ROM persiste en el dispositivo, aunque la energía se
desconecte, cosa que la RAM pierde su contenido. Esta RAM también se
conoce como memoria volátil, y parcialmente, esta forma de trabajar, ayuda
a que los tiempos de acceso sean tan rápidos.
Si se está preguntando donde se puede encontrar la RAM en los
smartphones, en la mayoría de los casos se encontrará directamente en la
parte superior del SoC, en el lugar que se conoce como paquete-en-
24
paquete (PoP package-on-package). Esto permite el acceso directo del
SoC a la RAM y la escasa distancia entre ambos significa menor calor y
menor consumo de energía. Si no hay suficiente espacio en la parte
superior del SoC, a menudo se puede encontrar la RAM en lugares
próximos a este.
2.3.2 El almacenamiento interno, la ROM
Al igual que la RAM, el almacenamiento interno es fundamental para
el funcionamiento básico de un smartphone, sin ningún lugar para
almacenar el sistema operativo y los archivos críticos de las aplicaciones
no se podrían hacer nada. Incluso si un teléfono no tiene memoria accesible
para el usuario, habrá alguna forma de almacenamiento permanente
interno que guarde, al menos, el sistema operativo.
Estos chips pueden entonces estar divididos en varias áreas para
diferentes propósitos, tales como archivos de aplicaciones de
almacenamiento, memoria caché y el sistema. Normalmente, el chip que
almacena los archivos de sistema se denomina ROM (memoria de sólo
lectura), es un nombre algo inapropiado porque la memoria aquí, en
realidad, puede ser modificada a través de las actualizaciones del sistema,
pero no por el usuario final, en un principio.
Algunos dispositivos, como el Samsung Galaxy S, tienen una
configuración multi-ROM. Un chip de memoria más pequeño de cerca de
512 MB, pero muy rápido que almacena los archivos principales del
sistema, caché y datos de aplicaciones en particiones independientes. El
segundo chip es más grande, y es generalmente una partición, 1-2 GB, de
almacenamiento del usuario que es más lento, pero permite el
almacenamiento de aplicaciones diferentes al SO.
25
A veces las empresas engañan a sus usuarios finales y no les
informan de forma veraz sobre la memoria interna accesible al usuario, y
ponen una ranura para una tarjeta microSD que no es accesible por el
usuario si no retira la batería del terminal. Esto pasaba de forma frecuente
en la primera generación de móviles con Windows Phone, como el HTC
Trophy y HTC HD7.
2.3.3 Almacenamiento extraíble
Hoy en día casi todos los móviles, que tiene un usuario medio, usan
almacenamiento extraíble con tarjetas microSD, por medio de ranuras para
tarjetas SD. De los tres principales sistemas operativos de smartphones
(iOS, Android y WP7), Android es el único que realmente soporta de forma
nativa el almacenamiento extraíble. Con los dispositivos iOS como el
iPhone, Apple no incluye ningún método para expandir el almacenamiento,
en su lugar se le da al usuario un almacenamiento interno de generosas
dimensiones que pueden utilizar para aplicaciones, videos, música y
demás.
En el SO Android hay dos implementaciones de almacenamiento
extraíble accesibles por el usuario: el almacenamiento accesible solo por el
usuario en memoria externa o complementada con la memoria interna. Si
se complementa lo que ya está disponible internamente, hay una partición
independiente del sistema para la tarjeta externa como /sd-ext o /mmc, a
las que algunas aplicaciones, tales como reproductores de música y vídeo,
pueden tener acceso a ella.
La especificación original de SD permite tarjetas de hasta 2 GB de
tamaño, y luego SDHC (SD de alta capacidad) aumentó el límite de tamaño
a 32 GB. Recientemente SDXC (SD eXtended Capacity) aumenta el límite
hasta los 2 TB, pero las tarjetas SDXC no son compatibles con la mayoría
26
de los nuevos smartphones, es decir, la expansión máxima de
almacenamiento se ha fijado, por el momento, en 32 GB.
Además del tamaño, la otra cosa importante a considerar al comprar
una tarjeta microSD para un móvil es la velocidad, que aparece con el
nombre de “clase” en el envase. Afortunadamente, el número de clases es
muy fácil de entender, ya que se corresponde directamente con la velocidad
mínima de escritura de la tarjeta en MB/s. Una tarjeta que está clasificado
como Clase 4 será capaz de escribir a un mínimo de 4 MB/s, y la clase 10
a 10 MB/s.
2.4 Descripción del bloque periféricos
2.4.1 Bluetooth
Es una especificación industrial para redes inalámbricas de área
personal (WPAN) que posibilita la transmisión de voz y datos entre
diferentes dispositivos mediante un enlace por radiofrecuencia en la banda
ISM (Bandas ISM (Industrial, Scientific and Medical) son bandas
reservadas internacionalmente para uso no comercial) en los 2,4 GHz. Los
principales objetivos que se pretenden conseguir con esta norma son:
 Facilitar las comunicaciones entre equipos móviles y fijos.
 Eliminar los cables y conectores entre éstos.
 Ofrecer la posibilidad de crear pequeñas redes inalámbricas y
facilitar la sincronización de datos entre equipos personales.
La utilidad Bluetooth fue desarrollada como un reemplazo del cable en
1994 por Jaap Haartsen y Mattisson Sven, que estaban trabajando para
Ericsson en Lund, Suecia. La utilidad se basa en la tecnología de saltos de
frecuencia de amplio espectro. Todas las versiones de los estándares de
27
Bluetooth están diseñadas para la compatibilidad hacia abajo, que permite
que el último estándar cubra todas las versiones anteriores.
2.4.2 GPS en los smartphones
El SPG o GPS (Global Positioning System: sistema de
posicionamiento global) o NAVSTAR-GPS es un sistema global de
navegación por satélite (GNSS) que permite determinar en todo el mundo
la posición de un objeto, una persona o un vehículo con una precisión hasta
de centímetros (si se utiliza GPS diferencial), aunque lo habitual son unos
pocos metros de precisión. El GPS funciona mediante una red de 24
satélites en órbita sobre el planeta tierra, a 20.200 km, con trayectorias
sincronizadas para cubrir toda la superficie de la Tierra.
Cuando se desea determinar la posición, el receptor que se utiliza
para ello localiza automáticamente como mínimo tres satélites de la red, de
los que recibe unas señales indicando la identificación y la hora del reloj de
cada uno de ellos. Con base en estas señales, el aparato sincroniza el reloj
del GPS y calcula el tiempo que tardan en llegar las señales al equipo, y de
tal modo mide la distancia al satélite mediante “triangulación” (método de
trilateración inversa), la cual se basa en determinar la distancia de cada
satélite respecto al punto de medición. Conocidas las distancias, se
determina fácilmente la propia posición relativa respecto a los tres satélites.
Conociendo además las coordenadas o posición de cada uno de ellos por
la señal que emiten, se obtiene la posición absoluta o coordenada reales
del punto de medición. También se consigue una exactitud extrema en el
reloj del GPS, similar a la de los relojes atómicos que llevan a bordo cada
uno de los satélites.
Actualmente dentro del mercado de la telefonía móvil la tendencia
es la de integrar, por parte de los fabricantes, la tecnología GPS dentro de
28
sus dispositivos. El uso y masificación del GPS está particularmente
extendido en los teléfonos móviles smartphone, lo que ha hecho surgir todo
un ecosistema de software para este tipo de dispositivos, así como nuevos
modelos de negocios que van desde el uso del terminal móvil para la
navegación tradicional punto-a-punto, la prestación de los llamados
Servicios Basados en la Localización (LBS), hasta aplicaciones que
haciendo uso de la realidad aumentada y diversos mapas son capaces de
localizar por la calle lo que tengan programado.
2.4.3 Sensor de luz en los móviles
Un sensor fotoeléctrico es un dispositivo electrónico que responde al
cambio en la intensidad de la luz. Estos sensores requieren de un
componente emisor que genera la luz, y un componente receptor que “ve”
la luz generada por el emisor. Todos los diferentes modos de censado se
basan en este principio de funcionamiento.
Están diseñados especialmente para la detección, clasificación y
posicionado de objetos; la detección de formas, colores y diferencias de
superficie, incluso bajo condiciones ambientales extremas. Los sensores
de luz se usan para detectar el nivel de luz y producir una señal de salida
representativa respecto a la cantidad de luz detectada. Un sensor de luz
incluye un transductor fotoeléctrico para convertir la luz a una señal
eléctrica y puede incluir electrónica para condicionamiento de la señal,
compensación y formateo de la señal de salida.
2.4.4 Sensor de proximidad
Existen varios tipos de sensores de proximidad según el principio
físico que utilizan. Los más comunes son los interruptores de posición, los
detectores capacitivos, los inductivos y los fotoeléctricos, como el de
infrarrojos. En muchos móviles actuales un sensor de proximidad desactiva
29
la capacidad táctil de la pantalla cuando el dispositivo se usa cerca de la
cara durante una llamada de voz. Se hace para ahorrar batería y para
prevenir ejecuciones incorrectas con la cara u orejas.
2.4.5 Wifi en smartphones
El Wi-Fi es un mecanismo de conexión de dispositivos electrónicos
de forma inalámbrica. Los dispositivos habilitados con Wi-Fi, tales como:
un ordenador personal, una consola de videojuegos, un smartphone o un
reproductor de audio digital, pueden conectarse a Internet a través de un
punto de acceso de red inalámbrica. Dicho punto de acceso (o hotspot)
tiene un alcance de unos 20 metros (65 pies) en interiores y al aire libre una
distancia mayor. Pueden cubrir grandes áreas la superposición de múltiples
puntos de acceso.
Wi-Fi es una marca de la Wi-Fi Alliance (anteriormente la WECA:
Wireless Ethernet Compatibility Alliance), la organización comercial que
adopta, prueba y certifica que los equipos cumplen los estándares 802.11
relacionados a redes inalámbricas de área local. Existen diversos tipos de
Wi-Fi, basado cada uno de ellos en un estándar IEEE 802.11 aprobado.
Son los siguientes:
Los estándares IEEE 802.11b, IEEE 802.11g e IEEE 802.11n
disfrutan de una aceptación internacional debido a que la banda de 2.4 GHz
está disponible casi universalmente, con una velocidad de hasta 11 Mbit/s,
54 Mbit/s y 300 Mbit/s, respectivamente.
Los routers inalámbricos funcionan en ciertas frecuencias o bandas,
de modo similar a un canal de radio que está en una frecuencia concreta
del dial. Las comunicaciones en redes Wi-Fi suelen utilizar dos de ellas, la
de 2.4 GHz y la de 5 Ghz. Un router que trabaja a 2.4 GHz tiene más
alcance. Pero es más sensible a interferencias que el que lo hace a 5 GHz.
30
2.4.6 Cámaras en móviles
Actualmente todos los smartphones que se venden y casi todos los
móviles cuentan con una cámara que puede ir, normalmente, desde los 2
ó 3 megapíxeles hasta los 8 megapíxeles (del iPhone 5 o el Samsung
Galaxy Note II). En modelos low-cost se apuesta con cámaras de 3 a 5
megapíxeles. La mayoría admiten un zoom digital, que puede ir desde los
3 a 5 o más aumentos.
La cámara puede contar además con autofocus (autofoco es un
automatismo de una cámara fotográfica o cualquier otro aparato óptico que
permite el enfoque de un motivo sin intervención del usuario.), flash Xenon
se suele usar para las fotografías y flash LED para vídeo. El flash Xenon
da más calidad en general pues es lo que se ha usado en las cámaras
convencionales desde hace mucho tiempo.
2.5 Evolución histórica de la estructura del hardware
En los prolegómenos de la telefonía móvil se apostó por la
miniaturización de los dispositivos móviles, pero eso cambió
“repentinamente” con el boom de ventas de los smartphones. Ahora el
mercado está enfocado a la maximización de la pantalla y, a la vez, a la
reducción del volumen del aparato, principalmente el espesor.
Entre 1996 y 2002 los teléfonos móviles cumplían con unas
funciones de comunicación muy básicas comparadas con las que tenemos
hoy en día (básicamente realizaban llamadas de voz y enviaban SMS).
Pero en los mercados europeos desde 2001 se comenzó a escribir un
cambio de concepción, en la idea de lo que era un teléfono móvil, el
lanzamiento del Nokia 7650 (el primero de la marca con cámara integrada)
supuso un cambio de rumbo en el mercado. Pero en aquellos tiempos la
gente no necesitaba una pantalla muy grande, solo lo suficiente para
31
escribir SMS, leer registros de llamadas y manejar contactos entre otras
“sencillas tareas”.
Al final los pocos smartphones que por aquella época se
comercializaban ganaron la batalla de ideas. Ofrecer más funcionalidades
y servicios al dispositivo triunfo sobre la idea de pequeño y simple. Fue a
partir de la proliferación de las cámaras fotográficas cuando los teléfonos
móviles se vieron obligados a “crecer” y dejar espacio para la tecnología de
cámara digital, con la mejora de estas se empezó a apostar por ópticas y
resoluciones cada vez mejores integradas en los móviles, y junto a ello la
implementación de pantallas de teléfono más amplias, con el fin de mejorar
la visualización a la hora de realizar y revisar después las fotografías en la
pantalla del teléfono.
Servicios como internet en movilidad, el GPS, las cámaras digitales
y las tiendas de aplicaciones han sido las principales responsables de la
tendencia a la maximización de los teléfonos móviles, dejando atrás la idea
de compresión del volumen. Se piensa que se ha llegado al tope de
envergadura práctica de los smartphones con las 6″, más allá de esas
dimensiones de pantalla se hace menos viable el transporte en el bolsillo
de un pantalón, camisa, o bolsillo interior de una americana, así como el
abarcamiento de toda la pantalla con una sola mano.
La tecnología avanza a pasos agigantados, y lo que hace nada
considerábamos gama alta o media-alta ha pasado a ser gama media o
medio-baja, convirtiéndose en dispositivos accesibles a una gran cantidad
de personas, con unos precios competitivos y que las operadoras llegan a
regalar. Y es que no todo el mundo tiene las mismas necesidades, hay
gente que quiere tener el último modelo disponible en el mercado, y los hay
que quieren un móvil para WhatsApp (mensajería instantánea a través de
internet) y poco más. Es importante que los fabricantes se centren y den
32
soporte a su gama alta, pero las gamas medias y baja se deben de ir
mejorando poco a poco también. Actualmente, la gama baja cuenta con
numerosos dispositivos que funcionan bien y cumplen su función, y la gama
alta ofrece un plus de potencia y experiencia de usuario mejorada, además
de ciertos servicios añadidos.
PARTE 2. ESTRUCTURA DEL SISTEMA OPERATIVO
Capítulo 3.- Sistema Operativo Android
3.1 Definición
Android es un sistema operativo y una plataforma software, basado
en Linux para teléfonos móviles. Además, también usan este sistema
operativo (aunque no es muy habitual), tablets, netbooks, reproductores de
música e incluso PC’s. Android permite programar en un entorno de trabajo
(framework) de Java, aplicaciones sobre una máquina virtual Dalvik (una
variación de la máquina de Java con compilación en tiempo de ejecución).
Además, lo que le diferencia de otros sistemas operativos, es que cualquier
persona que sepa programar puede crear nuevas aplicaciones, widgets1,
o incluso, modificar el propio sistema operativo, dado que Android es de
código libre, por lo que sabiendo programar en lenguaje Java, va a ser muy
fácil comenzar a programar en esta plataforma.
3.2 Ecosistema Android
Android ha llegado para quedarse. Pero también le ha llegado el
turno de poner homogeneidad a sus productos: de crear lo que podríamos
llamar el ecosistema Android total. Pero debe quedarnos claro que aquí el
trabajo no es sólo por parte de la gran G y quiénes son los activos que
deben provocar esto.
33
“Be together, not the same”
Ahí, todos entendimos que lo que Google quería reforzar era la idea
de que Android permite a cada usuario elegir un terminal acorde a sus
preferencias, encontrando un sinfín de posibilidades. Google ponía como
uno de sus puntos atractivos lo que precisamente era el quebradero de
cabeza más grande para los desarrolladores: la fragmentación.
Esta fragmentación, como decimos, para bien y para mal ha sido una
de las palabras más características que han acompañado a Android como
plataforma desde hace años. Desde fragmentación en hardware (diferentes
pantallas, tamaños…) hasta en software (con cada capa de personalización
que nos hemos ido encontrando de los fabricantes).
Pero 2014 no trajo sólo el slogan. También trajo una fragmentación
nueva: la fragmentación de sistemas operativos Android. Y esta
fragmentación es la que ha venido de la mano de todos los nuevos
productos que Google anunció: Android Wear, Android Auto, Android TV o,
incluso, Android One.
Imagen: Ecosistema Android
Fuente: https://static.platzi.com/
34
Con esto, Google había dejado puestas ya las cartas sobre la mesa,
pero eso no quiere decir que la partida aún esté jugada, pues la evolución
de Android se va a ver condicionada por cómo evolucionan sus diferentes
productos.
3.3 Objetivos de diseño
El diseño visual es para muchos diseñadores la etapa más divertida
del proceso. Aquí se da vida a los wireframes con un estilo que está
marcado tanto por el diseñador como por la personalidad de cada sistema
operativo. El diseño en Android está basado en una pulcritud brillante en la
composición de la interfaz. Cada gráfico, botón y texto está acompañado
por la idea de limpieza visual, pero, a la vez, deslumbra con pequeños
detalles.
Imagen: Diseño simple basado en Roboto
Fuente: http://appdesignbook.com/
Roboto, la tipografía propia de este sistema operativo, es en gran
parte su seña de identidad y se combina con un estilo de botones y colores
bien definido. Android se apoya en la simplicidad, controlada pero no
35
aburrida, que, en ocasiones, rompe o trasciende sus propios formalismos
para encantar al usuario. En el momento de comenzar a diseñar es
recomendable definir la interfaz con elementos nativos. De esta forma, se
consigue una buena base sobre la cual trabajar y no es necesario crear
todos los elementos desde cero.
El inconveniente de las interfaces nativas es que limitan la
personalidad del diseño y, en algunos casos, es necesario ir un paso más
allá. En situaciones como esta, todos o algunos elementos de la interfaz
pueden ser personalizados, lo cual se logra creándolos de nuevo como
imágenes. Por ejemplo, un elemento visual personalizado podría ser un
campo de entrada de texto de un formulario que se genera como imagen,
para aprovechar la posibilidad de incluir texturas, relieves o sombras
específicas, que un elemento nativo no ofrece.
Diseñar una interfaz personalizada tiene que planearse de antemano
porque representa una mayor complejidad y tiempo de desarrollo. De la
misma manera, no siempre los diseños de este tipo de interfaces se
trasladan a la aplicación funcional de forma fidedigna, pues su correcta
implementación queda en manos de la pericia del desarrollador. Crear un
lenguaje visual que sintetice los principios del buen diseño con las
innovaciones y posibilidades de la tecnología y la ciencia. Desarrollar un
sistema único y fundamental que permita unificar la experiencia en
cualquier plataforma o dispositivo. Los preceptos móviles son
fundamentales, pero el tacto, la voz, el ratón y el teclado son todos métodos
de entrada muy importantes.
36
3.4 Evolución Histórica del Sistema operativo
Imagen: Evolución del sistema operativo Android
3.4.1 Reseña histórica de Android
Allá por octubre del año 2003, Andy Rubin, Rich Miner, Nick Sears y
Chris White daban forma a Android Inc. En sus inicios, únicamente
trascendió que la actividad de la empresa se centraba en “el desarrollo de
software para teléfonos móviles”. Android Inc. pasó casi dos años
trabajando “en la sombra”, hasta que Google comenzó a “reclutar” a fuerza
37
de talonario a algunas “startup” (término que se refiere a nuevas compañías
con un futuro prometedor) del sector móvil, con la clara intención de replicar
su éxito de la Web en el futuro de las telecomunicaciones inalámbricas.
En mayo del mismo año Google se hacía con Dodgeball, la empresa
que desarrolló un sistema de red social y posicionamiento móvil que, una
vez integrada en la estructura empresarial de los chicos de Mountain View,
cesó su actividad en 2009 para dar paso a Google Latitude. Llegó el mes
de agosto y le tocó el turno a Android Inc., la fecha clave para llegar a
entender mejor el éxito de Android es el 5 de noviembre de 2007. Ese día
se fundaba la OHA (Open Handset Alliance), una alianza comercial de 35
componentes iniciales liderada por Google, que contaba con fabricantes de
terminales móviles, operadores de telecomunicaciones, fabricantes de
chips y desarrolladores de software. El mismo día se dio a conocer por vez
primera lo que hoy conocemos como Android, una plataforma de código
abierto para móviles que se presentaba con la garantía de estar basada en
el sistema operativo Linux.
Ha sido Google quien ha publicado la mayor parte del código fuente
del sistema operativo, gracias al software Apache, que es una fundación
que da soporte a proyectos software de código abierto. Aunque no fue
hasta un año después, en octubre de 2008 cuando lo vimos por primera
vez funcionando en un HTC Dream. Veía la luz en los USA un móvil con la
primera versión final de Android, la 1.0. El modelo G1 de HTC quedará para
la historia como el iniciador de este gigante llamado Android.
38
Imagen: HTC G1
El HTC G1 es un móvil deslizable hacia el costado con teclado
QWERTY y una gran pantalla sensible al tacto. Posee una cámara de 3
megapixels, ranura microSD, navegador de Internet y Email. Mucho tiempo
ha pasado desde el lanzamiento de Android y muchas han sido las
novedades que hemos visto. De la primera versión de Android destacó la
plena integración de los servicios de Google, el navegador Web compatible
con HTML y XHTML (que además ofrecía la función de zoom integrado y
permitía ver múltiples páginas en diferentes ventanas). La guinda del pastel
y el elemento que a la larga ha fraguado el éxito del sistema se presentaba
por primera vez: Android Market, el almacén de aplicaciones más popular.
A todo esto, surge una pregunta: ¿por qué ha desarrollado Google
un sistema operativo de estas características? La respuesta, es de lo más
lógica: para extender su influencia en el campo de la publicidad online a los
dispositivos móviles, hasta ahora en manos de Microsoft gracias a Windows
Mobile, el sistema operativo más utilizado en los terminales de última
generación junto con Symbian OS. Esta situación podría permitir a dichas
compañías controlar la manera en que la gente accede a la Red e integrar
sus propias plataformas publicitarias en los móviles del futuro, algo que no
satisface en absoluto a Google ya que podría ver en peligro su supremacía
en un terreno, que no lo olvidemos, supone el 99% de sus ingresos totales
año tras año.
39
Crecimiento en el mercado
FECHAS DETALLE
jul-05
Google adquiere Android, Inc. Pequeña empresa que
desarrolla software para móviles (hasta entonces una gran
desconocida)
nov-07
Nace la Open Handset Alliance consorcio de empresas unidas
con el objetivo de desarrollar estándares abiertos para
móviles Texas Instruments, Broadcom co., Google, HTC, Intel,
LG, MarvelTech., Motorola, Nvidia, Qualcomm,
SamsumgElectonics, Sprint Nextel, T-Mobile. Se anuncia su
primer producto, Android, plataforma para móviles construida
sobre el kernel de Linux 2.6
oct-08
Publicado el proyecto open sourceAndroid distribuido
principalmente con licencia Apache 2.0. Partes en otras
licencias, p.e. GPL v2 para el núcleo. Se abre el
AndroidMarket HTC Dream (G1), primer teléfono con Android
dic-08
Nuevas incorporaciones, ARM Holdings, Athreos
Communications, Asustek Computer Inc., Garmin Ltd,
Softbank, Sony Ericsson, Toshiba Corp y Vodafone Group
Plc.
nov-09
Motorola Droid consigue vender 1.05 millones de unidades en
74 días, superando el record establecido por el iPhone de
Apple.
dic-09
16.000 aplicaciones en la tienda Android (Market) 60%
gratuitas, 30% de pago.
feb-10
Google anuncia la buena marcha de Android, 60.000
teléfonos con Android vendidos al día.
abr-11
El sistema operativo de Google arrasa con un 36% de las
ventas de teléfonos en el primer cuarto del 2011. La agencia
Gartner indicó que 36 millones de terminales Andriod se
vendieron en el primer trimestre de este año. Cifras que
auguran el dominio que está llevando a cabo el Androide
verde en el mundo de los Smartphone.
ene-12
Google comenta que se han activado 250 millones de
dispositivos. Esta cifra sorprende, dado que aumenta respecto
a los datos del tercer trimestre del pasado año 2011; son
555,000 activaciones diarias, también ha anunciado que el
AndroidMarket ha disfrutado de 11 mil millones de descargas,
lo que viene a ser mil millones más que cuando Google
anunció su llegada a los 10 mil millones hace alrededor de un
mes.
40
Android es ya una de las plataformas operativas más eficientes, y
los usuarios y las activaciones están dejando muy claro que Google ha
alcanzado un alto grado de madurez con su plataforma.
3.4.1.1 Creadores de Android
Nos tenemos que remontar a 1986, cuando Andy recibió su
licenciatura en Ciencias de la Computación en la Universidad de Utica,
Nueva York.
Imagen: Andy Rubin
Fuente: https://amp.businessinsider.com/
Su primer trabajo importante como ingeniero es en Apple, desde
donde pasó a una empresa que surgió de Apple llamada General Magic, y
aquí empezó con lo importante, ya que participó en el desarrollo de Magic
Cup, lo que pretendía ser un sistema operativo para teléfonos o PDAs. Sin
embargo, General Magic fracasó y se fue a la ruina, momento en el cual
Andy se unió a Artemis Research, que acabó comprada por Microsoft. Ya
hemos tenido a Andy Rubin trabajando para Apple y Microsoft, curioso.
El caso es que tras unos años trabajando aquí se ve que empezó a
querer hacer algo por su cuenta, y fundó Danger Inc., que finalmente sería
también comprada por Microsoft. En Danger Inc. desarrollan el Hiptop, lo
que es ya un teléfono que marcaría las primeras líneas de lo que serían los
Smartphones, a la vez, Andy Rubin se ve tan frustrado que decide
41
abandonar la compañía de la que era CEO. Todo ello le llevo a su paso
final en esta etapa, fundar en 2003 Android Inc.
Andy Rubin llevaba desde 1989 hasta 2003 trabajando como
ingeniero en telecomunicaciones y en el mundo de los teléfonos móviles,
de ahí salió Android Inc., su proyecto para crear algo nuevo y diferente. En
agosto de 2005, cuando Android Inc. contaba con 22 meses de vida,
Google adquirió la empresa, pero esta vez se ve que Andy estaba contento
con esta venta, no como ocurrió con Danger Inc. De hecho, Andy pasa a
formar parte del equipo de Google, y es donde acaba como vicepresidente
de ingeniería de Google supervisando el desarrollo de Android.
Android de esta manera ya tenía toda una base para empezar a
trabajar y formarse. Un proceso que había durado nada más y nada menos
que 16 años había construido una sólida base sobre la que todo iba a
empezar a funcionar. A partir de aquí comienza el típico secretismo al que
Google nos tiene acostumbrados, en el que todos rumoreaban acerca de
qué estaba haciendo Google con una compañía de desarrollo de sistemas
para teléfonos móviles.
Así, no fue hasta el 5 de noviembre de 2007 cuando se hizo el
anuncio oficial de Android. Pero durante estos dos años Google había
estado haciendo cosas, y una de ella fue llegar a acuerdos con fabricantes
de teléfonos móviles para desarrollar el primer dispositivo Android de la
historia. Todos sabemos que HTC siempre ha estado relacionada con
Android desde los comienzos, no sólo fue el HTC quién fabricó el primer
Nexus o Google Phone, sino que el primer Android también fue HTC, el
Dream que fue lanzado el 22 de octubre de 2008.
42
3.4.1.2 Logo Android
Andy es muñeco verde, logotipo del sistema operativo Android. Salió
por primera vez en el año 2005, cuando Google compró la empresa Android
Inc. Desde entonces, éste se ha convertido en la imagen referencia de
Google, en cuanto a smartphones y tablets se refiere. No se esperaban la
buena aceptación y la repercusión que tuvo, desde el primer momento, el
susodicho robot verde. Aunque existen teorías que dicen que "Andy" está
inspirado en R2D2 (de la ya famosa saga de Star Wars) y otras hipótesis
apuntan la novela de Phillip K. Dick: “¿Sueñan los androides con ovejas
eléctricas?”. Ésta segunda hipótesis es correcta en cuanto al nombre del
SO se refiere.
Pero para Andy, el muñequito, existe otra teoría más creíble, que
sitúa a un robotito muy parecido a Andy en un videojuego de los años 90.
Entre los personajes de ese juego se haya uno que deja una clara pista
sobre si Andy es una copia o un diseño 100% original. La verdad es que
las similitudes entre ambos son asombrosas. Desde las antenas y su forma
regordeta, hasta llegar a las extremidades. Si no fuera por esa cinta azul
en el torso… Además, los dos se llaman igual, Android.
Imagen: Andy en un videojuego
43
En aquel entonces, la diseñadora encargada del proyecto era Irina
Blok. En unas declaraciones que hizo, explica del porqué dibujó un robot
verde con una forma tan curiosa.
“Este logo fue diseñado para ser el símbolo internacional, y es
de código abierto, al igual la propia plataforma. No hay
referencias culturales a otros personajes o iconos culturales.
Hablamos con el fundador de Android y él hizo una investigación
sobre el tema androide/robot. Estaba claro que el logo
necesitaba estar relacionado con el nombre del Sistema
Operativo."
La idea estaba claramente ligada a los robots, cómo se podemos ver
en estos bocetos:
Imagen: Bocetos de los iconos de Android.
Para la elección final se optó por la elección de aquel icono que a los
trabajadores de Mountain View dejara más boquiabiertos.
3.4.1.3 Versiones de Android
El sistema operativo Android, al igual que los propios teléfonos
móviles, ha evolucionado rápidamente, acumulando una gran cantidad de
versiones, desde la 1.0 para el QWERTY HTC G1, hasta la 9.0 que acaba
de salir al mercado.
44
Evolución de las versiones de Android
Apple Pie: Android Version 1.0
23 de septiembre de 2008
Características: Android Market, Navegador Web, Soporte
para cámara, Carpetas que permiten agrupar iconos,
correo electrónico por web, Sincronización de Gmail,
Soporte para Wi-Fi y Bluetooth, entre otros.
Banana Bread: Android Version 1.1
9 de febrero de 2009
Características: Detalles y reseñas en Mapas, Posibilidad
de guardar archivos adjuntos en los mensajes, Añadido
soporte para marquesina en diseños de sistemas.
Cupcake: Android Version 1.5
30 de abril de 2009
Características: Widgets, teclado QWERTY virtual, copy &
paste, captura de vídeos y poder subirlos a Youtube
directamente.
Donut: Android Version 1.6
15 de septiembre de 2009
Características: Añade a la anterior la mejoría de la interfaz
de la cámara, búsqueda por voz, y navegación en Google
Maps.
Eclair: Android Version 2.0/2.1
26 de octubre de 2009
Características: Mejoras en Google Maps, salvapantallas
animado, incluye zoom digital para la cámara, y un nuevo
navegador de internet.
Froyo: Android Version 2.2
20 de mayo de 2010
Características: Incluye hostpot Wifi, mejora de la memoria,
más veloz, Microsoft Exchange y video-llamada.
Ginger Bread: Android Version 2.3
6 de diciembre de 2010
Características: Mejoras del consumo de batería, el
soporte de vídeo online y el teclado virtual, e incluye
soporte para pagos mediante NFC2.
45
Honey Comb: Android Version 3.0/3.4
22 de febrero de 2011
Características: Mejoras para tablets, soporte Flash y Divx,
integra Dolphin, multitarea pudiendo cambiar de aplicación
dejando las demás en espera en una columna, widgets y
homepage personalizable.
Ice Cream Sandwich: Android Version 4.0
18 de octubre de 2011
Características: Multiplataforma (tablets, teléfonos móviles
y netbooks), barras de estado, pantalla principal con
soporte para 3D, widgets redimensionables, soporte usb
para teclados, reconocimiento facial y controles para PS3.
Jelly Bean: Android Version 4.1.2/4.2.2/4.3
9 de julio de 2012
Características: Presentando una mayor fluidez del
sistema y mayor compatibilidad de hardware. Con Jelly
Bean nació Google Now, el descarte de las notificaciones,
mejoras en la accesibilidad y soporte para emojis.
KitKat: Android Version 4.4/4.4(Wear)
31 de octubre de 2013
Características: Se considera una de las versiones más
utilizada en todo el mundo. Con KitKat desaparece
físicamente el botón de menú siendo este reemplazado por
los tres puntos verticales.
Lollipop: Android Version 5.0/5.1
12 de noviembre de 2014
Características: Trajo consigo amplios cambios, sobre todo
en la interfaz que se redefinió casi en su totalidad,
incluyendo el Material Design. Lollipop innovó con la
personalización de la pantalla de bloqueo. Del mismo
modo, sorprendió gratamente a sus usuarios, con el
acceso al almacenamiento externo.
Marshmallow: Android Version 6.0
5 de octubre de 2015
Características: Una de las novedades más resaltantes es
la introducción de la plataforma de pagos en la Tienda de
Android también conocida como Play Store. Y uno de los
46
más importantes es el soporte para la lectura de las huellas
digitales.
Nougat: Android Version 7.0/7.1
15 de junio de 2016
Características: Activa las vistas con múltiples ventanas y
con varias Apps, permitiendo que se intercambien entre
ellas con un simple toque. También incluye la Vulkan ™
API para gráficos 3D de alta resolución. Asimismo, se
actualiza la aplicación que controla las notificaciones y el
ahorro de datos con “Doze on the Go”.
Oreo: Android Version 8.0/8.1
21 de agosto de 2017
Características: Las ventajas de Oreo se fundamentan en
la mejora de varias Apps nativas de Android. En primer
lugar, la arquitectura modular hace que las actualizaciones
se realicen más fácil y rápidamente. De igual forma, entre
todas las versiones de Android, Oreo se fundamentó en la
sencillez de su uso y la seguridad.
Pie: Android Version 9.0
6 de agosto de 2018
Características: Incorporación de Digital Wellbeing,
Navegación por gestos, Comportamiento predictivo del uso
de aplicaciones, Selector de texto inteligente mejorado,
Soporte para "notch".
47
Cuota de mercado de Android para Enero de 2018.
Fuente: https://www.unocero.com/
3.5 Diagrama de bloque del Sistema operativo Android
La arquitectura interna de la plataforma Android, está básicamente
formada por 4 componentes: aplicaciones, armazón de aplicaciones,
librerías y kernel/Linux, como se muestra en la siguiente gráfica:
48
Sistema de capas de Android
Fuente: Introducción a Android
En la imagen se distinguen claramente cada una de las capas: la que
forma parte del propio Kernel de Linux, donde Android puede acceder a
diferentes controladores, las librerías creadas para el desarrollo de
aplicaciones Android, la siguiente capa que organiza los diferentes
administradores de recursos, y, por último, la capa de las aplicaciones a las
que tiene acceso.
3.6 Descripción de cada bloque
Los componentes del sistema operativo de Android, cada sección se
describe en detalle a continuación:
Aplicaciones: Las aplicaciones base incluyen un cliente de email,
programa de SMS, calendario, mapas, navegador, contactos, y otros.
Todas las aplicaciones son escritas en el lenguaje de programación Java.
49
Framework de aplicaciones: Los desarrolladores tienen acceso completo
a los mismos APIs del framework usados por las aplicaciones base. La
arquitectura está diseñada para simplificar la reutilización de componentes;
cualquier aplicación puede publicar sus capacidades y cualquier otra
aplicación puede hacer luego uso de esas capacidades (sujeto a reglas de
seguridad del framework). Éste mismo mecanismo permite que los
componentes sean reemplazados por el usuario. Una capa de servicios
disponibles para las aplicaciones incluye:
 Un completo y extensible conjunto de vistas que pueden ser
utilizadas para desarrollar una aplicación: listas, grillas, cajas de
texto, botones e incluso un web browser.
 Proveedores de contenidos que permiten el acceso a datos
provenientes de otras aplicaciones (cómo Contactos), o a compartir
sus propios datos.
 Un administrador de recursos, que provee acceso a recursos como
cadenas, gráficos, y archivos.
 Un administrador de notificaciones que permite a todas las
aplicaciones mostrar alertas personalizables en la barra de estatus.
 Un administrador de actividades que maneja el ciclo de vida de las
aplicaciones y provee un comportamiento común en la navegación.
Librerías: Android incluye un conjunto de librerías C/C++ usadas por varios
componentes del sistema Android. Estas capacidades se exponen a los
desarrolladores a través del framework de aplicaciones de Android.
Algunas son: System C library (implementación librería C standard),
librerías de medios, librerías de gráficos, 3d, SQLite, entre otras.
Runtime de Android: Android incluye un conjunto de librerías base que
proveen la mayor parte de las funcionalidades disponibles en las librerías
50
base del lenguaje de programación Java. Cada aplicación Android corre su
propio proceso, con su propia instancia de la máquina virtual Dalvik. Dalkiv
ha sido escrito de forma que un dispositivo puede correr en múltiples
máquinas virtuales de forma eficiente. Dalkiv ejecuta archivos en el formato
Dalvik Executable (.dex), el cual está optimizado para memoria mínima. La
Máquina Virtual está basada en registros, y corre clases compiladas por el
compilador de Java que han sido transformadas al formato.dex por la
herramienta incluida "dx".
Núcleo - Linux: Android depende de un Linux versión 2.6 para los servicios
base del sistema como seguridad, gestión de memoria, gestión de
procesos, stack de red, y modelo de drivers. El núcleo también actúa como
una capa de abstracción entre el hardware y el resto del stack de software.
3.7 Kernel Linux
Un núcleo o kernel es un software que constituye la parte más
importante del sistema operativo. Es el principal responsable de facilitar a
los distintos programas acceso seguro al hardware de la computadora o en
forma básica, es el encargado de gestionar recursos, a través de servicios
de llamada al sistema. Como hay muchos programas y el acceso al
hardware es limitado, también se encarga de decidir qué programa podrá
hacer uso de un dispositivo de hardware y durante cuánto tiempo, lo que
se conoce como multiplexado. Acceder al hardware directamente puede
ser realmente complejo, por lo que los núcleos suelen implementar una
serie de abstracciones del hardware. Esto permite esconder la complejidad,
y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que
facilita su uso al programador. El kernel lo podemos definir como el corazón
del SO.
51
Android se basa en la versión de Linux para 2.6 sistema de servicios
básicos tales como seguridad, gestión de memoria, gestión de procesos, la
pila de red, y el conductor modelo. El kernel también actúa como una capa
de abstracción entre el hardware y el resto de la pila de software. Android
permiten a los desarrolladores crear aplicaciones móviles y sacar el
máximo provecho que todo dispositivo tiene que ofrecer. Está construido
para ser realmente abierto. Por ejemplo, una aplicación puede llamar a
cualquier función básica de un teléfono, como hacer llamadas, enviar
mensajes de texto, o usar la cámara. Android se basa en el Kernel Linux.
Además, utiliza una máquina virtual personalizada que ha sido diseñada
para optimizar la memoria y los recursos de hardware en un entorno móvil.
Android va a ser de código abierto, puede ser libremente ampliado
para incorporar nuevas tecnologías de vanguardia a medida que vayan
surgiendo. La plataforma continuará evolucionando a medida que las
comunidades de desarrolladores trabajan juntas para crear innovadoras
aplicaciones móviles. Android no diferencia entre el núcleo del teléfono y
las aplicaciones de terceros.
Todas pueden ser construidas para tener igual acceso a un teléfono
y tienen la capacidad de ofrecer a los usuarios un amplio espectro de
aplicaciones y servicios. Con los dispositivos construidos en la Plataforma
Android, los usuarios podrán adaptarse plenamente al teléfono para sus
intereses.
3.7.1 Herramientas de desarrollo
Es una stack de software para dispositivos móviles que incluye un
sistema Operativo, middleware y aplicaciones base. Los desarrolladores
pueden crear aplicaciones para la plataforma usando el SDK de android.
Las solicitudes se han escrito utilizando el lenguaje de programación Java
52
y se ejecutan en Dalvik, máquina virtual personalizada que se ejecuta en la
parte superior de un Núcleo de Linux.
Android proporciona acceso a una amplia gama de útiles bibliotecas
y herramientas que pueden ser utilizadas para construir aplicaciones
variadas. Por ejemplo, Android permite a los desarrolladores obtener la
ubicación del dispositivo. Android incluye un conjunto completo de
herramientas que se han construido desde el inicio junto a la plataforma
con los desarrolladores para proporcionar una elevada productividad y una
profunda comprensión de sus aplicaciones.
3.7.1.1 Eclipse
Eclipse es un entorno de desarrollo integrado IDE, de código
abierto y Multiplataforma. Es una potente y completa plataforma
de Programación, desarrollo y compilación de elementos tan variados
como sitios web, programas en C++ o aplicaciones Java. En Android
encontramos los entornos de desarrollos:
ANDROID DEVELOPMENT TOOLS PLUGIN PARA ECLIPSE IDE
El "ADT plugin" agrega poderosas extensiones al ambiente integrado
de Eclipse haciendo que la creación y depuración de las aplicaciones
Android sea fácil y rápida. Si el desarrollo está usando Eclipse, el "ADT
plugin" da un increíble estímulo para el desarrollo de las aplicaciones
Android. A continuación se mencionan algunas de sus características:
• Provee acceso a otras herramientas de desarrollo de Android
desde el entorno de Eclipse IDE. Por ejemplo, "ADT" permite el
acceso a muchas de las capacidades de la herramienta "DDMS",
tales como tomar fotografías de la pantalla, administrar el
redireccionamiento de puertos, fijar puntos de quiebre y examinar la
información "thread" y procesos directamente dentro de Eclipse.
53
• Provee un asistente para la creación de proyectos Android, el cual
ayuda a crear rápidamente todos los directorios y archivos
necesarios para crear una nueva aplicación Android.
• Automatiza y simplifica el proceso de construcción de una
aplicación.
• Provee un editor de código Android que ayuda a escribir XML válido
para el archivo "AndroidManifest.xml".
INSTALAR EL PLUGIN DE ECLIPSE (ADT)
Si va a utilizar el IDE de Eclipse como su entorno para el desarrollo
de aplicaciones de Android, puede instalar un plugin llamado herramientas
de desarrollo de Android (ADT), que añade soporte integrado para
proyectos y herramientas. El plugin ADT incluye una variedad de poderosas
herramientas que hacen la creación, funcionamiento y aplicaciones de
depuración de Android más rápida y sencilla. Si no va a usar el IDE de
Eclipse, no es necesario descargar o instalar el plugin de ADT. Mucho se
ha hablado sobre Android, el nuevo sistema operativo para dispositivos
móviles desarrollado por Google. Todas parecen ser ventajas, empezando
por la posibilidad de desarrollar aplicaciones de forma libre (se puede
acceder al SDK de Android desde Google sin ningún problema).
INSTALANDO ECLIPSE
a. En la página oficial de Eclipse (http://www.eclipse.org/downloads/) se
descarga el archivo indicado en la imagen siguiente:
54
b. Una vez descargado, también se encuentra comprimido en .zip, se
descomprime y se guarda la carpeta contenida dentro de la unidad C
de la computadora.
c. Instalando El Plugin De Android Para Eclipse. Ahora solo queda instalar
el plugin de Android para eclipse, para realizar esto, tienes que seguir
los pasos siguientes:
 Ejecuta el archivo eclipse.exe, se abrirá un dialogo donde te
pregunta la ruta donde guardará los proyectos que crees en eclipse.
Por defecto apuntara al directorio de tu sesión de usuario (usuarios
Windows). Escoge la ruta que quieras o deja esta por defecto.
 Ahora instalaremos el plugin de Android para eclipse, una vez
ejecutado eclipse nos dirigimos al menú Help / Software updates /
Find and Install.
55
.
 Se abrirá el dialogo siguiente donde seleccionaremos la opción
Search for New Features to Install y presionamos next.
 A continuación, obtendremos el plugin vía Internet desde el sitio
oficial de Android, para ello en el dialogo siguiente presionamos el
botón New Remote Site.
56
 Finalmente en el siguiente dialogo indicamos la url siguiente
(https://dlssl. google.com/android/eclipse) donde obtendrá eclipse el
plugin y le daremos un nombre para identificarlo, nosotros
pondremos Android. presionamos OK.
 Ahora en la lista nos tendrá que salir entre las opciones Android,
seleccionamos la casilla de Android y presionamos el botón finish.
Se cerrará el diálogo y se buscara el plugin en la ruta indicada, si
todo sale bien se abrirá un nuevo diálogo donde se realizará la
instalación del plugin solo debemos aceptar las condiciones y
presionar ok. Y finalmente eclipse nos solicitara que reiniciemos el
programa, le haremos caso y lo reiniciamos para poder utilizar
Android correctamente.
57
d. Instalando Android Eclipse En Ubuntu
 Descargar ANDROID SDK, puedes hacerlo con el navegador
(http://dl.google.com/android/android_sdk_linux_m3-rc20a.zip) o
por consola con wget. Por tanto, abrimos una consola y nos situamos
en nuestro home. Descomprimimos y cambiamos el nombre del
directorio "android_sdk_linux_m3-rc20a" por "android_sdk".
user@ubuntu:~$ wget
user@ubuntu:~$ unzip android_sdk_linux_m3-rc20a.zip
user@ubuntu:~$ mv android_sdk_linux_m3-rc20a android_sdk
 Finalmente para terminar la instalación tendremos que añadir el SDK
al path, por tanto, editaremos el archivo bashrc de nuestro /home
con cualquier editor de texto (vi, gedit, kate...) y añadiremos las
siguientes líneas al final del documento:
user@ubuntu:~$ vi /home/user/.bashrc
export SDK_ROOT=/home/user/android_sdk
export PATH=$SDK_ROOT/tools:$PATH
 Ya tenemos el SDK instalado y es posible acceder a sus
aplicaciones desde consola, por tanto, ahora nos queda instalar un
IDE para programar cómodamente nuestras aplicaciones. Para eso
el IDE idóneo es ECLIPSE ya que existen plugins para trabajar con
ANDROID de forma sencilla. Por tanto, en caso de no tenerlo
instalado, pasamos a instalar ECLIPSE: user@ubuntu:~$ apt-get
install eclipse
 Tras descargarse, se instalará automáticamente gracias a APT por
lo que una vez finalizada la instalación ya podremos lanzar eclipse.
En caso de que no dispongas de ningún acceso directo a la
aplicación se puede acceder por consola. user@ubuntu:~$ eclipse.
58
 Una vez iniciado eclipse nos vamos al menú Help > Software
Updates > Find and Install....
 Seleccionamos Search for new features to install y pulsamos
Next.
 Pulsamos New Remote Site y se muestra un dialogo que pedirá una
URL y un nombre para identificar el “repositorio”. Por nombre
podemos poner “Android” y en la URL introducimos la siguiente
dirección: https://dl-ssl.google.com/android/eclipse/
59
 Pulsamos OK.
 Se nos añadirá un “repositorio” a la lista, lo seleccionamos y
pulsamos Finish.
 Nos aparecerá ahora un árbol con la siguiente estructura: Android
Plugin > Eclipse Integration > Android Development Tools, los
seleccionamos todos y pulsamos Next.
60
 Aceptamos las condiciones de la licencia y pulsamos Next.
 Finalmente nos aparecerá una lista de tareas a instalar, y nos
aparecerá “Android Developm..”, y pulsamos Finish.
 El instalador descargará el paquete y lo instalará automáticamente.
61
 El plugin ADT no está firmado por lo que debemos aceptar su
instalación a pesar de ello por lo que pulsaremos Install All.
 Ya está el plugin completamente instalado, y solo falta reiniciar
eclipse.
 Una vez reiniciado solo falta configurar el plugin indicándole la ruta
al SDK, por lo tanto, accedemos al menú Window > Preferentes
62
 Seleccionamos ANDROID e introducimos la ruta a nuestro SDK, que
en nuestro ejemplo era /home/user/android_sdk/.
 Finalmente pulsamos Apply y nos aparecerá una ventana con un
aviso de que el plugin ya está instalado y configurado correctamente.
63
Finalmente, ya tenemos nuestro entorno de desarrollo
completamente instalado.
3.7.1.2 Java
Java es un lenguaje de programación orientada a objeto, Su
intención es permitir que los desarrolladores de aplicaciones escriban el
programa una vez y lo ejecuten en cualquier dispositivo. lo que quiere decir
que el código que es ejecutado en una plataforma no tiene que
ser recompilado para correr en otra.
Su sintaxis deriva en gran medida de C y C++, pero tiene menos
utilidades de bajo nivel que cualquiera de ellos. Las aplicaciones de Java
son compiladas a bytecode (clase Java), que puede ejecutarse en
cualquier máquina virtual Java (JVM) sin importar la arquitectura de la
computadora subyacente.
64
a. Instalando Java
 Descargamos java desde su sitio oficial
(http://www.java.com/es/download/) una vez abierta la página
presionamos el botón descarga gratuita de java (botón en color
verde) y nos llevara a otra página (imagen de abajo) donde nos da
la opción de instalarlo online o guardar el archivo en la computadora,
nosotros escogeremos la de instalarlo online para ello presionamos
el botón que nos dice Windows XP/Vista/2000/2003 En línea y nos
saldrá un dialogo que muestra la imagen, presionamos el botón
guardar archivo.
 Buscamos el archivo que se guardó en nuestra computadora (el
lugar donde se ha guardado es donde lo indique en la configuración
del explorador de Internet) se busca el archivo y se ejecuta, el
archivo se deberá llamar algo así jre-6u3-windowsi586-p-iftw.exe. al
menos tiene que coincidir la primera parte de jre y la palabra
Windows si tu sistema operativo es Windows.
65
3.7.1.3 SDK
SOFTWARE DEVELOPMENT KIT (SDK) es el Conjunto de
herramientas que le permiten a un programador crear aplicaciones para un
sistema en concreto, por ejemplo, ciertos paquetes de software,
plataformas de hardware, computadoras, consolas de video juegos, y
sistemas operativos, se seleccionan de acuerdo al sistema, ya que cada
uno de ellos carga las API’s del sistema para el cual se está realizando la
aplicación.
“Android SDK" incluye una variedad de herramientas especialmente
diseñadas para ayudar en el desarrollo de aplicaciones móbiles sobre la
plataforma Android. La herramienta más importante es el "Android
Emulator" y las "Android Development Tools" plugin para Eclipse", pero el
SDK también viene con un emulador de un teléfono Android para que se
pueda probar las aplicaciones y manejar un teléfono con Android desde la
PC.
3.7.1.4 Android Estudio
Android Studio es el entorno de desarrollo integrado (IDE) oficial
para el desarrollo de aplicaciones para Android y se basa en IntelliJ IDEA .
Además del potente editor de códigos y las herramientas para
desarrolladores de IntelliJ, Android Studio ofrece aún más funciones que
aumentan tu productividad durante la compilación de apps para Android,
como las siguientes:
 Un sistema de compilación basado en Gradle flexible.
 Un emulador rápido con varias funciones.
 Un entorno unificado en el que puedes realizar desarrollos para todos los
dispositivos Android.
66
 Instant Run para aplicar cambios mientras tu app se ejecuta sin la
necesidad de compilar un nuevo APK.
 Integración de plantillas de código y GitHub para ayudarte a compilar
funciones comunes de las apps e importar ejemplos de código.
 Gran cantidad de herramientas y frameworks de prueba.
 Herramientas Lint para detectar problemas de rendimiento, usabilidad,
compatibilidad de versión, etc.
 Compatibilidad con C++ y NDK.
 Soporte incorporado para Google Cloud Platform, lo que facilita la
integración de Google Cloud Messaging y App Engine.
Software Android Estudio
3.8 Aplicaciones Android
Android rompe las barreras en la creación de nuevas e innovadoras
aplicaciones. Por ejemplo, un programador puede combinar la información
67
de la web con los datos sobre un individuo de telefonía móvil (como los
contactos del usuario, calendario o ubicación geográfica) para proporcionar
una mayor notabilidad en la experiencia del usuario. Con Android, un
desarrollador puede crear una aplicación que permite a los usuarios ver la
ubicación de sus amigos y ser alertado cuando se encuentran cerca, por
ejemplo, a unas cuadras de donde se encuentra el usuario, dándoles la
oportunidad de conectarse.
Las aplicaciones Android están compuestas por un conjunto
heterogéneo de componentes enlazados mediante un archivo llamado
AndroidManifest.xml que los describe e indica cómo interactúan. Este
archivo también contiene meta información acerca de la aplicación, como
por ejemplo los requerimientos que debe cumplir la plataforma sobre la que
se ejecuta. Una aplicación Android estará compuesta por los siguientes
componentes (no necesariamente todos ellos):
• Actividades. Las actividades son la capa de presentación de la
aplicación. Cada pantalla a mostrar en la aplicación será una subclase de
la clase Activity. Las actividades hacen uso de componentes de tipo View
para mostrar elementos de la interfaz gráfica que permitan mostrar datos y
reaccionar ante la entrada del usuario.
• Servicios. Los servicios son componentes que se ejecutan en el
background de la aplicación, ya sea actualizando fuentes de información,
atendiendo a diversos eventos, o activando la visualización de
notificaciones en una actividad. Se utilizan para llevar a cabo
procesamiento que debe ser realizado de manera regular, incluso en el
caso en el que nuestras actividades no sean visibles o ni siquiera estén
activas.
68
• Proveedores de contenidos. Permiten almacenar y compartir datos
entre aplicaciones. Los dispositivos Android incluyen de serie un conjunto
de proveedores de contenidos nativos que permiten acceder a datos del
terminal, como por ejemplo los contactos o el contenido multimedia.
• Intents. Los intents constituyen una plataforma para el paso de mensajes
entre aplicaciones (y también dentro de una misma aplicación). Emitiendo
un intent al sistema declara la intención de tu aplicación de que se lleve a
cabo una determinada acción. El sistema será el encargado de decidir
quién lleva a cabo las acciones solicitadas.
• Receptores. Permiten a tu aplicación hacerse cargo de determinadas
acciones solicitadas mediante intents. Los receptores iniciarán
automáticamente la aplicación para responder a un intent que se haya
recibido, haciendo que sean ideales para la creación de aplicaciones
guiadas por eventos.
• Widgets. Se trata de componentes visuales que pueden ser añadidos a
la ventana principal de Android.
• Notificaciones. Las notificaciones permiten comunicarse con el usuario
sin necesidad de robar el foco de la aplicación activa actualmente o de
interrumpir a la actividad actual. Por ejemplo, cuando un dispositivo recibe
un mensaje de texto, avisa al usuario mediante luces, sonidos o mostrando
algún icono.
3.8.1 Ciclo de ejecución de las aplicaciones Android
Cada aplicación Android se ejecutará en su propio proceso, cada
uno con su propia instancia asociada de Dalvik (la máquina virtual de
Android). Android administra sus recursos de manera agresiva, haciendo
69
todo lo posible para que el dispositivo siempre responda a la interacción del
usuario, lo cual puede llevar a que muchas aplicaciones dejen de ejecutarse
de manera repentina, muchas veces incluso sin un aviso previo, con el
objetivo de liberar recursos para aplicaciones de mayor prioridad. Estas
aplicaciones de mayor prioridad suelen ser normalmente aquellas que
están interactuando con el usuario en ese preciso instante. El orden en el
que los procesos de las aplicaciones son detenidos viene determinado por
la prioridad de las mismas, la cual a su vez es equivalente a la prioridad de
su componente de mayor prioridad. Cada uno de los estados en los que se
puede encontrar una aplicación se resume en la siguiente figura y se detalla
a continuación:
Ciclo de ejecución de los procesos en Android.
Tomado de (Copyright © 2012-13 Dept. Ciencia de la Computación e IA All rights
reserved, http://www.jtech.ua.es/dadm/restringido/android/sesion01-apuntes.html)
Procesos activos: son aquellos procesos que contienen aplicaciones que
se encuentran interactuando con el usuario en ese preciso instante. Android
liberará recursos para intentar que estos procesos activos siempre
respondan sin latencia. Los procesos activos sólo serán detenidos como
último recurso.
70
• Procesos visibles: procesos visibles pero inactivos, ya sea porque sus
correspondientes aplicaciones se están mostrando detrás de otras o porque
no están respondiendo a ninguna entrada del usuario. Esto sucede cuando
una Actividad se encuentra parcialmente oculta por otra actividad, ya sea
porque ésta última es transparente o no ocupa toda la pantalla. Estos
procesos son detenidos tan solo bajo condiciones extremas.
• Procesos asociados a servicios en ejecución: los servicios permiten
que exista procesamiento sin necesidad de que exista una interfaz de
usuario visible. Debido a que estos servicios no interactúan directamente
con el usuario, reciben una prioridad ligeramente inferior a la de los
procesos visibles. Sin embargo, se siguen considerando procesos activos
y no serán detenidos a menos que sea estrictamente necesario.
• Procesos inactivos: se trata de procesos que albergan actividades que
ni son visibles ni se encuentran realizando un procesamiento en este
momento, y que además no están ejecutando ningún servicio. El orden en
el que se detendrán estos procesos vendrá determinado por el tiempo que
éstos llevan inactivos desde la última vez que fueron visibles, de mayor a
menor.
• Procesos vacíos: son el resultado del intento de Android de retener
aplicaciones en memoria una vez que éstas han terminado a modo de
caché. Con esto se consigue que al lanzar de nuevo la aplicación se
requiera menos tiempo.
3.8.2 Requisitos del sistema
Android funciona bajo los siguientes sistemas operativos:
71
Windows XP o Vista
Mac OS X 10.4.8 o posterior (solo X86)
Linux (Testeado en Linux Ubuntu Dapper Drake).
Requisitos para poder programar en Android:
Descargar SDK
Descargar Eclipse
Descargar JDK6
Descargar el Plugin de Eclipse (ADT).
Entornos de desarrollo IDE de Eclipse:
Eclipse 3.2, 3.3 (Europa) Eclipse JDT plugin (incluido en la mayoría
de los paquetes Eclipse IDE) WST (opcional, pero necesario para el editor
de Android, incluido en la mayoría de los paquetes Eclipse IDE).
Otros entornos de desarrollo o IDE:
Apache Ant 1.6.5 o posterior para Linux y Mac, 1,7 o posterior para
Windows. JDK 5 or JDK 6(JRE por sí solo no es suficiente). No es
compatible con compiladores de GNU para Java (gcj). El plugin de
herramientas de desarrollo de Android (opcional).
Nota: Si el JDK se ha instalado en su computadora en donde se encuentra
desarrollando su proyecto Android, asegúrese de que la computadora
cumpla con los requisitos enumerados anteriormente. En particular, tenga
en cuenta que algunas distribuciones de Linux pueden incluir el JDK 1.4 o
compiladores de GNU para Java, que no son compatibles para el desarrollo
de un proyecto Android.
72
3.8.3 Publicación
Las instrucciones sobre cómo preparar su aplicación para la
implementación y la forma de publicar cuando esté listo. Android contiene
múltiples herramientas de publicación que ayudaría al usuario a estar al día
con sus dispositivos movil al momento de actualización, requerimiento,
como también redes sociales, plugin, como también cuenta con un Google
play store donde encontramos gran variedad de aplicaciones necesarias
para optimizar nuestro dispositivo móvil y Widgets, contactos y websites en
la pantalla principal de Android para un fácil acceso a estos. Además,
encontraremos constantemente publicaciones referentes a este sistema
operativo, ya que son millones de desarrolladores que lo prefieren por ser
el sistema operativo más popular y de libre acceso a código abierto.
En definitiva, un teléfono Android no sólo nos servirá para hacer
llamadas o enviar y recibir mensajes, sino que podemos ir mucho más allá
gracias a las utilidades que nos brinda, con lo cual podemos convertir al
dispositivo en un verdadero centro de entretenimiento multimedia, y al
mismo tiempo una terminal para realizar diversos procesos relacionados a
nuestro trabajo. Entre las diversas herramientas es importante destacar los
importantes servicios que nos brinda Google. Desde la posibilidad de
administrar y organizar nuestro correo electrónico con Gmail, navegar por
internet con Chrome, pasando por la utilización de comandos de voz y
programas de edición, hasta incluso herramientas para mantener la
seguridad de nuestras operaciones y archivos, Google nos ofrece una gran
gama de aplicaciones, que nos permitirán mejorar notablemente el uso que
le demos a nuestro nuevo teléfono inteligente.
73
Herramientas Google. Tomado de
(https://www.androidexperto.com/aprender-android/herramientas-google-
que-todo-usuario-principiante-de-android-debe-usar/)
3.8.4 Emuladores
El "Android Emulator" es un dispositivo virtual que corre en la
computadora. El emulador tiene como finalidad ayudarte a diseñar y
depurar tus aplicaciones en un ambiente similar al que existe en un
dispositivo real. Existen distintas versiones del emulador tanto para
Windows como para Mac Os como para Linux.
El SDK de Android incluye un emulador de un dispositivo móvil virtual
que se ejecuta en una computadora, y que puede ser utilizado para el
prototipo, desarrollo y pruebas de aplicaciones para dispositivos Android,
previamente a la ejecución en un dispositivo real. El emulador imita todas
las características de un dispositivo real, tanto de hardware, como de
software, además está basado en QEMU, un emulador de procesadores,
que cuenta también con capacidades de virtualización.
74
3.8.5 ¿Cómo Emular Android?
Es muy sencillo emular un teléfono con Android en un sistema
operativo, sólo se debe descargar el SDK de Android, una vez descargado,
se descomprime el archivo, se busca la carpeta tools que se encuentra
dentro del archivo que se descargó y se ejecuta el archivo emulator que se
encuentra dentro de la carpeta tools. Siguiendo estos pasos se obtendrá
un emulador completo para un dispositivo ejecutado en Android. A
continuación, se muestra la vista del emulador para la versión 2.2 de
Android:
Emulador para Android 2.2
3.9 Dalvik (máquina virtual)
Dalvik es la máquina virtual de proceso dentro de Android, es
el software que ejecuta las aplicaciones en los dispositivos con Android.
Una máquina virtual de este tipo, se ejecuta como un proceso normal dentro
de un sistema operativo y soporta un solo proceso. Su objetivo es el de
proporcionar un entorno de ejecución independiente de la plataforma
de hardware y del sistema operativo, que oculte los detalles de la
plataforma subyacente y permita que un programa se ejecute siempre de
la misma forma sobre cualquier plataforma.
75
Dalvik se ha escrito de manera que un dispositivo pueda ejecutar
varias máquinas virtuales de manera eficiente. Dalvik VM ejecuta archivos
en los Dalvik ejecutables (DEX) formato que se ha optimizado para la
memoria mínima. VM es un registro de base, y ejecuta las clases
compiladas por un compilador de lenguaje Java que se han transformado
en él. Dex formato de los incluidos "dx" herramienta.
Condesa, (2011). Uno de los elementos clave de Android es la
máquina virtual de Dalvik que se encuentra en la capa de ejecución y que
ha sido diseñada para asegurar que la multitarea se ejecute de manera
eficiente, para optimizar la memoria y los recursos de hardware en el
entorno de los teléfonos móviles, etc. En lugar de utilizar una tradicional
máquina virtual Java (VM), tales como Java ME (Java Mobile Edition),
Android utiliza su propia máquina virtual personalizada. Dalvik es una parte
integral de Android, una máquina virtual, el software que ejecuta las
aplicaciones, es open source y utiliza el kernel de Linux.
Diagrama que representa el software que ejecuta la aplicación para realizar
las multitareas efectuada por la máquina virtual.
https://hipertextual.com/archivo/2014/02/que-es-dalvik-android/
76
Todo el hardware de Android y acceso a los servicios del sistema se
gestiona mediante Dalvik como un nivel intermedio. Mediante el uso de una
máquina virtual para organizar la ejecución de aplicaciones, los
desarrolladores tienen una capa de abstracción que asegura que nunca
tendrá que preocuparse de una aplicación de hardware en particular.
Por otra parte, también se puede decir que una máquina virtual Es
una implementación de Software de una máquina (por ejemplo, una
computadora) que ejecuta programas como una máquina física.
Específicamente, una máquina virtual de procesos está diseñada para
ejecutar un único programa, lo que quiere decir que soporta un único
proceso.
Hay que señalar que el código ejecutable final de Android, como
resultado de la máquina virtual de Dalvik, no se basa en el bytecode de
Java, sino que se basa en los archivos .dex. Esto significa que no se puede
ejecutar directamente el Bytecode de Java, sino que hay que comenzar con
los archivos .class de Java y luego convertirlos en archivos .dex.
77
Capítulo 4.- Conceptualización De Procesos Y/O Hilos
Los procesos son una de las abstracciones más antiguas e
importantes que proporcionan los sistemas operativos: proporcionan la
capacidad de operar (pseudo) concurrentemente, incluso cuando hay sólo
una CPU disponible. Convierten una CPU en varias CPU virtuales. Sin la
abstracción de los procesos, la computación moderna no podría existir. En
este capítulo examinaremos con gran detalle los procesos y sus primeros
primos, los hilos (threads). (Tanenbaum, 2009, pag 83).
4.1 Conceptos de Procesos y/o hilos
Proceso es un programa que se encuentra en ejecución, es decir, un
conjunto de instrucciones que se encuentran actualmente en ejecución en
un computador. Estos procesos son gestionados por el Sistema Operativo
y están formados por:
 Instrucciones que van a ser ejecutadas por el microprocesador.
 Los valores de los registros en un momento dado.
 Memoria que ha reservado para su ejecución.
 Otra información que permite al Sistema Operativo la planificación
de dicho proceso (Pérez y Jiménez, 2013).
Ejecución de varios procesos en Linux.
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID
MONOGRAFIA   SO ANDROID

Más contenido relacionado

La actualidad más candente

Requerimientos de PostgreSQL
Requerimientos de PostgreSQLRequerimientos de PostgreSQL
Requerimientos de PostgreSQL
Carlos Gustavo Ruiz
 
Origen y evolución de redes en power point practica
Origen y evolución de redes en power point practicaOrigen y evolución de redes en power point practica
Origen y evolución de redes en power point practica
luisamoronta
 
Manual Básico de Redes
Manual Básico de RedesManual Básico de Redes
Manual Básico de Redes
Antonio Anil
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
jimmy Apanu Inoach
 
PATRONES DE DISEÑO WEB
PATRONES DE DISEÑO WEBPATRONES DE DISEÑO WEB
PATRONES DE DISEÑO WEB
Mario Martinez
 
Manual Monitoreo de Servidores
Manual  Monitoreo de ServidoresManual  Monitoreo de Servidores
Manual Monitoreo de Servidores
cyberleon95
 
Arquitectura harvard
Arquitectura harvardArquitectura harvard
Arquitectura harvard
Luis Alejandro Pacheco López
 
Manual de instalacion
Manual de instalacionManual de instalacion
Manual de instalacion
Juan Carlos Tapias
 
Sistema Operativo Apple
Sistema Operativo AppleSistema Operativo Apple
Sistema Operativo Apple
Martha Lorena Salinas Vazquez
 
Redes Avanzadas; Protocolos de enrutamientos
Redes  Avanzadas; Protocolos de enrutamientos Redes  Avanzadas; Protocolos de enrutamientos
Redes Avanzadas; Protocolos de enrutamientos
Victor Ramirez Pulido
 
Tratamiento de datos
Tratamiento de datosTratamiento de datos
Tratamiento de datos
Ariel Medina
 
Estudio de factibilidad técnica (enfoque informático)
Estudio de factibilidad técnica  (enfoque informático)Estudio de factibilidad técnica  (enfoque informático)
Estudio de factibilidad técnica (enfoque informático)
Ronald Rivas
 
30 preguntas sobre red
30 preguntas sobre red30 preguntas sobre red
30 preguntas sobre red
jefferson
 
Alu
AluAlu
IMPLEMENTACION DE UNA BASE DE DATOS
IMPLEMENTACION DE UNA BASE DE DATOS IMPLEMENTACION DE UNA BASE DE DATOS
IMPLEMENTACION DE UNA BASE DE DATOS
Paul steven Quiñonez
 
Etherchannel STP
Etherchannel STPEtherchannel STP
Etherchannel STP
Steed Holman
 
Filosofos cenando++
Filosofos cenando++Filosofos cenando++
Filosofos cenando++
María Inés Cahuana Lázaro
 
Direccionamiento ip
Direccionamiento  ipDireccionamiento  ip
Direccionamiento ip
Luz Caraballo Naranjo
 
Diapositivas topologia de redes
Diapositivas topologia de redesDiapositivas topologia de redes
Diapositivas topologia de redes
silviarodriguezp
 
Topología Celular
Topología CelularTopología Celular
Topología Celular
Carlos7Maturano
 

La actualidad más candente (20)

Requerimientos de PostgreSQL
Requerimientos de PostgreSQLRequerimientos de PostgreSQL
Requerimientos de PostgreSQL
 
Origen y evolución de redes en power point practica
Origen y evolución de redes en power point practicaOrigen y evolución de redes en power point practica
Origen y evolución de redes en power point practica
 
Manual Básico de Redes
Manual Básico de RedesManual Básico de Redes
Manual Básico de Redes
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
PATRONES DE DISEÑO WEB
PATRONES DE DISEÑO WEBPATRONES DE DISEÑO WEB
PATRONES DE DISEÑO WEB
 
Manual Monitoreo de Servidores
Manual  Monitoreo de ServidoresManual  Monitoreo de Servidores
Manual Monitoreo de Servidores
 
Arquitectura harvard
Arquitectura harvardArquitectura harvard
Arquitectura harvard
 
Manual de instalacion
Manual de instalacionManual de instalacion
Manual de instalacion
 
Sistema Operativo Apple
Sistema Operativo AppleSistema Operativo Apple
Sistema Operativo Apple
 
Redes Avanzadas; Protocolos de enrutamientos
Redes  Avanzadas; Protocolos de enrutamientos Redes  Avanzadas; Protocolos de enrutamientos
Redes Avanzadas; Protocolos de enrutamientos
 
Tratamiento de datos
Tratamiento de datosTratamiento de datos
Tratamiento de datos
 
Estudio de factibilidad técnica (enfoque informático)
Estudio de factibilidad técnica  (enfoque informático)Estudio de factibilidad técnica  (enfoque informático)
Estudio de factibilidad técnica (enfoque informático)
 
30 preguntas sobre red
30 preguntas sobre red30 preguntas sobre red
30 preguntas sobre red
 
Alu
AluAlu
Alu
 
IMPLEMENTACION DE UNA BASE DE DATOS
IMPLEMENTACION DE UNA BASE DE DATOS IMPLEMENTACION DE UNA BASE DE DATOS
IMPLEMENTACION DE UNA BASE DE DATOS
 
Etherchannel STP
Etherchannel STPEtherchannel STP
Etherchannel STP
 
Filosofos cenando++
Filosofos cenando++Filosofos cenando++
Filosofos cenando++
 
Direccionamiento ip
Direccionamiento  ipDireccionamiento  ip
Direccionamiento ip
 
Diapositivas topologia de redes
Diapositivas topologia de redesDiapositivas topologia de redes
Diapositivas topologia de redes
 
Topología Celular
Topología CelularTopología Celular
Topología Celular
 

Similar a MONOGRAFIA SO ANDROID

Arquitectura de smarthponhes y tablets
Arquitectura de smarthponhes y tabletsArquitectura de smarthponhes y tablets
Arquitectura de smarthponhes y tablets
Jefferson Cabezas
 
Guia8 java
Guia8 javaGuia8 java
Guia8 java
odelys2003
 
Windows Phone
Windows PhoneWindows Phone
Windows Phone
Nathaly Mayorga
 
Windows phone
Windows phoneWindows phone
Windows phone
Rudexicontreras
 
Programación multimedia y dispositivos móviles
Programación multimedia y dispositivos móvilesProgramación multimedia y dispositivos móviles
Programación multimedia y dispositivos móviles
Anuska González
 
Proy utilitarios
Proy utilitariosProy utilitarios
Proy utilitarios
Priscila Gamboa
 
Celulares y sistemas operativos
Celulares y sistemas operativosCelulares y sistemas operativos
Celulares y sistemas operativos
Alumnos Instituto Grilli
 
Programación de dispositivos móviles UNIDAD 5
Programación de dispositivos móviles UNIDAD 5Programación de dispositivos móviles UNIDAD 5
Programación de dispositivos móviles UNIDAD 5
Lorenzo Antonio Flores Perez
 
Investigacion
InvestigacionInvestigacion
Guia didactica dispositivos moviles
Guia didactica dispositivos movilesGuia didactica dispositivos moviles
Guia didactica dispositivos moviles
Carlos Marin
 
Introducción a dispositivos_móviles
Introducción a dispositivos_móvilesIntroducción a dispositivos_móviles
Introducción a dispositivos_móviles
CESAR A. RUIZ C
 
Investigacion de Aplicaciones Moviles
Investigacion de Aplicaciones MovilesInvestigacion de Aplicaciones Moviles
Investigacion de Aplicaciones Moviles
Leonardo Moctezuma
 
Investigacion Aplicaciones Moviles
Investigacion Aplicaciones MovilesInvestigacion Aplicaciones Moviles
Investigacion Aplicaciones Moviles
Jose Nava
 
Investigacion
InvestigacionInvestigacion
Investigacion
Angel Alva
 
Investigacion
InvestigacionInvestigacion
Investigacion
Diuxy Martinez
 
EXPOSICION DE SISTEMAS OPERATIVOS MOVILES.pptx
EXPOSICION DE SISTEMAS OPERATIVOS MOVILES.pptxEXPOSICION DE SISTEMAS OPERATIVOS MOVILES.pptx
EXPOSICION DE SISTEMAS OPERATIVOS MOVILES.pptx
JeffersonMichelDoria
 
Introducción a la Plataforma para Móviles Android
Introducción a la Plataforma  para Móviles AndroidIntroducción a la Plataforma  para Móviles Android
Introducción a la Plataforma para Móviles Android
Eduardo Lazo Cisneros
 
Sistemas operativos, telefonia movil, y las
Sistemas operativos, telefonia movil, y lasSistemas operativos, telefonia movil, y las
Sistemas operativos, telefonia movil, y las
MALKA1022
 
cap7.pptx
cap7.pptxcap7.pptx
cap7.pptx
MayraLpezJimnez
 
Trabajo de investigación nª03
Trabajo de investigación nª03Trabajo de investigación nª03
Trabajo de investigación nª03
Javy Buenaño
 

Similar a MONOGRAFIA SO ANDROID (20)

Arquitectura de smarthponhes y tablets
Arquitectura de smarthponhes y tabletsArquitectura de smarthponhes y tablets
Arquitectura de smarthponhes y tablets
 
Guia8 java
Guia8 javaGuia8 java
Guia8 java
 
Windows Phone
Windows PhoneWindows Phone
Windows Phone
 
Windows phone
Windows phoneWindows phone
Windows phone
 
Programación multimedia y dispositivos móviles
Programación multimedia y dispositivos móvilesProgramación multimedia y dispositivos móviles
Programación multimedia y dispositivos móviles
 
Proy utilitarios
Proy utilitariosProy utilitarios
Proy utilitarios
 
Celulares y sistemas operativos
Celulares y sistemas operativosCelulares y sistemas operativos
Celulares y sistemas operativos
 
Programación de dispositivos móviles UNIDAD 5
Programación de dispositivos móviles UNIDAD 5Programación de dispositivos móviles UNIDAD 5
Programación de dispositivos móviles UNIDAD 5
 
Investigacion
InvestigacionInvestigacion
Investigacion
 
Guia didactica dispositivos moviles
Guia didactica dispositivos movilesGuia didactica dispositivos moviles
Guia didactica dispositivos moviles
 
Introducción a dispositivos_móviles
Introducción a dispositivos_móvilesIntroducción a dispositivos_móviles
Introducción a dispositivos_móviles
 
Investigacion de Aplicaciones Moviles
Investigacion de Aplicaciones MovilesInvestigacion de Aplicaciones Moviles
Investigacion de Aplicaciones Moviles
 
Investigacion Aplicaciones Moviles
Investigacion Aplicaciones MovilesInvestigacion Aplicaciones Moviles
Investigacion Aplicaciones Moviles
 
Investigacion
InvestigacionInvestigacion
Investigacion
 
Investigacion
InvestigacionInvestigacion
Investigacion
 
EXPOSICION DE SISTEMAS OPERATIVOS MOVILES.pptx
EXPOSICION DE SISTEMAS OPERATIVOS MOVILES.pptxEXPOSICION DE SISTEMAS OPERATIVOS MOVILES.pptx
EXPOSICION DE SISTEMAS OPERATIVOS MOVILES.pptx
 
Introducción a la Plataforma para Móviles Android
Introducción a la Plataforma  para Móviles AndroidIntroducción a la Plataforma  para Móviles Android
Introducción a la Plataforma para Móviles Android
 
Sistemas operativos, telefonia movil, y las
Sistemas operativos, telefonia movil, y lasSistemas operativos, telefonia movil, y las
Sistemas operativos, telefonia movil, y las
 
cap7.pptx
cap7.pptxcap7.pptx
cap7.pptx
 
Trabajo de investigación nª03
Trabajo de investigación nª03Trabajo de investigación nª03
Trabajo de investigación nª03
 

Último

mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
MiguelAtencio10
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
maralache30
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
Festibity
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
AMADO SALVADOR
 
Gabinete, puertos y dispositivos que se conectan al case
Gabinete,  puertos y  dispositivos que se conectan al caseGabinete,  puertos y  dispositivos que se conectan al case
Gabinete, puertos y dispositivos que se conectan al case
JuanaNT7
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
YashiraPaye
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
evelinglilibethpeafi
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
tamarita881
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
doctorsoluciones34
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
KukiiSanchez
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
NicandroMartinez2
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
AMADO SALVADOR
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
larapalaciosmonzon28
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
mantenimientocarbra6
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
cbtechchihuahua
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
al050121024
 
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
bendezuperezjimena
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Festibity
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
gisellearanguren1
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
sofiahuarancabellido
 

Último (20)

mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
 
Gabinete, puertos y dispositivos que se conectan al case
Gabinete,  puertos y  dispositivos que se conectan al caseGabinete,  puertos y  dispositivos que se conectan al case
Gabinete, puertos y dispositivos que se conectan al case
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
 
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
 

MONOGRAFIA SO ANDROID

  • 1. 1 República Bolivariana de Venezuela Universidad de Oriente Coordinación de Postgrado – Núcleo Monagas Maestría en Informática Gerencial Sistemas Operativo Modernos SISTEMA OPERATIVO: ANDROID Prof.: Integrantes: Gerardo Guacaran Acosta Gómez, Samuel Joseph Deyan Rodríguez, Kleeder José Figuera Jiménez, Alexis Rafael Parra Bello, María Valentina Febrero 2019
  • 2. 2 ÍNDICE GENERAL Pág. INTRODUCCIÓN 5 PARTE 1. ESTRUCTURA DEL HARDWARE 7 CAPÍTULO 1.- Conceptos de Telefonía celular 7 1.1 Tecnología inalámbrica 7 1.1.1 Redes analógicas y digitales 8 1.2 Smartphone 11 1.3 Definición de Telefonía celular. Funcionamiento y generaciones: 1G, 2G, …5G 11 1.4 Bandas: Dual, Tribanda, Cuatribanda 13 1.5 Tarjetas Dual Sim 14 1.6 Tecnologías 15 CAPÍTULO 2.- Diagrama de bloques de la estructura de hardware de un Smartphone real, susceptible de soportar la implantación del Sistema Operativo ANDROID 18 2.1 Diagrama de Bloques de la estructura del Hardware 18 2.2 Descripción del bloque procesador 18 2.2.1 Arquitectura ARM 19 2.2.2 Procesadores Qualcomm Snapdragon y SoCS 20 2.2.3 SoC Exynos de Samsumg 21 2.3 Descripción del bloque memoria y jerarquía 22 2.3.1 Memoria RAM 22 2.3.2 Almacenamiento Interno, La RAM 24 2.3.3 Almacenamiento Extraíble 25 2.4 Descripción del bloque periféricos 26 2.4.1 Bluetooth 26 2.4.2 GPS en los Smartphone 27 2.4.3 Sensor de luz en los móviles 28 2.4.4 Sensor de proximidad 28 2.4.5 WIFI en Smartphone 29 2.4.6 Cámaras de Móviles 30 2.5 Evolución histórica de la estructura del hardware 30 PARTE 2. ESTRUCTURA DEL SISTEMA OPERATIVO 32 CAPÍTULO 3.- Sistema operativo ANDROID 32 3.1 Definición 32 3.2 Ecosistema (reloj, tableta, carro, casa, teléfono, tv) ANDROID 32 3.3 Objetivos de diseño 34 3.4 Evolución Histórica del Sistema operativo 36 3.4.1 Reseña (historia) 36 3.4.1.1 Creadores 40 3.4.1.2 Logo 42 3.4.1.3 Versiones 43
  • 3. 3 3.5 Diagrama de bloque del Sistema operativo ANDROID 47 3.6 Descripción de cada bloque 48 3.7 Kernel Linux 50 3.7.1 Herramientas de desarrollo 51 3.7.1.1 Eclipse 52 3.7.1.2 Java 63 3.7.1.3 SDK 65 3.7.1.4 Android estudio 65 3.8.1 Aplicaciones Android 66 3.8.2 Requisitos del sistema 70 3.8.3 Publicación 72 3.8.4 Emuladores 73 3.8.5 ¿Cómo emular Android? 74 3.9 Dalvik (máquina virtual) 74 CAPÍTULO 4.- Conceptualización de Procesos y/o hilos 77 4.1 Conceptos de Procesos y/o hilos 77 4.1.1 Hilos 80 4.1.2 Procesos VS Hilos 81 4.2 Diagrama de estado de Procesos y/o hilos 82 CAPÍTULO 5.- Planificación de procesos 85 5.1 Sincronización de procesos 86 5.2 Planificación de sistemas en ambiente Multiprogramación 91 5.2.1 Ventajas de la multiprogramación 93 5.3 Planificación de sistemas en ambiente Multiprocesamiento 94 5.4 Estrategia real de Planificación de Procesos de ANDROID 97 CAPÍTULO 6.- Gestión de memoria principal 98 6.1 Memoria Física y memoria virtual 98 6.2 Jerarquía de memoria 99 6.3 Partición, Segmentación, Paginación 99 CAPÍTULO 7.- Gestión de almacenamiento en ANDROID 101 7.1 Planificación y gestión de dispositivos de almacenamiento secundario (Discos y memoria flash) 101 7.2 Sistema VFS su equivalente 102 7.3 Sistemas de archivos manejados por ANDROID (NFS, FAT, ..) 103 CAPÍTULO 8.- Gestión de E/S 105 8.1 Manejo de Periféricos a través del Sistema de archivos 105 CAPÍTULO 9.- Consideraciones sobre seguridad y protección ofrecidas por el Sistema Operativo objeto de estudio 107 9.1 Seguridad a través del software 107 9.2 Descripción de algunos fallos de seguridad y protección en ANDROID 109 9.3 Comparación de algunos fallos de seguridad con otros Sistemas operativos 109 9.4 Ventajas vs. Desventajas de ANDROID 110
  • 4. 4 CAPÍTULO 10.- Discusión sobre las tendencias 112 10.1 Comparación de ANDROID con otros Sistemas Operativos 112 10.2 Tendencias “free” u “Open” de este Sistema operativo 114 10.3 Base instalada(Cuota de mercado local y global) de este Sistema Operativo al año 2016 115 10.4 Reseña de algún artículo reciente (año 2016) donde se compare este Sistema operativo con otro 116 CONCLUSIÓN 118 BIBLIOGRAFÍA 119
  • 5. 5 INTRODUCCION Los Sistemas operativos han estado presenta en nuestras vidas, desde los dispositivos electrónicos hasta los muy comunes dispositivos de bolsillos (Smartphone y tablets). El avance de la tecnología para dispositivos móvil ha generado Sistemas Operativos independiente con capacidad de procesamiento de información y su libre acceso de personalización adaptándose a los gustos de los usuarios. La llegada de los sistemas operativos nos ha agilizado nuestras tareas diarias, cada una adaptándose a nuestras necesidades, con un diseño único para diversos usuarios, quienes los prefieran GNU/LINUX y otros amantes del WINDOWS. Estos sistemas operativos vienen equipados con recursos que nos ayudan a facilitar las tareas y así poder alcanzar su punto óptimo. Desde la llegada de los primeros ordenadores IMB hasta los más actuales. Los Sistemas Operativos han venidos evolucionando y cumpliendo con los requerimientos, adaptándose a lo que el usuario busca conseguir. Linux ha sido el sistema Operativo con más aportaciones por los desarrolladores ya que ofrece un código abierto y único para los desarrolladores. Sin embargo, Windows va dirigido hacia el usuario común quien busca una interfaz menos compleja y de fácil uso. Por tal motivo Linux ha desarrollado sistemas operativos para dispositivos móvil disponible para todo tipo de usuario que sin ningún tipo de conocimiento puedan acceder a su interfaz, además de contar con aplicaciones pre instaladas, lo que lo hace diferente a cualquier otro sistema operativo, y es cuando nos referimos a ANDROID, el cual es un sistema operativo de código abierto, desarrollado por un lenguaje multifuncional realizado por el SDK java. Esta construido sobre el Kernel de Linux y además utiliza una maquina
  • 6. 6 personalizada virtual diseñada para optimizar los recursos de memoria y de hardware en un entorno móvil. Android se ha preocupado en captar al usuario de dispositivo móvil para que así aprovechen al máximo el uso de todas las herramientas que ofrece. En el presente trabajo daremos a conocer acerca del Sistema Operativo Android ya que hoy en día es el más usado en los dispositivos móvil y cualquier usuario puede adquirirlo a un costo muy por debajo de otros sistemas operativos modernos que están en el mercado como lo son: IOS, BLACKBERRY, WINDOWS MOBILE; todos ellos los encontramos en Celulares inteligentes, Tablets, Reloj Inteligente, Tv, entre otros.
  • 7. 7 PARTE 1. ESTRUCTURA DEL HARDWARE Capítulo 1. Conceptos de Telefonía Celular La telefonía celular o dispositivos móviles (también conocidos como computadora de mano, «Palmtop» o simplemente handheld) son aparatos de pequeño tamaño, con algunas capacidades de procesamiento, móviles o no, con conexión permanente o intermitente a una red, con memoria limitada, están diseñados para funciones específicas, pero que pueden llevar a cabo otras funciones más generales. El teléfono móvil es un dispositivo inalámbrico electrónico que permite tener acceso a la red de telefonía celular o móvil. Se denomina celular en la mayoría de países latinoamericanos debido a que el servicio funciona mediante una red de celdas, donde cada antena repetidora de señal es una célula, si bien también existen redes telefónicas móviles satelitales. Su principal característica es su portabilidad, que permite comunicarse desde casi cualquier lugar. La principal función es la comunicación de voz, como el teléfono convencional 1.1 Tecnología Inalámbrica La tecnología inalámbrica no es más que un concepto que se emplea para hablar del uso de la tecnología sin cables, razón por la que se puede establecer una conexión entre varios computadores o dispositivos y sin un gran volumen de elementos físicos extra. La atención sobre la tecnología inalámbrica es una necesidad en el mundo moderno, porque ha posibilitado dejar en el olvido los cables, sin que esto implique que se pierda la opción de establecer una conexión, razón por la que desaparecen las limitaciones del espacio y el tiempo, lo que da una impresión que las oficinas, centros de trabajo o estudio se ubiquen en cualquier sitio del mundo.
  • 8. 8 Tecnología Inalámbrica La tecnología inalámbrica posibilita la comunicación al usar un emisor y receptor que no están unidos a través de un medio de propagación físico, sino que se utiliza un tipo de modulación de ondas electromagnéticas en el espacio. A raíz de lo anterior, los dispositivos físicos tan sólo van a estar situados en los emisores y en los receptores de la señal, en donde se pueden plantear como ejemplo las computadoras portátiles, antenas, PDA, los teléfonos móviles, entre otros. 1.1.1 Redes Analógicas y Digitales La información se transmite de muchas maneras ya sea con el uso de un dispositivo u otro. La diferencia entre una señal analógica y digital es una de las primeras dudas que nos planteamos al conocer más sobre esta materia. Debemos tener en cuenta que ambos métodos se encargan de que podamos transmitir información con eficiencia, pero en cada caso de una forma específica. El sistema que se utiliza para que la información se pueda transmitir es el aprovechamiento de señales eléctricas que activan los procesos de intercambio de datos. Tanto las señales digitales como las analógicas cuentan con diferenciaciones que conviene conocer si estamos especializándonos en tecnología móvil y otros sistemas similares.
  • 9. 9 Señal analógica Las medidas físicas se utilizan cuando hablamos de utilizar señales analógicas, que son especialmente usadas para llevar a cabo la transmisión de elementos de vídeo o sonido. Aunque son señales de tipo continuo hay que decir que su expansión se produce por la entrada en escena de las ondas de tipo senoidal. Para que las distintas señales analógicas que se transmitan puedan ser interpretadas de una manera adecuada habrá que tener un decodificador que permita cumplir con el proceso de trabajo. Una de las ventajas del uso de la señal analógica es que hay poco consumo de ancho de banda, mientras que por otro lado es un tipo de acción que se procesa en tiempo real. Hay menores necesidades en términos de inversión y la calidad suele ser más fiel a la realidad (cuando hablamos de la transmisión de sonido). Pero también tiene sus desventajas. La principal es lo complicado que resulta solucionar una transmisión fallida en comparación a si estuviéramos usando una señal digital. Sin llegar a uno de estos fallos trabajando con señales analógicas también se corre el riesgo de ver cómo el contenido en cuestión se degrada a medida que realizamos copias. Esto no ocurre en una señal digital, donde no importa el número de veces que la repliquemos, dado que nunca hay bajada de calidad. Las señales analógicas están más limitadas que las digitales debido al poco soporte que proporcionan en términos de volumen de datos que permiten transmitir. Aun así, hay algunos contextos en los que sí siguen siendo útiles, como es el caso de los micrófonos. Señal digital En el otro lado de la balanza tenemos las señales digitales, que se usan de una forma más frecuente debido a su flexibilidad y polivalencia. La
  • 10. 10 información no se transmite de la misma forma, sino que en este caso se utiliza un sistema de códigos binarios (los números 0 y 1) con los que se lleva a cabo la transmisión bajo una pareja de amplitudes que proporciona grandes posibilidades. El proceso del que hablábamos con las ondas senoidales en las señales analógicas cambia de forma completa para dar paso a ondas cuadradas, lo que permite hacer uso de la modulación digital y de un tipo de señal que no es continua. Hay aspectos que se deben tener en cuenta tal y como ya hemos mencionado antes, como que las señales digitales proporcionan una mayor capacidad para transmitir información de una manera fiel. Estas señales no producen deterioro en la información ni en la calidad de los datos, lo que ayuda a que el resultado sea más adecuado. Debido a esto las señales digitales son las que se utilizan en todo tipo de dispositivos digitales usados en la actualidad en todo el mundo, como reproductores de los más variados formatos, desde reproductores de Cds de música hasta reproductores de películas en formato DVD. Las muchas opciones que proporcionan las señales digitales, la facilidad que hay para transmitir información con ella y la manera en la cual se pueden usar sin pérdida de información, han hecho que se impongan en el mercado. Y aunque, como mencionábamos en el apartado anterior, las señales analógicas aún se usan en algunos contextos, es más frecuente que se opte por las digitales incluso teniendo en cuenta que sus costes son más altos. Al fin y al cabo, el sector tecnológico ha visto que, en este sentido, en la transmisión de información, era más importante contar con una señal eficiente que con una económica. Y esto es algo que también vemos aplicado al sector de los dispositivos móviles cada vez que los utilizamos.
  • 11. 11 1.2 Smartphone Es un teléfono inteligente que puede comunicarse a través de Wi-Fi, bluetooth, conexión a internet, envío de mensajería, y con e-mails. Generalmente se define como dispositivo electrónico de mano que integra la funcionalidad de un teléfono celular, PDA o similar. Opera añadiendo funciones de teléfono a un PDA existente o añadiendo funcionalidades "inteligentes", como las funciones del PDA, en un teléfono celular Una característica clave de un Smartphone es que las aplicaciones adicionales pueden ser instaladas en el dispositivo. Estas aplicaciones pueden ser desarrolladas por el fabricante del dispositivo, por el operador o por cualquier empresa desarrolladora de software. 1.3 Definición de Telefonía celular. Funcionamiento y generaciones: 1G, 2G, 3G, 4G y 5G  1G En 1981, Ericsson lanza el sistema NMT 450 (Nordic Mobile Telephony 450 MHz). Utilizaba canales de radio analógicos (frecuencias en torno a 450 MHz) con modulación en frecuencia (FM). Fué el primer sistema del mundo de telefonía móvil tal como se entiende hasta hoy en día. En 1986, Ericsson modernizó el sistema, llevándolo hasta el nivel NMT 900. Esta nueva versión funcionaba prácticamente igual que la anterior pero a frecuencias superiores (del orden de 900 MHz). Esto posibilitó dar servicio a un mayor número de usuarios y avanzar en la portabilidad de los terminales.  2G En la década de 1990 nace la segunda generación, que utiliza sistemas como GSM, IS-136, iDEN e IS-95. Las frecuencias utilizadas en Europa
  • 12. 12 fueron de 900 y 1800 MHz. Su desarrollo tiene como piedra angular la digitalización de las comunicaciones. Las comunicaciones digitales ofrecen una mejor calidad de voz que las analógicas, además se aumenta el nivel de seguridad y se simplifica la fabricación del Terminal, reduciendo los costos significativamente. Nacen varios estándares de comunicaciones móviles: D-AMPS (EE. UU.), Personal Digital Cellular (Japón), cdmaOne (EE. UU. y Asia) y GSM.  3G Surge por la necesidad de aumentar la capacidad de transmisión de datos para poder ofrecer servicios como la conexión a Internet desde el móvil, la videoconferencia, la televisión y la descarga de archivos. En este momento el desarrollo tecnológico ya posibilita un sistema totalmente nuevo: UMTS (Universal Mobile Telecommunications System). UMTS utiliza la tecnología CDMA, lo cual le hace alcanzar velocidades realmente elevadas (de 144 kbit/s hasta 7.2 Mbit/s, según las condiciones del terreno).  4G Es la evolución tecnológica que ofrece al usuario de telefonía móvil un mayor ancho de banda que permite, entre muchas otras cosas, la recepción de televisión en Alta Definición (HD). Hoy en día existe un sistema de este nivel operando con efectividad solo con algunas compañías de EEUU, llamado LTE.  5G 5G (redes móviles quinta generación o sistemas inalámbricos de 5 ª generación) denota la siguiente fase importante de normas de telecomunicaciones móviles más allá de los actuales 4G / IMT-Avanzadas normas. En telecomunicaciones, 5G son las siglas utilizadas para referirse
  • 13. 13 a la quinta generación de tecnologías de telefonía móvil. Es la sucesora de la tecnología 4G. Actualmente se encuentra sin estandarizar y las empresas de telecomunicación están desarrollando sus prototipos. Está previsto que su uso común sea en 2020. En noviembre de 2014, la compañía china Huawei anuncia la firma de un acuerdo con la operadora móvil rusa Megafon para estandarizar y desarrollar redes 5G de prueba, en vistas a la Copa Mundial de Fútbol de 2018. 1.4 Bandas: Dual, Tribanda, Cuatribanda En telecomunicaciones, los términos multibanda, doble banda, tribanda, cuatribanda y pentabanda hacen referencia a un dispositivo (sobre todo un teléfono móvil) que soporta múltiples radio-bandas de frecuencia utilizadas en comunicaciones. En el caso de móviles, su propósito es el de apoyar la itinerancia entre los diferentes países / regiones cuya infraestructura no pueda soportar los servicios móviles en el mismo rango de frecuencias. Tipos de Bandas según Generaciones En Venezuela el acceso a la telefonía y sus funcionamientos básicos como banda y capacidad de generaciones es limitado a:
  • 14. 14 Bandas 2G (GSM):  Digitel: 900Mhz  Movistar: 850Mhz  Movilnet: 850Mhz Bandas 3G (También conocida como WCDMA):  Digitel: 900Mhz  Movistar: 1900Mhz  Movilnet: 1900Mhz Bandas 4G (También conocida como LTE):  Digitel 4G: Banda 3 LTE 1800MHz.  Movistar 4G+: Banda 4 LTE 1700/2100MHz (Esto es, banda 1700MHz para subida y 2100MHz para bajada)  Movilnet 4G: Banda 4 LTE 1700/2100MHz (Esto es, banda 1700MHz para subida y 2100MHz para bajada) 1.5 Tarjetas Dual Sim Los móviles Dual SIM o doble SIM son teléfonos que pueden utilizar dos tarjetas SIM, o sea que permiten el uso de dos líneas telefónicas distintas en un mismo terminal. Dos números diferentes, con configuración diferente, planes de precios independientes... Dicho de otro modo, son dos móviles en uno. Estas dos líneas no tienen por qué ser de la misma operadora si el móvil es libre. Esto puede ser útil para personas que tengan, por ejemplo, un número de trabajo y otro personal: podrán utilizar los dos sin necesidad de
  • 15. 15 llevar dos teléfonos a todas partes. También es útil para poder combinar tarifas para ahorrar: por ejemplo, teniendo un bono de datos de una compañía en una tarjeta y otro de llamadas, de otra compañía, en la otra. Hay gente que utiliza el Dual SIM para aprovechar llamadas gratuitas entre números de una misma compañía (para llamar a su pareja, por ejemplo) en una tarjeta y otras tarifas en la otra. O bien para extranjeros o personas que llaman fuera, para combinar una tarifa pensada para llamadas internacionales con otra normal. Dual Sim 1.6 Tecnologías Para la mejor explicación en cuanto a las diversas tecnologías, se evidencio en un cuadro a continuación cuáles son sus principales características: Principales Tecnologías GPRS General Packet Radio Service  Tasa máxima encontrada en la práctica: 26 a 40 kbit/s.  Disputa los mismos slots de tiempo ya existentes que el tráfico de voz, lo que es un limitante para que los operadores ofrezcan tasas mayores.
  • 16. 16 EDGE Enhanced Data rates for Global Evolution  Puede aumentar en 3 veces la tasa de transmisión por la utilización de un nuevo esquema de modulación.  Tasa máxima encontrada en la práctica de 384Kbps y un promedio de 110 a 120 kbps en una red cargada. WCDMA HSDPA Wideband CDMA  También conocido como CDMA DS (Direct Sequence)  Es una de las tecnologías de acceso (ULTRA FDD) del UMTS (Universal Mobile Telecommunications System)  High Speed Downlink Packet Access (HSDPA) es un servicio de paquetes de datos, basado en el WCDMA, que optimiza la transmisión de datos en la dirección del teléfono celular (enlace de bajada). Está en desarrollo el High-Speed Uplink Packet Access (HSUPA), que hará lo mismo para el enlace de subida.  Consulte Tecnologías 3G HSPA High Speed Packet Access  Primera evolución del WCDMA/HSDPA que aumenta la velocidad del HSDPA en el uplink.  Es la combinación del HSDPA y HSUPA (High Speed Upnlink Packet Access, un servicio de paquetes de datos, basado en el WCDMA, que optimiza la transmisión de datos en la dirección de la Estación Radio Base (enlace de subida). Esta mejora incluye mayor rendimiento, menor latencia y mayor eficiencia espectral)  Las redes HSPA fueron implantadas en los rangos de frecuencia de 850/900/1900/2100 MHz.  Muchos operadores lanzaron HSPA inicialmente con las tasas máximas (download) de 3,6 Mbps, actualizandola posteriormente para los 7,2 Mbps ó 14,4 Mbps. HSPA+ High Speed Packet Access Plus  Evoulución del HSPA que puede ofrecer tasas de datos de downlink de hasta 84 Mbps y Uplink de hasta 23 Mbps. (Rel 9)  También conoecida como HSPA Evolution y HSPA Evolved.
  • 17. 17  HSPA + aumenta significativamente la capacidad del HSPA. Él dobla la capacidad de datos y aumenta en hasta tres veces la capacidad de voz a través del Voip, ayudando a atender la creciente demanda por servicios de datos.  Se tornó la principal tecnología de banda ancha móvil en el mundo con un 43,8% de las redes 3G ya actualizadas en el 1T12.  Estimaciones hechas por Teleco indican que más del 80% de las redes 3G serán HSPA+ en menos de 3 años.  Para muchos operadores el HSPA+ ofrecerá el salto para el LTE LTE Long Term Evolution  Evolución del HSPA+, es la próxima etapa en las comunicaciones móviles por radio.  Utilizan en su mayoría un par de canales separados para transmisión y recepción (FDD), aunque hayan también redes en que la transmisión y recepción comparten el mismo canal (TDD).  Aumenta la Capacidad de Datos en Densas Áreas Urbanas.  Ofrece además una reducción de la latencia y debe ser utilizado inicialmente para datos y desahogar el tráfico de las redes actuales. La voz en el LTE es VoIP.  El LTE está evolucionando paralelamente al HSPA+ para la mejoría en el desempeño de las redes.
  • 18. 18 CAPÍTULO 2.- DIAGRAMA DE BLOQUES DE LA ESTRUCTURA DE HARDWARE DE UN SMARTPHONE REAL, SUSCEPTIBLE DE SOPORTAR LA IMPLANTACIÓN DEL SISTEMA OPERATIVO ANDROID 2.1 Diagrama de Bloques de la estructura del Hardware Diagrama de Bloques 2.2 Descripción del bloque procesador La evolución del hardware de los smartphones viene dada por la miniaturización de los componentes electrónicos que lo forman y un menor proceso de producción/fabricación con menor consumo y mayores velocidades. Las velocidades de micro procesamiento guardan una relación directa con el número de transistores incluidos sobre el chip, y cuanto más pequeño sea el transistor (proceso de producción menor), mayor cantidad de ellos podrá ser empaquetada dentro de un mismo chip.
  • 19. 19 El microprocesador es la parte más importante de cualquier equipo electrónico, y desde hace unos años la tendencia es duplicar, triplicar e incluso cuadriplicar el núcleo de dicho microprocesador. Los sistemas operativos y el software que corre en ellos deberían de estar adaptados a esta tecnología para poder aprovecharla al máximo. 2.2.1 Arquitectura ARM Es una arquitectura RISC (Reduced Instruction Set Computer = Computadora con Conjunto de Instrucciones Reducidas) de 32 bits desarrollada por ARM Holdings plc. En 1983 comenzó a plasmarse la idea para desarrollar la arquitectura ARM, todo empezó como un proyecto de desarrollo en la empresa Acorn Computers. La razón principal, para el desarrollo de este nuevo procesador RISC, era que Acorn tenía una larga línea de ordenadores personales basados en el MOS 6502, por lo que tenía sentido desarrollar uno de su propia cosecha con el que los desarrolladores se sintieran cómodos al trabajar con él. En el año 1985 el equipo terminó el diseño preliminar y concluyó los primeros prototipos del nuevo procesador ARM, le llamaron ARM1, tendría que pasar otro año para que la primera versión comercial se bautizase como ARM2, esto ocurrió en el año 1986. El ARM2 es, con mucha probabilidad, el procesador de 32 bits útil más simple del mundo, ya que posee sólo 30.000 transistores. Si lo comparamos con un Intel 80386 (microprocesador de 32 bits lanzado en el año 1985) que posee 275.000 transistores, se observa que la diferencia con respecto al ARM2 es muy notable, ya que el chip de Intel tiene más de 9 veces la cantidad de transistores que el de Acorn. Gracias a esto, posee un consumo en energía bastante bajo, a la vez que ofrece un mejor
  • 20. 20 rendimiento que un Intel 286. Su sucesor, el ARM3, incluye una pequeña memoria caché de 4 KB, lo que mejora los accesos a memoria repetitivos. La mayor utilización de la tecnología ARM se alcanzó con la familia de procesadores ARM7TDMI, con millones de unidades en teléfonos móviles y sistemas de videojuegos portátiles. Y es que, la relativa simplicidad de los procesadores ARM los hace ideales para aparatos que precisen consumir poca o muy poca energía. El diseño del ARM se ha convertido en uno de los más usados del mundo, desde discos duros hasta juguetes. Hoy en día, cerca del 75% de los procesadores de 32 bits montados en cualquier tipo de dispositivo poseen este chip en su núcleo. El 98% de los microprocesadores utilizados en smartphones hace uso de la arquitectura de ARM. 2.2.2 Procesadores Qualcomm Snapdragon y SoCs Qualcomm es un poco diferente a los otros fabricantes SoC, ya que no utilizan las referencias de los diseños de ARM en la producción del procesador central. El sistema SoC Snapdragon S1 y S2 son de un solo núcleo único, que van hasta los 1,5 GHz, a través de sus procesadores Scorpion. S1 fue el tipo de procesador inicial que se lanzó, se introdujo en el primer lote de teléfonos Windows, utilizando el procesador de 1 GHz QSD8x50, y en algunos dispositivos Android como el HTC Desire, HTC Droid Incredible, HTC Nexus One y HTC EVO 4G. También hay un rápido procesador de la serie S2 SoC que es el MSM8x55T que se sincroniza con relojes que van de entre 1,4 y 1,5 GHz. Esto se ve en muchos smartphones de segunda generación que llevan instalado Windows Phone, como la serie Nokia Lumia, Titan HTC y Samsung Focus S. Con la serie Snapdragons S3 se vio un gran salto que fue desde un solo núcleo a doble núcleo, así como una mejora de la GPU.
  • 21. 21 Estos dispositivos se fabrican utilizando el proceso de 45 nm y los núcleos Scorpion utilizan todavía Cortex-A8, a diferencia de otros SoC de doble núcleo que utilizan un núcleo más nuevo, el Cortex-A9. Las velocidades van de 1.2 a 1.5 Ghz, MSM8x60 S3 se encuentra en productos como el HTC Sensation, HTC EVO 3D, HTC Rezound y algunos modelos de Samsung Galaxy S II. Imagen: línea Snapdragon S4 Fuente: https://histinf.blogs.upv.es/ 2.2.3 SoC Exynos de Samsung La gama de SoCs Samsung Exynos es bastante pequeña. Por lo general sólo se encuentran chipsets Exynos de Samsung dentro de smartphones y tabletas propios de Samsung y de alta gama, con una excepción, la gama de productos china Meizu(una compañía que, por ahora, se limita a lanzar terminales en territorio asiático). El primero de SoC de Samsung, Exynos, fue originalmente conocido como el Samsung Hummingbird y lo montaba el original Samsung Galaxy S, es ahora conocido como el Samsung Exynos 3310. El Exynos 3310 se fabricó con un proceso de 45 nm y contiene un procesador ARM Cortex- A8, con un solo núcleo de procesamiento de 1,0 GHz junto con un acelerador de gráficos PowerVR SGX540 que era muy potente para la época.
  • 22. 22 No sólo el Exynos de doble núcleo 4210 mejora, en gran medida, la velocidad del Exynos 3310, también incluye otras características en el SoC; como capacidades de GPS integradas en el 4210, que externamente los incorporan los TI OMAP y el Exynos 3310, y una mejorada interfaz módem que hace que sea más fácil incorporar diferentes tipos de tecnología inalámbrica en el sistema. El futuro para el chipset Exynos es impresionante, ya que, Samsung ya está en disposición de ofrecer el Exynos 5250, que es un 2,0 GHz de doble núcleo con procesador ARM Cortex-A15, con mejores gráficos Mali, soporte 3D estereoscópico, 2560×1600 (WQXGA), soporte de pantallas y gran mejora de las capacidades de cámara. Imagen: chip Exynos 5250 Fuente: https://histinf.blogs.upv.es/ 2.3 Descripción del bloque memoria y jerarquía 2.3.1 Memoria RAM
  • 23. 23 La memoria RAM es uno de los componentes críticos del móvil, junto con los núcleos de procesamiento de la CPU y GPU. Sin RAM, cualquier tipo de sistema de computación sería incapaz de realizar tareas básicas y acceder a los archivos de su memoria secundaria sería ridículamente lento. Este tipo de memoria es un intermediario entre el sistema de archivos, ubicados en la ROM, y los núcleos de procesamiento, que procesa cualquier tipo de información lo más rápidamente posible. Los archivos críticos que necesita el procesador se almacenan en la memoria RAM, que siempre ha de estar lista en espera de ser leída o escrita. Estos archivos críticos para el dispositivo pueden ser: los componentes del sistema operativo, datos de aplicaciones y gráficos de un juego, o en general cualquier cosa a la que se deba acceder a velocidades mayores que las de acceso a memorias de almacenamiento secundario. El tipo de memoria RAM que se utiliza en móviles smartphone es, técnicamente, DRAM (RAM Dinámica).La estructura de la DRAM es tal que cada condensador de la placa de RAM almacena un bit, y estos condensadores requieren de un constante “refresco” o actualización de los datos que están almacenados. La ventaja que la DRAM tiene frente a la RAM estática (SRAM) es que el almacenamiento se puede cambiar para hacer frente a cualquier tarea que el sistema esté tratando de realizar. La RAM es diferente a la memoria de almacenamiento de memoria flash tipo ROM. La ROM persiste en el dispositivo, aunque la energía se desconecte, cosa que la RAM pierde su contenido. Esta RAM también se conoce como memoria volátil, y parcialmente, esta forma de trabajar, ayuda a que los tiempos de acceso sean tan rápidos. Si se está preguntando donde se puede encontrar la RAM en los smartphones, en la mayoría de los casos se encontrará directamente en la parte superior del SoC, en el lugar que se conoce como paquete-en-
  • 24. 24 paquete (PoP package-on-package). Esto permite el acceso directo del SoC a la RAM y la escasa distancia entre ambos significa menor calor y menor consumo de energía. Si no hay suficiente espacio en la parte superior del SoC, a menudo se puede encontrar la RAM en lugares próximos a este. 2.3.2 El almacenamiento interno, la ROM Al igual que la RAM, el almacenamiento interno es fundamental para el funcionamiento básico de un smartphone, sin ningún lugar para almacenar el sistema operativo y los archivos críticos de las aplicaciones no se podrían hacer nada. Incluso si un teléfono no tiene memoria accesible para el usuario, habrá alguna forma de almacenamiento permanente interno que guarde, al menos, el sistema operativo. Estos chips pueden entonces estar divididos en varias áreas para diferentes propósitos, tales como archivos de aplicaciones de almacenamiento, memoria caché y el sistema. Normalmente, el chip que almacena los archivos de sistema se denomina ROM (memoria de sólo lectura), es un nombre algo inapropiado porque la memoria aquí, en realidad, puede ser modificada a través de las actualizaciones del sistema, pero no por el usuario final, en un principio. Algunos dispositivos, como el Samsung Galaxy S, tienen una configuración multi-ROM. Un chip de memoria más pequeño de cerca de 512 MB, pero muy rápido que almacena los archivos principales del sistema, caché y datos de aplicaciones en particiones independientes. El segundo chip es más grande, y es generalmente una partición, 1-2 GB, de almacenamiento del usuario que es más lento, pero permite el almacenamiento de aplicaciones diferentes al SO.
  • 25. 25 A veces las empresas engañan a sus usuarios finales y no les informan de forma veraz sobre la memoria interna accesible al usuario, y ponen una ranura para una tarjeta microSD que no es accesible por el usuario si no retira la batería del terminal. Esto pasaba de forma frecuente en la primera generación de móviles con Windows Phone, como el HTC Trophy y HTC HD7. 2.3.3 Almacenamiento extraíble Hoy en día casi todos los móviles, que tiene un usuario medio, usan almacenamiento extraíble con tarjetas microSD, por medio de ranuras para tarjetas SD. De los tres principales sistemas operativos de smartphones (iOS, Android y WP7), Android es el único que realmente soporta de forma nativa el almacenamiento extraíble. Con los dispositivos iOS como el iPhone, Apple no incluye ningún método para expandir el almacenamiento, en su lugar se le da al usuario un almacenamiento interno de generosas dimensiones que pueden utilizar para aplicaciones, videos, música y demás. En el SO Android hay dos implementaciones de almacenamiento extraíble accesibles por el usuario: el almacenamiento accesible solo por el usuario en memoria externa o complementada con la memoria interna. Si se complementa lo que ya está disponible internamente, hay una partición independiente del sistema para la tarjeta externa como /sd-ext o /mmc, a las que algunas aplicaciones, tales como reproductores de música y vídeo, pueden tener acceso a ella. La especificación original de SD permite tarjetas de hasta 2 GB de tamaño, y luego SDHC (SD de alta capacidad) aumentó el límite de tamaño a 32 GB. Recientemente SDXC (SD eXtended Capacity) aumenta el límite hasta los 2 TB, pero las tarjetas SDXC no son compatibles con la mayoría
  • 26. 26 de los nuevos smartphones, es decir, la expansión máxima de almacenamiento se ha fijado, por el momento, en 32 GB. Además del tamaño, la otra cosa importante a considerar al comprar una tarjeta microSD para un móvil es la velocidad, que aparece con el nombre de “clase” en el envase. Afortunadamente, el número de clases es muy fácil de entender, ya que se corresponde directamente con la velocidad mínima de escritura de la tarjeta en MB/s. Una tarjeta que está clasificado como Clase 4 será capaz de escribir a un mínimo de 4 MB/s, y la clase 10 a 10 MB/s. 2.4 Descripción del bloque periféricos 2.4.1 Bluetooth Es una especificación industrial para redes inalámbricas de área personal (WPAN) que posibilita la transmisión de voz y datos entre diferentes dispositivos mediante un enlace por radiofrecuencia en la banda ISM (Bandas ISM (Industrial, Scientific and Medical) son bandas reservadas internacionalmente para uso no comercial) en los 2,4 GHz. Los principales objetivos que se pretenden conseguir con esta norma son:  Facilitar las comunicaciones entre equipos móviles y fijos.  Eliminar los cables y conectores entre éstos.  Ofrecer la posibilidad de crear pequeñas redes inalámbricas y facilitar la sincronización de datos entre equipos personales. La utilidad Bluetooth fue desarrollada como un reemplazo del cable en 1994 por Jaap Haartsen y Mattisson Sven, que estaban trabajando para Ericsson en Lund, Suecia. La utilidad se basa en la tecnología de saltos de frecuencia de amplio espectro. Todas las versiones de los estándares de
  • 27. 27 Bluetooth están diseñadas para la compatibilidad hacia abajo, que permite que el último estándar cubra todas las versiones anteriores. 2.4.2 GPS en los smartphones El SPG o GPS (Global Positioning System: sistema de posicionamiento global) o NAVSTAR-GPS es un sistema global de navegación por satélite (GNSS) que permite determinar en todo el mundo la posición de un objeto, una persona o un vehículo con una precisión hasta de centímetros (si se utiliza GPS diferencial), aunque lo habitual son unos pocos metros de precisión. El GPS funciona mediante una red de 24 satélites en órbita sobre el planeta tierra, a 20.200 km, con trayectorias sincronizadas para cubrir toda la superficie de la Tierra. Cuando se desea determinar la posición, el receptor que se utiliza para ello localiza automáticamente como mínimo tres satélites de la red, de los que recibe unas señales indicando la identificación y la hora del reloj de cada uno de ellos. Con base en estas señales, el aparato sincroniza el reloj del GPS y calcula el tiempo que tardan en llegar las señales al equipo, y de tal modo mide la distancia al satélite mediante “triangulación” (método de trilateración inversa), la cual se basa en determinar la distancia de cada satélite respecto al punto de medición. Conocidas las distancias, se determina fácilmente la propia posición relativa respecto a los tres satélites. Conociendo además las coordenadas o posición de cada uno de ellos por la señal que emiten, se obtiene la posición absoluta o coordenada reales del punto de medición. También se consigue una exactitud extrema en el reloj del GPS, similar a la de los relojes atómicos que llevan a bordo cada uno de los satélites. Actualmente dentro del mercado de la telefonía móvil la tendencia es la de integrar, por parte de los fabricantes, la tecnología GPS dentro de
  • 28. 28 sus dispositivos. El uso y masificación del GPS está particularmente extendido en los teléfonos móviles smartphone, lo que ha hecho surgir todo un ecosistema de software para este tipo de dispositivos, así como nuevos modelos de negocios que van desde el uso del terminal móvil para la navegación tradicional punto-a-punto, la prestación de los llamados Servicios Basados en la Localización (LBS), hasta aplicaciones que haciendo uso de la realidad aumentada y diversos mapas son capaces de localizar por la calle lo que tengan programado. 2.4.3 Sensor de luz en los móviles Un sensor fotoeléctrico es un dispositivo electrónico que responde al cambio en la intensidad de la luz. Estos sensores requieren de un componente emisor que genera la luz, y un componente receptor que “ve” la luz generada por el emisor. Todos los diferentes modos de censado se basan en este principio de funcionamiento. Están diseñados especialmente para la detección, clasificación y posicionado de objetos; la detección de formas, colores y diferencias de superficie, incluso bajo condiciones ambientales extremas. Los sensores de luz se usan para detectar el nivel de luz y producir una señal de salida representativa respecto a la cantidad de luz detectada. Un sensor de luz incluye un transductor fotoeléctrico para convertir la luz a una señal eléctrica y puede incluir electrónica para condicionamiento de la señal, compensación y formateo de la señal de salida. 2.4.4 Sensor de proximidad Existen varios tipos de sensores de proximidad según el principio físico que utilizan. Los más comunes son los interruptores de posición, los detectores capacitivos, los inductivos y los fotoeléctricos, como el de infrarrojos. En muchos móviles actuales un sensor de proximidad desactiva
  • 29. 29 la capacidad táctil de la pantalla cuando el dispositivo se usa cerca de la cara durante una llamada de voz. Se hace para ahorrar batería y para prevenir ejecuciones incorrectas con la cara u orejas. 2.4.5 Wifi en smartphones El Wi-Fi es un mecanismo de conexión de dispositivos electrónicos de forma inalámbrica. Los dispositivos habilitados con Wi-Fi, tales como: un ordenador personal, una consola de videojuegos, un smartphone o un reproductor de audio digital, pueden conectarse a Internet a través de un punto de acceso de red inalámbrica. Dicho punto de acceso (o hotspot) tiene un alcance de unos 20 metros (65 pies) en interiores y al aire libre una distancia mayor. Pueden cubrir grandes áreas la superposición de múltiples puntos de acceso. Wi-Fi es una marca de la Wi-Fi Alliance (anteriormente la WECA: Wireless Ethernet Compatibility Alliance), la organización comercial que adopta, prueba y certifica que los equipos cumplen los estándares 802.11 relacionados a redes inalámbricas de área local. Existen diversos tipos de Wi-Fi, basado cada uno de ellos en un estándar IEEE 802.11 aprobado. Son los siguientes: Los estándares IEEE 802.11b, IEEE 802.11g e IEEE 802.11n disfrutan de una aceptación internacional debido a que la banda de 2.4 GHz está disponible casi universalmente, con una velocidad de hasta 11 Mbit/s, 54 Mbit/s y 300 Mbit/s, respectivamente. Los routers inalámbricos funcionan en ciertas frecuencias o bandas, de modo similar a un canal de radio que está en una frecuencia concreta del dial. Las comunicaciones en redes Wi-Fi suelen utilizar dos de ellas, la de 2.4 GHz y la de 5 Ghz. Un router que trabaja a 2.4 GHz tiene más alcance. Pero es más sensible a interferencias que el que lo hace a 5 GHz.
  • 30. 30 2.4.6 Cámaras en móviles Actualmente todos los smartphones que se venden y casi todos los móviles cuentan con una cámara que puede ir, normalmente, desde los 2 ó 3 megapíxeles hasta los 8 megapíxeles (del iPhone 5 o el Samsung Galaxy Note II). En modelos low-cost se apuesta con cámaras de 3 a 5 megapíxeles. La mayoría admiten un zoom digital, que puede ir desde los 3 a 5 o más aumentos. La cámara puede contar además con autofocus (autofoco es un automatismo de una cámara fotográfica o cualquier otro aparato óptico que permite el enfoque de un motivo sin intervención del usuario.), flash Xenon se suele usar para las fotografías y flash LED para vídeo. El flash Xenon da más calidad en general pues es lo que se ha usado en las cámaras convencionales desde hace mucho tiempo. 2.5 Evolución histórica de la estructura del hardware En los prolegómenos de la telefonía móvil se apostó por la miniaturización de los dispositivos móviles, pero eso cambió “repentinamente” con el boom de ventas de los smartphones. Ahora el mercado está enfocado a la maximización de la pantalla y, a la vez, a la reducción del volumen del aparato, principalmente el espesor. Entre 1996 y 2002 los teléfonos móviles cumplían con unas funciones de comunicación muy básicas comparadas con las que tenemos hoy en día (básicamente realizaban llamadas de voz y enviaban SMS). Pero en los mercados europeos desde 2001 se comenzó a escribir un cambio de concepción, en la idea de lo que era un teléfono móvil, el lanzamiento del Nokia 7650 (el primero de la marca con cámara integrada) supuso un cambio de rumbo en el mercado. Pero en aquellos tiempos la gente no necesitaba una pantalla muy grande, solo lo suficiente para
  • 31. 31 escribir SMS, leer registros de llamadas y manejar contactos entre otras “sencillas tareas”. Al final los pocos smartphones que por aquella época se comercializaban ganaron la batalla de ideas. Ofrecer más funcionalidades y servicios al dispositivo triunfo sobre la idea de pequeño y simple. Fue a partir de la proliferación de las cámaras fotográficas cuando los teléfonos móviles se vieron obligados a “crecer” y dejar espacio para la tecnología de cámara digital, con la mejora de estas se empezó a apostar por ópticas y resoluciones cada vez mejores integradas en los móviles, y junto a ello la implementación de pantallas de teléfono más amplias, con el fin de mejorar la visualización a la hora de realizar y revisar después las fotografías en la pantalla del teléfono. Servicios como internet en movilidad, el GPS, las cámaras digitales y las tiendas de aplicaciones han sido las principales responsables de la tendencia a la maximización de los teléfonos móviles, dejando atrás la idea de compresión del volumen. Se piensa que se ha llegado al tope de envergadura práctica de los smartphones con las 6″, más allá de esas dimensiones de pantalla se hace menos viable el transporte en el bolsillo de un pantalón, camisa, o bolsillo interior de una americana, así como el abarcamiento de toda la pantalla con una sola mano. La tecnología avanza a pasos agigantados, y lo que hace nada considerábamos gama alta o media-alta ha pasado a ser gama media o medio-baja, convirtiéndose en dispositivos accesibles a una gran cantidad de personas, con unos precios competitivos y que las operadoras llegan a regalar. Y es que no todo el mundo tiene las mismas necesidades, hay gente que quiere tener el último modelo disponible en el mercado, y los hay que quieren un móvil para WhatsApp (mensajería instantánea a través de internet) y poco más. Es importante que los fabricantes se centren y den
  • 32. 32 soporte a su gama alta, pero las gamas medias y baja se deben de ir mejorando poco a poco también. Actualmente, la gama baja cuenta con numerosos dispositivos que funcionan bien y cumplen su función, y la gama alta ofrece un plus de potencia y experiencia de usuario mejorada, además de ciertos servicios añadidos. PARTE 2. ESTRUCTURA DEL SISTEMA OPERATIVO Capítulo 3.- Sistema Operativo Android 3.1 Definición Android es un sistema operativo y una plataforma software, basado en Linux para teléfonos móviles. Además, también usan este sistema operativo (aunque no es muy habitual), tablets, netbooks, reproductores de música e incluso PC’s. Android permite programar en un entorno de trabajo (framework) de Java, aplicaciones sobre una máquina virtual Dalvik (una variación de la máquina de Java con compilación en tiempo de ejecución). Además, lo que le diferencia de otros sistemas operativos, es que cualquier persona que sepa programar puede crear nuevas aplicaciones, widgets1, o incluso, modificar el propio sistema operativo, dado que Android es de código libre, por lo que sabiendo programar en lenguaje Java, va a ser muy fácil comenzar a programar en esta plataforma. 3.2 Ecosistema Android Android ha llegado para quedarse. Pero también le ha llegado el turno de poner homogeneidad a sus productos: de crear lo que podríamos llamar el ecosistema Android total. Pero debe quedarnos claro que aquí el trabajo no es sólo por parte de la gran G y quiénes son los activos que deben provocar esto.
  • 33. 33 “Be together, not the same” Ahí, todos entendimos que lo que Google quería reforzar era la idea de que Android permite a cada usuario elegir un terminal acorde a sus preferencias, encontrando un sinfín de posibilidades. Google ponía como uno de sus puntos atractivos lo que precisamente era el quebradero de cabeza más grande para los desarrolladores: la fragmentación. Esta fragmentación, como decimos, para bien y para mal ha sido una de las palabras más características que han acompañado a Android como plataforma desde hace años. Desde fragmentación en hardware (diferentes pantallas, tamaños…) hasta en software (con cada capa de personalización que nos hemos ido encontrando de los fabricantes). Pero 2014 no trajo sólo el slogan. También trajo una fragmentación nueva: la fragmentación de sistemas operativos Android. Y esta fragmentación es la que ha venido de la mano de todos los nuevos productos que Google anunció: Android Wear, Android Auto, Android TV o, incluso, Android One. Imagen: Ecosistema Android Fuente: https://static.platzi.com/
  • 34. 34 Con esto, Google había dejado puestas ya las cartas sobre la mesa, pero eso no quiere decir que la partida aún esté jugada, pues la evolución de Android se va a ver condicionada por cómo evolucionan sus diferentes productos. 3.3 Objetivos de diseño El diseño visual es para muchos diseñadores la etapa más divertida del proceso. Aquí se da vida a los wireframes con un estilo que está marcado tanto por el diseñador como por la personalidad de cada sistema operativo. El diseño en Android está basado en una pulcritud brillante en la composición de la interfaz. Cada gráfico, botón y texto está acompañado por la idea de limpieza visual, pero, a la vez, deslumbra con pequeños detalles. Imagen: Diseño simple basado en Roboto Fuente: http://appdesignbook.com/ Roboto, la tipografía propia de este sistema operativo, es en gran parte su seña de identidad y se combina con un estilo de botones y colores bien definido. Android se apoya en la simplicidad, controlada pero no
  • 35. 35 aburrida, que, en ocasiones, rompe o trasciende sus propios formalismos para encantar al usuario. En el momento de comenzar a diseñar es recomendable definir la interfaz con elementos nativos. De esta forma, se consigue una buena base sobre la cual trabajar y no es necesario crear todos los elementos desde cero. El inconveniente de las interfaces nativas es que limitan la personalidad del diseño y, en algunos casos, es necesario ir un paso más allá. En situaciones como esta, todos o algunos elementos de la interfaz pueden ser personalizados, lo cual se logra creándolos de nuevo como imágenes. Por ejemplo, un elemento visual personalizado podría ser un campo de entrada de texto de un formulario que se genera como imagen, para aprovechar la posibilidad de incluir texturas, relieves o sombras específicas, que un elemento nativo no ofrece. Diseñar una interfaz personalizada tiene que planearse de antemano porque representa una mayor complejidad y tiempo de desarrollo. De la misma manera, no siempre los diseños de este tipo de interfaces se trasladan a la aplicación funcional de forma fidedigna, pues su correcta implementación queda en manos de la pericia del desarrollador. Crear un lenguaje visual que sintetice los principios del buen diseño con las innovaciones y posibilidades de la tecnología y la ciencia. Desarrollar un sistema único y fundamental que permita unificar la experiencia en cualquier plataforma o dispositivo. Los preceptos móviles son fundamentales, pero el tacto, la voz, el ratón y el teclado son todos métodos de entrada muy importantes.
  • 36. 36 3.4 Evolución Histórica del Sistema operativo Imagen: Evolución del sistema operativo Android 3.4.1 Reseña histórica de Android Allá por octubre del año 2003, Andy Rubin, Rich Miner, Nick Sears y Chris White daban forma a Android Inc. En sus inicios, únicamente trascendió que la actividad de la empresa se centraba en “el desarrollo de software para teléfonos móviles”. Android Inc. pasó casi dos años trabajando “en la sombra”, hasta que Google comenzó a “reclutar” a fuerza
  • 37. 37 de talonario a algunas “startup” (término que se refiere a nuevas compañías con un futuro prometedor) del sector móvil, con la clara intención de replicar su éxito de la Web en el futuro de las telecomunicaciones inalámbricas. En mayo del mismo año Google se hacía con Dodgeball, la empresa que desarrolló un sistema de red social y posicionamiento móvil que, una vez integrada en la estructura empresarial de los chicos de Mountain View, cesó su actividad en 2009 para dar paso a Google Latitude. Llegó el mes de agosto y le tocó el turno a Android Inc., la fecha clave para llegar a entender mejor el éxito de Android es el 5 de noviembre de 2007. Ese día se fundaba la OHA (Open Handset Alliance), una alianza comercial de 35 componentes iniciales liderada por Google, que contaba con fabricantes de terminales móviles, operadores de telecomunicaciones, fabricantes de chips y desarrolladores de software. El mismo día se dio a conocer por vez primera lo que hoy conocemos como Android, una plataforma de código abierto para móviles que se presentaba con la garantía de estar basada en el sistema operativo Linux. Ha sido Google quien ha publicado la mayor parte del código fuente del sistema operativo, gracias al software Apache, que es una fundación que da soporte a proyectos software de código abierto. Aunque no fue hasta un año después, en octubre de 2008 cuando lo vimos por primera vez funcionando en un HTC Dream. Veía la luz en los USA un móvil con la primera versión final de Android, la 1.0. El modelo G1 de HTC quedará para la historia como el iniciador de este gigante llamado Android.
  • 38. 38 Imagen: HTC G1 El HTC G1 es un móvil deslizable hacia el costado con teclado QWERTY y una gran pantalla sensible al tacto. Posee una cámara de 3 megapixels, ranura microSD, navegador de Internet y Email. Mucho tiempo ha pasado desde el lanzamiento de Android y muchas han sido las novedades que hemos visto. De la primera versión de Android destacó la plena integración de los servicios de Google, el navegador Web compatible con HTML y XHTML (que además ofrecía la función de zoom integrado y permitía ver múltiples páginas en diferentes ventanas). La guinda del pastel y el elemento que a la larga ha fraguado el éxito del sistema se presentaba por primera vez: Android Market, el almacén de aplicaciones más popular. A todo esto, surge una pregunta: ¿por qué ha desarrollado Google un sistema operativo de estas características? La respuesta, es de lo más lógica: para extender su influencia en el campo de la publicidad online a los dispositivos móviles, hasta ahora en manos de Microsoft gracias a Windows Mobile, el sistema operativo más utilizado en los terminales de última generación junto con Symbian OS. Esta situación podría permitir a dichas compañías controlar la manera en que la gente accede a la Red e integrar sus propias plataformas publicitarias en los móviles del futuro, algo que no satisface en absoluto a Google ya que podría ver en peligro su supremacía en un terreno, que no lo olvidemos, supone el 99% de sus ingresos totales año tras año.
  • 39. 39 Crecimiento en el mercado FECHAS DETALLE jul-05 Google adquiere Android, Inc. Pequeña empresa que desarrolla software para móviles (hasta entonces una gran desconocida) nov-07 Nace la Open Handset Alliance consorcio de empresas unidas con el objetivo de desarrollar estándares abiertos para móviles Texas Instruments, Broadcom co., Google, HTC, Intel, LG, MarvelTech., Motorola, Nvidia, Qualcomm, SamsumgElectonics, Sprint Nextel, T-Mobile. Se anuncia su primer producto, Android, plataforma para móviles construida sobre el kernel de Linux 2.6 oct-08 Publicado el proyecto open sourceAndroid distribuido principalmente con licencia Apache 2.0. Partes en otras licencias, p.e. GPL v2 para el núcleo. Se abre el AndroidMarket HTC Dream (G1), primer teléfono con Android dic-08 Nuevas incorporaciones, ARM Holdings, Athreos Communications, Asustek Computer Inc., Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp y Vodafone Group Plc. nov-09 Motorola Droid consigue vender 1.05 millones de unidades en 74 días, superando el record establecido por el iPhone de Apple. dic-09 16.000 aplicaciones en la tienda Android (Market) 60% gratuitas, 30% de pago. feb-10 Google anuncia la buena marcha de Android, 60.000 teléfonos con Android vendidos al día. abr-11 El sistema operativo de Google arrasa con un 36% de las ventas de teléfonos en el primer cuarto del 2011. La agencia Gartner indicó que 36 millones de terminales Andriod se vendieron en el primer trimestre de este año. Cifras que auguran el dominio que está llevando a cabo el Androide verde en el mundo de los Smartphone. ene-12 Google comenta que se han activado 250 millones de dispositivos. Esta cifra sorprende, dado que aumenta respecto a los datos del tercer trimestre del pasado año 2011; son 555,000 activaciones diarias, también ha anunciado que el AndroidMarket ha disfrutado de 11 mil millones de descargas, lo que viene a ser mil millones más que cuando Google anunció su llegada a los 10 mil millones hace alrededor de un mes.
  • 40. 40 Android es ya una de las plataformas operativas más eficientes, y los usuarios y las activaciones están dejando muy claro que Google ha alcanzado un alto grado de madurez con su plataforma. 3.4.1.1 Creadores de Android Nos tenemos que remontar a 1986, cuando Andy recibió su licenciatura en Ciencias de la Computación en la Universidad de Utica, Nueva York. Imagen: Andy Rubin Fuente: https://amp.businessinsider.com/ Su primer trabajo importante como ingeniero es en Apple, desde donde pasó a una empresa que surgió de Apple llamada General Magic, y aquí empezó con lo importante, ya que participó en el desarrollo de Magic Cup, lo que pretendía ser un sistema operativo para teléfonos o PDAs. Sin embargo, General Magic fracasó y se fue a la ruina, momento en el cual Andy se unió a Artemis Research, que acabó comprada por Microsoft. Ya hemos tenido a Andy Rubin trabajando para Apple y Microsoft, curioso. El caso es que tras unos años trabajando aquí se ve que empezó a querer hacer algo por su cuenta, y fundó Danger Inc., que finalmente sería también comprada por Microsoft. En Danger Inc. desarrollan el Hiptop, lo que es ya un teléfono que marcaría las primeras líneas de lo que serían los Smartphones, a la vez, Andy Rubin se ve tan frustrado que decide
  • 41. 41 abandonar la compañía de la que era CEO. Todo ello le llevo a su paso final en esta etapa, fundar en 2003 Android Inc. Andy Rubin llevaba desde 1989 hasta 2003 trabajando como ingeniero en telecomunicaciones y en el mundo de los teléfonos móviles, de ahí salió Android Inc., su proyecto para crear algo nuevo y diferente. En agosto de 2005, cuando Android Inc. contaba con 22 meses de vida, Google adquirió la empresa, pero esta vez se ve que Andy estaba contento con esta venta, no como ocurrió con Danger Inc. De hecho, Andy pasa a formar parte del equipo de Google, y es donde acaba como vicepresidente de ingeniería de Google supervisando el desarrollo de Android. Android de esta manera ya tenía toda una base para empezar a trabajar y formarse. Un proceso que había durado nada más y nada menos que 16 años había construido una sólida base sobre la que todo iba a empezar a funcionar. A partir de aquí comienza el típico secretismo al que Google nos tiene acostumbrados, en el que todos rumoreaban acerca de qué estaba haciendo Google con una compañía de desarrollo de sistemas para teléfonos móviles. Así, no fue hasta el 5 de noviembre de 2007 cuando se hizo el anuncio oficial de Android. Pero durante estos dos años Google había estado haciendo cosas, y una de ella fue llegar a acuerdos con fabricantes de teléfonos móviles para desarrollar el primer dispositivo Android de la historia. Todos sabemos que HTC siempre ha estado relacionada con Android desde los comienzos, no sólo fue el HTC quién fabricó el primer Nexus o Google Phone, sino que el primer Android también fue HTC, el Dream que fue lanzado el 22 de octubre de 2008.
  • 42. 42 3.4.1.2 Logo Android Andy es muñeco verde, logotipo del sistema operativo Android. Salió por primera vez en el año 2005, cuando Google compró la empresa Android Inc. Desde entonces, éste se ha convertido en la imagen referencia de Google, en cuanto a smartphones y tablets se refiere. No se esperaban la buena aceptación y la repercusión que tuvo, desde el primer momento, el susodicho robot verde. Aunque existen teorías que dicen que "Andy" está inspirado en R2D2 (de la ya famosa saga de Star Wars) y otras hipótesis apuntan la novela de Phillip K. Dick: “¿Sueñan los androides con ovejas eléctricas?”. Ésta segunda hipótesis es correcta en cuanto al nombre del SO se refiere. Pero para Andy, el muñequito, existe otra teoría más creíble, que sitúa a un robotito muy parecido a Andy en un videojuego de los años 90. Entre los personajes de ese juego se haya uno que deja una clara pista sobre si Andy es una copia o un diseño 100% original. La verdad es que las similitudes entre ambos son asombrosas. Desde las antenas y su forma regordeta, hasta llegar a las extremidades. Si no fuera por esa cinta azul en el torso… Además, los dos se llaman igual, Android. Imagen: Andy en un videojuego
  • 43. 43 En aquel entonces, la diseñadora encargada del proyecto era Irina Blok. En unas declaraciones que hizo, explica del porqué dibujó un robot verde con una forma tan curiosa. “Este logo fue diseñado para ser el símbolo internacional, y es de código abierto, al igual la propia plataforma. No hay referencias culturales a otros personajes o iconos culturales. Hablamos con el fundador de Android y él hizo una investigación sobre el tema androide/robot. Estaba claro que el logo necesitaba estar relacionado con el nombre del Sistema Operativo." La idea estaba claramente ligada a los robots, cómo se podemos ver en estos bocetos: Imagen: Bocetos de los iconos de Android. Para la elección final se optó por la elección de aquel icono que a los trabajadores de Mountain View dejara más boquiabiertos. 3.4.1.3 Versiones de Android El sistema operativo Android, al igual que los propios teléfonos móviles, ha evolucionado rápidamente, acumulando una gran cantidad de versiones, desde la 1.0 para el QWERTY HTC G1, hasta la 9.0 que acaba de salir al mercado.
  • 44. 44 Evolución de las versiones de Android Apple Pie: Android Version 1.0 23 de septiembre de 2008 Características: Android Market, Navegador Web, Soporte para cámara, Carpetas que permiten agrupar iconos, correo electrónico por web, Sincronización de Gmail, Soporte para Wi-Fi y Bluetooth, entre otros. Banana Bread: Android Version 1.1 9 de febrero de 2009 Características: Detalles y reseñas en Mapas, Posibilidad de guardar archivos adjuntos en los mensajes, Añadido soporte para marquesina en diseños de sistemas. Cupcake: Android Version 1.5 30 de abril de 2009 Características: Widgets, teclado QWERTY virtual, copy & paste, captura de vídeos y poder subirlos a Youtube directamente. Donut: Android Version 1.6 15 de septiembre de 2009 Características: Añade a la anterior la mejoría de la interfaz de la cámara, búsqueda por voz, y navegación en Google Maps. Eclair: Android Version 2.0/2.1 26 de octubre de 2009 Características: Mejoras en Google Maps, salvapantallas animado, incluye zoom digital para la cámara, y un nuevo navegador de internet. Froyo: Android Version 2.2 20 de mayo de 2010 Características: Incluye hostpot Wifi, mejora de la memoria, más veloz, Microsoft Exchange y video-llamada. Ginger Bread: Android Version 2.3 6 de diciembre de 2010 Características: Mejoras del consumo de batería, el soporte de vídeo online y el teclado virtual, e incluye soporte para pagos mediante NFC2.
  • 45. 45 Honey Comb: Android Version 3.0/3.4 22 de febrero de 2011 Características: Mejoras para tablets, soporte Flash y Divx, integra Dolphin, multitarea pudiendo cambiar de aplicación dejando las demás en espera en una columna, widgets y homepage personalizable. Ice Cream Sandwich: Android Version 4.0 18 de octubre de 2011 Características: Multiplataforma (tablets, teléfonos móviles y netbooks), barras de estado, pantalla principal con soporte para 3D, widgets redimensionables, soporte usb para teclados, reconocimiento facial y controles para PS3. Jelly Bean: Android Version 4.1.2/4.2.2/4.3 9 de julio de 2012 Características: Presentando una mayor fluidez del sistema y mayor compatibilidad de hardware. Con Jelly Bean nació Google Now, el descarte de las notificaciones, mejoras en la accesibilidad y soporte para emojis. KitKat: Android Version 4.4/4.4(Wear) 31 de octubre de 2013 Características: Se considera una de las versiones más utilizada en todo el mundo. Con KitKat desaparece físicamente el botón de menú siendo este reemplazado por los tres puntos verticales. Lollipop: Android Version 5.0/5.1 12 de noviembre de 2014 Características: Trajo consigo amplios cambios, sobre todo en la interfaz que se redefinió casi en su totalidad, incluyendo el Material Design. Lollipop innovó con la personalización de la pantalla de bloqueo. Del mismo modo, sorprendió gratamente a sus usuarios, con el acceso al almacenamiento externo. Marshmallow: Android Version 6.0 5 de octubre de 2015 Características: Una de las novedades más resaltantes es la introducción de la plataforma de pagos en la Tienda de Android también conocida como Play Store. Y uno de los
  • 46. 46 más importantes es el soporte para la lectura de las huellas digitales. Nougat: Android Version 7.0/7.1 15 de junio de 2016 Características: Activa las vistas con múltiples ventanas y con varias Apps, permitiendo que se intercambien entre ellas con un simple toque. También incluye la Vulkan ™ API para gráficos 3D de alta resolución. Asimismo, se actualiza la aplicación que controla las notificaciones y el ahorro de datos con “Doze on the Go”. Oreo: Android Version 8.0/8.1 21 de agosto de 2017 Características: Las ventajas de Oreo se fundamentan en la mejora de varias Apps nativas de Android. En primer lugar, la arquitectura modular hace que las actualizaciones se realicen más fácil y rápidamente. De igual forma, entre todas las versiones de Android, Oreo se fundamentó en la sencillez de su uso y la seguridad. Pie: Android Version 9.0 6 de agosto de 2018 Características: Incorporación de Digital Wellbeing, Navegación por gestos, Comportamiento predictivo del uso de aplicaciones, Selector de texto inteligente mejorado, Soporte para "notch".
  • 47. 47 Cuota de mercado de Android para Enero de 2018. Fuente: https://www.unocero.com/ 3.5 Diagrama de bloque del Sistema operativo Android La arquitectura interna de la plataforma Android, está básicamente formada por 4 componentes: aplicaciones, armazón de aplicaciones, librerías y kernel/Linux, como se muestra en la siguiente gráfica:
  • 48. 48 Sistema de capas de Android Fuente: Introducción a Android En la imagen se distinguen claramente cada una de las capas: la que forma parte del propio Kernel de Linux, donde Android puede acceder a diferentes controladores, las librerías creadas para el desarrollo de aplicaciones Android, la siguiente capa que organiza los diferentes administradores de recursos, y, por último, la capa de las aplicaciones a las que tiene acceso. 3.6 Descripción de cada bloque Los componentes del sistema operativo de Android, cada sección se describe en detalle a continuación: Aplicaciones: Las aplicaciones base incluyen un cliente de email, programa de SMS, calendario, mapas, navegador, contactos, y otros. Todas las aplicaciones son escritas en el lenguaje de programación Java.
  • 49. 49 Framework de aplicaciones: Los desarrolladores tienen acceso completo a los mismos APIs del framework usados por las aplicaciones base. La arquitectura está diseñada para simplificar la reutilización de componentes; cualquier aplicación puede publicar sus capacidades y cualquier otra aplicación puede hacer luego uso de esas capacidades (sujeto a reglas de seguridad del framework). Éste mismo mecanismo permite que los componentes sean reemplazados por el usuario. Una capa de servicios disponibles para las aplicaciones incluye:  Un completo y extensible conjunto de vistas que pueden ser utilizadas para desarrollar una aplicación: listas, grillas, cajas de texto, botones e incluso un web browser.  Proveedores de contenidos que permiten el acceso a datos provenientes de otras aplicaciones (cómo Contactos), o a compartir sus propios datos.  Un administrador de recursos, que provee acceso a recursos como cadenas, gráficos, y archivos.  Un administrador de notificaciones que permite a todas las aplicaciones mostrar alertas personalizables en la barra de estatus.  Un administrador de actividades que maneja el ciclo de vida de las aplicaciones y provee un comportamiento común en la navegación. Librerías: Android incluye un conjunto de librerías C/C++ usadas por varios componentes del sistema Android. Estas capacidades se exponen a los desarrolladores a través del framework de aplicaciones de Android. Algunas son: System C library (implementación librería C standard), librerías de medios, librerías de gráficos, 3d, SQLite, entre otras. Runtime de Android: Android incluye un conjunto de librerías base que proveen la mayor parte de las funcionalidades disponibles en las librerías
  • 50. 50 base del lenguaje de programación Java. Cada aplicación Android corre su propio proceso, con su propia instancia de la máquina virtual Dalvik. Dalkiv ha sido escrito de forma que un dispositivo puede correr en múltiples máquinas virtuales de forma eficiente. Dalkiv ejecuta archivos en el formato Dalvik Executable (.dex), el cual está optimizado para memoria mínima. La Máquina Virtual está basada en registros, y corre clases compiladas por el compilador de Java que han sido transformadas al formato.dex por la herramienta incluida "dx". Núcleo - Linux: Android depende de un Linux versión 2.6 para los servicios base del sistema como seguridad, gestión de memoria, gestión de procesos, stack de red, y modelo de drivers. El núcleo también actúa como una capa de abstracción entre el hardware y el resto del stack de software. 3.7 Kernel Linux Un núcleo o kernel es un software que constituye la parte más importante del sistema operativo. Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, también se encarga de decidir qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los núcleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso al programador. El kernel lo podemos definir como el corazón del SO.
  • 51. 51 Android se basa en la versión de Linux para 2.6 sistema de servicios básicos tales como seguridad, gestión de memoria, gestión de procesos, la pila de red, y el conductor modelo. El kernel también actúa como una capa de abstracción entre el hardware y el resto de la pila de software. Android permiten a los desarrolladores crear aplicaciones móviles y sacar el máximo provecho que todo dispositivo tiene que ofrecer. Está construido para ser realmente abierto. Por ejemplo, una aplicación puede llamar a cualquier función básica de un teléfono, como hacer llamadas, enviar mensajes de texto, o usar la cámara. Android se basa en el Kernel Linux. Además, utiliza una máquina virtual personalizada que ha sido diseñada para optimizar la memoria y los recursos de hardware en un entorno móvil. Android va a ser de código abierto, puede ser libremente ampliado para incorporar nuevas tecnologías de vanguardia a medida que vayan surgiendo. La plataforma continuará evolucionando a medida que las comunidades de desarrolladores trabajan juntas para crear innovadoras aplicaciones móviles. Android no diferencia entre el núcleo del teléfono y las aplicaciones de terceros. Todas pueden ser construidas para tener igual acceso a un teléfono y tienen la capacidad de ofrecer a los usuarios un amplio espectro de aplicaciones y servicios. Con los dispositivos construidos en la Plataforma Android, los usuarios podrán adaptarse plenamente al teléfono para sus intereses. 3.7.1 Herramientas de desarrollo Es una stack de software para dispositivos móviles que incluye un sistema Operativo, middleware y aplicaciones base. Los desarrolladores pueden crear aplicaciones para la plataforma usando el SDK de android. Las solicitudes se han escrito utilizando el lenguaje de programación Java
  • 52. 52 y se ejecutan en Dalvik, máquina virtual personalizada que se ejecuta en la parte superior de un Núcleo de Linux. Android proporciona acceso a una amplia gama de útiles bibliotecas y herramientas que pueden ser utilizadas para construir aplicaciones variadas. Por ejemplo, Android permite a los desarrolladores obtener la ubicación del dispositivo. Android incluye un conjunto completo de herramientas que se han construido desde el inicio junto a la plataforma con los desarrolladores para proporcionar una elevada productividad y una profunda comprensión de sus aplicaciones. 3.7.1.1 Eclipse Eclipse es un entorno de desarrollo integrado IDE, de código abierto y Multiplataforma. Es una potente y completa plataforma de Programación, desarrollo y compilación de elementos tan variados como sitios web, programas en C++ o aplicaciones Java. En Android encontramos los entornos de desarrollos: ANDROID DEVELOPMENT TOOLS PLUGIN PARA ECLIPSE IDE El "ADT plugin" agrega poderosas extensiones al ambiente integrado de Eclipse haciendo que la creación y depuración de las aplicaciones Android sea fácil y rápida. Si el desarrollo está usando Eclipse, el "ADT plugin" da un increíble estímulo para el desarrollo de las aplicaciones Android. A continuación se mencionan algunas de sus características: • Provee acceso a otras herramientas de desarrollo de Android desde el entorno de Eclipse IDE. Por ejemplo, "ADT" permite el acceso a muchas de las capacidades de la herramienta "DDMS", tales como tomar fotografías de la pantalla, administrar el redireccionamiento de puertos, fijar puntos de quiebre y examinar la información "thread" y procesos directamente dentro de Eclipse.
  • 53. 53 • Provee un asistente para la creación de proyectos Android, el cual ayuda a crear rápidamente todos los directorios y archivos necesarios para crear una nueva aplicación Android. • Automatiza y simplifica el proceso de construcción de una aplicación. • Provee un editor de código Android que ayuda a escribir XML válido para el archivo "AndroidManifest.xml". INSTALAR EL PLUGIN DE ECLIPSE (ADT) Si va a utilizar el IDE de Eclipse como su entorno para el desarrollo de aplicaciones de Android, puede instalar un plugin llamado herramientas de desarrollo de Android (ADT), que añade soporte integrado para proyectos y herramientas. El plugin ADT incluye una variedad de poderosas herramientas que hacen la creación, funcionamiento y aplicaciones de depuración de Android más rápida y sencilla. Si no va a usar el IDE de Eclipse, no es necesario descargar o instalar el plugin de ADT. Mucho se ha hablado sobre Android, el nuevo sistema operativo para dispositivos móviles desarrollado por Google. Todas parecen ser ventajas, empezando por la posibilidad de desarrollar aplicaciones de forma libre (se puede acceder al SDK de Android desde Google sin ningún problema). INSTALANDO ECLIPSE a. En la página oficial de Eclipse (http://www.eclipse.org/downloads/) se descarga el archivo indicado en la imagen siguiente:
  • 54. 54 b. Una vez descargado, también se encuentra comprimido en .zip, se descomprime y se guarda la carpeta contenida dentro de la unidad C de la computadora. c. Instalando El Plugin De Android Para Eclipse. Ahora solo queda instalar el plugin de Android para eclipse, para realizar esto, tienes que seguir los pasos siguientes:  Ejecuta el archivo eclipse.exe, se abrirá un dialogo donde te pregunta la ruta donde guardará los proyectos que crees en eclipse. Por defecto apuntara al directorio de tu sesión de usuario (usuarios Windows). Escoge la ruta que quieras o deja esta por defecto.  Ahora instalaremos el plugin de Android para eclipse, una vez ejecutado eclipse nos dirigimos al menú Help / Software updates / Find and Install.
  • 55. 55 .  Se abrirá el dialogo siguiente donde seleccionaremos la opción Search for New Features to Install y presionamos next.  A continuación, obtendremos el plugin vía Internet desde el sitio oficial de Android, para ello en el dialogo siguiente presionamos el botón New Remote Site.
  • 56. 56  Finalmente en el siguiente dialogo indicamos la url siguiente (https://dlssl. google.com/android/eclipse) donde obtendrá eclipse el plugin y le daremos un nombre para identificarlo, nosotros pondremos Android. presionamos OK.  Ahora en la lista nos tendrá que salir entre las opciones Android, seleccionamos la casilla de Android y presionamos el botón finish. Se cerrará el diálogo y se buscara el plugin en la ruta indicada, si todo sale bien se abrirá un nuevo diálogo donde se realizará la instalación del plugin solo debemos aceptar las condiciones y presionar ok. Y finalmente eclipse nos solicitara que reiniciemos el programa, le haremos caso y lo reiniciamos para poder utilizar Android correctamente.
  • 57. 57 d. Instalando Android Eclipse En Ubuntu  Descargar ANDROID SDK, puedes hacerlo con el navegador (http://dl.google.com/android/android_sdk_linux_m3-rc20a.zip) o por consola con wget. Por tanto, abrimos una consola y nos situamos en nuestro home. Descomprimimos y cambiamos el nombre del directorio "android_sdk_linux_m3-rc20a" por "android_sdk". user@ubuntu:~$ wget user@ubuntu:~$ unzip android_sdk_linux_m3-rc20a.zip user@ubuntu:~$ mv android_sdk_linux_m3-rc20a android_sdk  Finalmente para terminar la instalación tendremos que añadir el SDK al path, por tanto, editaremos el archivo bashrc de nuestro /home con cualquier editor de texto (vi, gedit, kate...) y añadiremos las siguientes líneas al final del documento: user@ubuntu:~$ vi /home/user/.bashrc export SDK_ROOT=/home/user/android_sdk export PATH=$SDK_ROOT/tools:$PATH  Ya tenemos el SDK instalado y es posible acceder a sus aplicaciones desde consola, por tanto, ahora nos queda instalar un IDE para programar cómodamente nuestras aplicaciones. Para eso el IDE idóneo es ECLIPSE ya que existen plugins para trabajar con ANDROID de forma sencilla. Por tanto, en caso de no tenerlo instalado, pasamos a instalar ECLIPSE: user@ubuntu:~$ apt-get install eclipse  Tras descargarse, se instalará automáticamente gracias a APT por lo que una vez finalizada la instalación ya podremos lanzar eclipse. En caso de que no dispongas de ningún acceso directo a la aplicación se puede acceder por consola. user@ubuntu:~$ eclipse.
  • 58. 58  Una vez iniciado eclipse nos vamos al menú Help > Software Updates > Find and Install....  Seleccionamos Search for new features to install y pulsamos Next.  Pulsamos New Remote Site y se muestra un dialogo que pedirá una URL y un nombre para identificar el “repositorio”. Por nombre podemos poner “Android” y en la URL introducimos la siguiente dirección: https://dl-ssl.google.com/android/eclipse/
  • 59. 59  Pulsamos OK.  Se nos añadirá un “repositorio” a la lista, lo seleccionamos y pulsamos Finish.  Nos aparecerá ahora un árbol con la siguiente estructura: Android Plugin > Eclipse Integration > Android Development Tools, los seleccionamos todos y pulsamos Next.
  • 60. 60  Aceptamos las condiciones de la licencia y pulsamos Next.  Finalmente nos aparecerá una lista de tareas a instalar, y nos aparecerá “Android Developm..”, y pulsamos Finish.  El instalador descargará el paquete y lo instalará automáticamente.
  • 61. 61  El plugin ADT no está firmado por lo que debemos aceptar su instalación a pesar de ello por lo que pulsaremos Install All.  Ya está el plugin completamente instalado, y solo falta reiniciar eclipse.  Una vez reiniciado solo falta configurar el plugin indicándole la ruta al SDK, por lo tanto, accedemos al menú Window > Preferentes
  • 62. 62  Seleccionamos ANDROID e introducimos la ruta a nuestro SDK, que en nuestro ejemplo era /home/user/android_sdk/.  Finalmente pulsamos Apply y nos aparecerá una ventana con un aviso de que el plugin ya está instalado y configurado correctamente.
  • 63. 63 Finalmente, ya tenemos nuestro entorno de desarrollo completamente instalado. 3.7.1.2 Java Java es un lenguaje de programación orientada a objeto, Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo. lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Su sintaxis deriva en gran medida de C y C++, pero tiene menos utilidades de bajo nivel que cualquiera de ellos. Las aplicaciones de Java son compiladas a bytecode (clase Java), que puede ejecutarse en cualquier máquina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente.
  • 64. 64 a. Instalando Java  Descargamos java desde su sitio oficial (http://www.java.com/es/download/) una vez abierta la página presionamos el botón descarga gratuita de java (botón en color verde) y nos llevara a otra página (imagen de abajo) donde nos da la opción de instalarlo online o guardar el archivo en la computadora, nosotros escogeremos la de instalarlo online para ello presionamos el botón que nos dice Windows XP/Vista/2000/2003 En línea y nos saldrá un dialogo que muestra la imagen, presionamos el botón guardar archivo.  Buscamos el archivo que se guardó en nuestra computadora (el lugar donde se ha guardado es donde lo indique en la configuración del explorador de Internet) se busca el archivo y se ejecuta, el archivo se deberá llamar algo así jre-6u3-windowsi586-p-iftw.exe. al menos tiene que coincidir la primera parte de jre y la palabra Windows si tu sistema operativo es Windows.
  • 65. 65 3.7.1.3 SDK SOFTWARE DEVELOPMENT KIT (SDK) es el Conjunto de herramientas que le permiten a un programador crear aplicaciones para un sistema en concreto, por ejemplo, ciertos paquetes de software, plataformas de hardware, computadoras, consolas de video juegos, y sistemas operativos, se seleccionan de acuerdo al sistema, ya que cada uno de ellos carga las API’s del sistema para el cual se está realizando la aplicación. “Android SDK" incluye una variedad de herramientas especialmente diseñadas para ayudar en el desarrollo de aplicaciones móbiles sobre la plataforma Android. La herramienta más importante es el "Android Emulator" y las "Android Development Tools" plugin para Eclipse", pero el SDK también viene con un emulador de un teléfono Android para que se pueda probar las aplicaciones y manejar un teléfono con Android desde la PC. 3.7.1.4 Android Estudio Android Studio es el entorno de desarrollo integrado (IDE) oficial para el desarrollo de aplicaciones para Android y se basa en IntelliJ IDEA . Además del potente editor de códigos y las herramientas para desarrolladores de IntelliJ, Android Studio ofrece aún más funciones que aumentan tu productividad durante la compilación de apps para Android, como las siguientes:  Un sistema de compilación basado en Gradle flexible.  Un emulador rápido con varias funciones.  Un entorno unificado en el que puedes realizar desarrollos para todos los dispositivos Android.
  • 66. 66  Instant Run para aplicar cambios mientras tu app se ejecuta sin la necesidad de compilar un nuevo APK.  Integración de plantillas de código y GitHub para ayudarte a compilar funciones comunes de las apps e importar ejemplos de código.  Gran cantidad de herramientas y frameworks de prueba.  Herramientas Lint para detectar problemas de rendimiento, usabilidad, compatibilidad de versión, etc.  Compatibilidad con C++ y NDK.  Soporte incorporado para Google Cloud Platform, lo que facilita la integración de Google Cloud Messaging y App Engine. Software Android Estudio 3.8 Aplicaciones Android Android rompe las barreras en la creación de nuevas e innovadoras aplicaciones. Por ejemplo, un programador puede combinar la información
  • 67. 67 de la web con los datos sobre un individuo de telefonía móvil (como los contactos del usuario, calendario o ubicación geográfica) para proporcionar una mayor notabilidad en la experiencia del usuario. Con Android, un desarrollador puede crear una aplicación que permite a los usuarios ver la ubicación de sus amigos y ser alertado cuando se encuentran cerca, por ejemplo, a unas cuadras de donde se encuentra el usuario, dándoles la oportunidad de conectarse. Las aplicaciones Android están compuestas por un conjunto heterogéneo de componentes enlazados mediante un archivo llamado AndroidManifest.xml que los describe e indica cómo interactúan. Este archivo también contiene meta información acerca de la aplicación, como por ejemplo los requerimientos que debe cumplir la plataforma sobre la que se ejecuta. Una aplicación Android estará compuesta por los siguientes componentes (no necesariamente todos ellos): • Actividades. Las actividades son la capa de presentación de la aplicación. Cada pantalla a mostrar en la aplicación será una subclase de la clase Activity. Las actividades hacen uso de componentes de tipo View para mostrar elementos de la interfaz gráfica que permitan mostrar datos y reaccionar ante la entrada del usuario. • Servicios. Los servicios son componentes que se ejecutan en el background de la aplicación, ya sea actualizando fuentes de información, atendiendo a diversos eventos, o activando la visualización de notificaciones en una actividad. Se utilizan para llevar a cabo procesamiento que debe ser realizado de manera regular, incluso en el caso en el que nuestras actividades no sean visibles o ni siquiera estén activas.
  • 68. 68 • Proveedores de contenidos. Permiten almacenar y compartir datos entre aplicaciones. Los dispositivos Android incluyen de serie un conjunto de proveedores de contenidos nativos que permiten acceder a datos del terminal, como por ejemplo los contactos o el contenido multimedia. • Intents. Los intents constituyen una plataforma para el paso de mensajes entre aplicaciones (y también dentro de una misma aplicación). Emitiendo un intent al sistema declara la intención de tu aplicación de que se lleve a cabo una determinada acción. El sistema será el encargado de decidir quién lleva a cabo las acciones solicitadas. • Receptores. Permiten a tu aplicación hacerse cargo de determinadas acciones solicitadas mediante intents. Los receptores iniciarán automáticamente la aplicación para responder a un intent que se haya recibido, haciendo que sean ideales para la creación de aplicaciones guiadas por eventos. • Widgets. Se trata de componentes visuales que pueden ser añadidos a la ventana principal de Android. • Notificaciones. Las notificaciones permiten comunicarse con el usuario sin necesidad de robar el foco de la aplicación activa actualmente o de interrumpir a la actividad actual. Por ejemplo, cuando un dispositivo recibe un mensaje de texto, avisa al usuario mediante luces, sonidos o mostrando algún icono. 3.8.1 Ciclo de ejecución de las aplicaciones Android Cada aplicación Android se ejecutará en su propio proceso, cada uno con su propia instancia asociada de Dalvik (la máquina virtual de Android). Android administra sus recursos de manera agresiva, haciendo
  • 69. 69 todo lo posible para que el dispositivo siempre responda a la interacción del usuario, lo cual puede llevar a que muchas aplicaciones dejen de ejecutarse de manera repentina, muchas veces incluso sin un aviso previo, con el objetivo de liberar recursos para aplicaciones de mayor prioridad. Estas aplicaciones de mayor prioridad suelen ser normalmente aquellas que están interactuando con el usuario en ese preciso instante. El orden en el que los procesos de las aplicaciones son detenidos viene determinado por la prioridad de las mismas, la cual a su vez es equivalente a la prioridad de su componente de mayor prioridad. Cada uno de los estados en los que se puede encontrar una aplicación se resume en la siguiente figura y se detalla a continuación: Ciclo de ejecución de los procesos en Android. Tomado de (Copyright © 2012-13 Dept. Ciencia de la Computación e IA All rights reserved, http://www.jtech.ua.es/dadm/restringido/android/sesion01-apuntes.html) Procesos activos: son aquellos procesos que contienen aplicaciones que se encuentran interactuando con el usuario en ese preciso instante. Android liberará recursos para intentar que estos procesos activos siempre respondan sin latencia. Los procesos activos sólo serán detenidos como último recurso.
  • 70. 70 • Procesos visibles: procesos visibles pero inactivos, ya sea porque sus correspondientes aplicaciones se están mostrando detrás de otras o porque no están respondiendo a ninguna entrada del usuario. Esto sucede cuando una Actividad se encuentra parcialmente oculta por otra actividad, ya sea porque ésta última es transparente o no ocupa toda la pantalla. Estos procesos son detenidos tan solo bajo condiciones extremas. • Procesos asociados a servicios en ejecución: los servicios permiten que exista procesamiento sin necesidad de que exista una interfaz de usuario visible. Debido a que estos servicios no interactúan directamente con el usuario, reciben una prioridad ligeramente inferior a la de los procesos visibles. Sin embargo, se siguen considerando procesos activos y no serán detenidos a menos que sea estrictamente necesario. • Procesos inactivos: se trata de procesos que albergan actividades que ni son visibles ni se encuentran realizando un procesamiento en este momento, y que además no están ejecutando ningún servicio. El orden en el que se detendrán estos procesos vendrá determinado por el tiempo que éstos llevan inactivos desde la última vez que fueron visibles, de mayor a menor. • Procesos vacíos: son el resultado del intento de Android de retener aplicaciones en memoria una vez que éstas han terminado a modo de caché. Con esto se consigue que al lanzar de nuevo la aplicación se requiera menos tiempo. 3.8.2 Requisitos del sistema Android funciona bajo los siguientes sistemas operativos:
  • 71. 71 Windows XP o Vista Mac OS X 10.4.8 o posterior (solo X86) Linux (Testeado en Linux Ubuntu Dapper Drake). Requisitos para poder programar en Android: Descargar SDK Descargar Eclipse Descargar JDK6 Descargar el Plugin de Eclipse (ADT). Entornos de desarrollo IDE de Eclipse: Eclipse 3.2, 3.3 (Europa) Eclipse JDT plugin (incluido en la mayoría de los paquetes Eclipse IDE) WST (opcional, pero necesario para el editor de Android, incluido en la mayoría de los paquetes Eclipse IDE). Otros entornos de desarrollo o IDE: Apache Ant 1.6.5 o posterior para Linux y Mac, 1,7 o posterior para Windows. JDK 5 or JDK 6(JRE por sí solo no es suficiente). No es compatible con compiladores de GNU para Java (gcj). El plugin de herramientas de desarrollo de Android (opcional). Nota: Si el JDK se ha instalado en su computadora en donde se encuentra desarrollando su proyecto Android, asegúrese de que la computadora cumpla con los requisitos enumerados anteriormente. En particular, tenga en cuenta que algunas distribuciones de Linux pueden incluir el JDK 1.4 o compiladores de GNU para Java, que no son compatibles para el desarrollo de un proyecto Android.
  • 72. 72 3.8.3 Publicación Las instrucciones sobre cómo preparar su aplicación para la implementación y la forma de publicar cuando esté listo. Android contiene múltiples herramientas de publicación que ayudaría al usuario a estar al día con sus dispositivos movil al momento de actualización, requerimiento, como también redes sociales, plugin, como también cuenta con un Google play store donde encontramos gran variedad de aplicaciones necesarias para optimizar nuestro dispositivo móvil y Widgets, contactos y websites en la pantalla principal de Android para un fácil acceso a estos. Además, encontraremos constantemente publicaciones referentes a este sistema operativo, ya que son millones de desarrolladores que lo prefieren por ser el sistema operativo más popular y de libre acceso a código abierto. En definitiva, un teléfono Android no sólo nos servirá para hacer llamadas o enviar y recibir mensajes, sino que podemos ir mucho más allá gracias a las utilidades que nos brinda, con lo cual podemos convertir al dispositivo en un verdadero centro de entretenimiento multimedia, y al mismo tiempo una terminal para realizar diversos procesos relacionados a nuestro trabajo. Entre las diversas herramientas es importante destacar los importantes servicios que nos brinda Google. Desde la posibilidad de administrar y organizar nuestro correo electrónico con Gmail, navegar por internet con Chrome, pasando por la utilización de comandos de voz y programas de edición, hasta incluso herramientas para mantener la seguridad de nuestras operaciones y archivos, Google nos ofrece una gran gama de aplicaciones, que nos permitirán mejorar notablemente el uso que le demos a nuestro nuevo teléfono inteligente.
  • 73. 73 Herramientas Google. Tomado de (https://www.androidexperto.com/aprender-android/herramientas-google- que-todo-usuario-principiante-de-android-debe-usar/) 3.8.4 Emuladores El "Android Emulator" es un dispositivo virtual que corre en la computadora. El emulador tiene como finalidad ayudarte a diseñar y depurar tus aplicaciones en un ambiente similar al que existe en un dispositivo real. Existen distintas versiones del emulador tanto para Windows como para Mac Os como para Linux. El SDK de Android incluye un emulador de un dispositivo móvil virtual que se ejecuta en una computadora, y que puede ser utilizado para el prototipo, desarrollo y pruebas de aplicaciones para dispositivos Android, previamente a la ejecución en un dispositivo real. El emulador imita todas las características de un dispositivo real, tanto de hardware, como de software, además está basado en QEMU, un emulador de procesadores, que cuenta también con capacidades de virtualización.
  • 74. 74 3.8.5 ¿Cómo Emular Android? Es muy sencillo emular un teléfono con Android en un sistema operativo, sólo se debe descargar el SDK de Android, una vez descargado, se descomprime el archivo, se busca la carpeta tools que se encuentra dentro del archivo que se descargó y se ejecuta el archivo emulator que se encuentra dentro de la carpeta tools. Siguiendo estos pasos se obtendrá un emulador completo para un dispositivo ejecutado en Android. A continuación, se muestra la vista del emulador para la versión 2.2 de Android: Emulador para Android 2.2 3.9 Dalvik (máquina virtual) Dalvik es la máquina virtual de proceso dentro de Android, es el software que ejecuta las aplicaciones en los dispositivos con Android. Una máquina virtual de este tipo, se ejecuta como un proceso normal dentro de un sistema operativo y soporta un solo proceso. Su objetivo es el de proporcionar un entorno de ejecución independiente de la plataforma de hardware y del sistema operativo, que oculte los detalles de la plataforma subyacente y permita que un programa se ejecute siempre de la misma forma sobre cualquier plataforma.
  • 75. 75 Dalvik se ha escrito de manera que un dispositivo pueda ejecutar varias máquinas virtuales de manera eficiente. Dalvik VM ejecuta archivos en los Dalvik ejecutables (DEX) formato que se ha optimizado para la memoria mínima. VM es un registro de base, y ejecuta las clases compiladas por un compilador de lenguaje Java que se han transformado en él. Dex formato de los incluidos "dx" herramienta. Condesa, (2011). Uno de los elementos clave de Android es la máquina virtual de Dalvik que se encuentra en la capa de ejecución y que ha sido diseñada para asegurar que la multitarea se ejecute de manera eficiente, para optimizar la memoria y los recursos de hardware en el entorno de los teléfonos móviles, etc. En lugar de utilizar una tradicional máquina virtual Java (VM), tales como Java ME (Java Mobile Edition), Android utiliza su propia máquina virtual personalizada. Dalvik es una parte integral de Android, una máquina virtual, el software que ejecuta las aplicaciones, es open source y utiliza el kernel de Linux. Diagrama que representa el software que ejecuta la aplicación para realizar las multitareas efectuada por la máquina virtual. https://hipertextual.com/archivo/2014/02/que-es-dalvik-android/
  • 76. 76 Todo el hardware de Android y acceso a los servicios del sistema se gestiona mediante Dalvik como un nivel intermedio. Mediante el uso de una máquina virtual para organizar la ejecución de aplicaciones, los desarrolladores tienen una capa de abstracción que asegura que nunca tendrá que preocuparse de una aplicación de hardware en particular. Por otra parte, también se puede decir que una máquina virtual Es una implementación de Software de una máquina (por ejemplo, una computadora) que ejecuta programas como una máquina física. Específicamente, una máquina virtual de procesos está diseñada para ejecutar un único programa, lo que quiere decir que soporta un único proceso. Hay que señalar que el código ejecutable final de Android, como resultado de la máquina virtual de Dalvik, no se basa en el bytecode de Java, sino que se basa en los archivos .dex. Esto significa que no se puede ejecutar directamente el Bytecode de Java, sino que hay que comenzar con los archivos .class de Java y luego convertirlos en archivos .dex.
  • 77. 77 Capítulo 4.- Conceptualización De Procesos Y/O Hilos Los procesos son una de las abstracciones más antiguas e importantes que proporcionan los sistemas operativos: proporcionan la capacidad de operar (pseudo) concurrentemente, incluso cuando hay sólo una CPU disponible. Convierten una CPU en varias CPU virtuales. Sin la abstracción de los procesos, la computación moderna no podría existir. En este capítulo examinaremos con gran detalle los procesos y sus primeros primos, los hilos (threads). (Tanenbaum, 2009, pag 83). 4.1 Conceptos de Procesos y/o hilos Proceso es un programa que se encuentra en ejecución, es decir, un conjunto de instrucciones que se encuentran actualmente en ejecución en un computador. Estos procesos son gestionados por el Sistema Operativo y están formados por:  Instrucciones que van a ser ejecutadas por el microprocesador.  Los valores de los registros en un momento dado.  Memoria que ha reservado para su ejecución.  Otra información que permite al Sistema Operativo la planificación de dicho proceso (Pérez y Jiménez, 2013). Ejecución de varios procesos en Linux.