Android - What Is It
fenix_8921 de Septiembre de 2013
3.510 Palabras (15 Páginas)430 Visitas
Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/)
Android es un sistema operativo móvil basado en Linux, que junto con
aplicaciones middleware está enfocado para ser utilizado en dispositivos móviles como teléfonos
inteligentes, tabletas, Google TV y otros dispositivos. Es desarrollado por la Open Handset
Alliance, la cual es liderada por Google. Este sistema por lo general maneja aplicaciones como
Market (Mercado) o su actualización, Google Play.
Fue desarrollado inicialmente por Android Inc., una firma comprada por Google en 2005. Es el
principal producto de la Open Handset Alliance, un conglomerado de fabricantes y desarrolladores
de hardware, software y operadores de servicio.
Tiene una gran comunidad de desarrolladores escribiendo aplicaciones para extender la
funcionalidad de los dispositivos. A la fecha, se han sobrepasado las 600.000 aplicaciones (de las
cuales, dos tercios son gratuitas) disponibles para la tienda de aplicaciones oficial de Android:
Google Play, sin tener en cuenta aplicaciones de otras tiendas no oficiales para Android, como
pueden ser la App Store de Amazon o la tienda de aplicaciones Samsung
Apps de Samsung. Google Play es la tienda de aplicaciones en línea administrada por Google,
aunque existe la posibilidad de obtener software externamente. Los programas están escritos en
el lenguaje de programación Java. No obstante, no es un sistema operativo libre de malware,
aunque la mayoría de ello es descargado de sitios de terceros.
El anuncio del sistema Android se realizó el 5 de noviembre de 2007 junto con la creación de
la Open Handset Alliance, un consorcio de 78 compañías de hardware, software y
telecomunicaciones dedicadas al desarrollo de estándares abiertos para dispositivos
móviles. Google liberó la mayoría del código de Android bajo la licencia Apache, una licencia libre y
de código abierto.
La estructura del sistema operativo Android se compone de aplicaciones que se ejecutan en
un framework Java de aplicaciones orientadas a objetos sobre el núcleo de las bibliotecas de Java
en una máquina virtual Dalvik con compilación en tiempo de ejecución. Las bibliotecas escritas
en lenguaje C incluyen un administrador de interfaz gráfica (surface manager), un
framework OpenCore, una base de datos relacional SQLite, una Interfaz de programación
de API gráfica OpenGL ES 2.0 3D, un motor de renderizado WebKit, un motor gráfico SGL, SSL y
una biblioteca estándar de C Bionic. El sistema operativo está compuesto por 12 millones de líneas
de código, incluyendo 3 millones de líneas de XML, 2,8 millones de líneas de lenguaje C, 2,1
millones de líneas de Java y 1,75 millones de líneas de C++.
Si ya llevas un tiempo familiarizado con Android, seguramente has escuchado el término Kernel.
Mucho se habla de él y pocos saben realmente de que se trata.
Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/)
El Kernel (Núcleo) es la parte fundamental del sistema operativo y es el que se encarga de dar
acceso del hardware a los programas. Digamos que es el encargado de recoger y gestionar las
ordenes que le llegan de las aplicaciones y mandárselas al hardware para después recoger las
respuestas y devolverlas a las aplicaciones, por ejemplo, el desbloquear la pantalla al pulsar un
botón. Es el corazón de cualquier sistema operativo.
En pocas palabras: "El Kernel es un conjunto de programas que logran conectar el hardware del
equipo con el software, en este caso, el sistema operativo Android.".
Android tiene como núcleo Linux, específicamente el Kernel 2.6.0. En este núcleo existe lo que
han llamado como Dalvik, una máquina virtual de Java(JVM), que ha sido creada por Google para
dispositivos con poca memoria y poca capacidad de proceso. En Android, cada aplicación corre
en su propio proceso y tiene su propia instancia en la máquina virtual Dalvik. Una máquina virtual
es como si tuviésemos un ordenador independiente en donde se ejecutan las aplicaciones, estas
aplicaciones están desarrolladas en Java con las funcionalidades que les ofrece el SDK de
Android. Las aplicaciones se ejecutan en la máquina virtual y esta a su vez se ejecuta sobre el
kernel.
Dalvik ejecuta archivos .dex en lugar de los clásicos .class de la máquina virtual de Java de
escritorio. Éstos están más optimizados para los dispositivos móviles y son más compactos. En
esta máquina virtual no disponemos de toda la API de JavaSE o JavaME, sino que podemos
utilizar un subconjunto llamado Core Libraries, que han desarrollado los ingenieros de Google
únicamente para Android.
Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/)
GOVERNORS
I) MANUAL:
Acá hablaremos de 19 governors.
1) Ondemand
2) Ondemandx
3) Conservative
4) Interactive
5) Interactivex
6) Lulzactive
7) Smartass
8) SmartassV2
9) Intellidemand
10) Lazy
11) Lagfree
12) Lionheart
13) LionheartX
14) Brazilianwax
15) SavagedZen
16) Userspacce
17) Powersave
18) Performance
1) Ondemand:
Es el governor por defecto en casi todos los kernels stock. Una de las principales características de
este governor es la de cambiar a la máxima frecuencia tan rápido como lo requiere el CPU
asegurándose de la responsabilidad del system. Efectivamente, usa la ocupabilidad del CPU
usando el parámetro “Cuan crítico es el rendimiento en este momento”. Así que el CPU salta a la
máxima frecuencia mientras lo amerita el uso y baja de forma gradual cuando el CPU esta menos
cargado o aprovechado en el fondo. Aunque muchos de nosotros consideramos este governor
como uno de los mejores, suele quedarse corto en cuanto al ahorro de la batería y al rendimiento
en los parámetros por defecto. Una de las razones potenciales para que el ondemand governor no
tenga un grandioso “performance” es que ese governor decide la próxima frecuencia al mínimo de
requerimiento durante un intervalo simple. Esta mínima frecuencia de requerimiento es la
Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/)
responsable del cambio de requerimiento pero usualmente no se refleja en la carga real del CPU lo
que probablemente causa el cambio frecuente entre las frecuencias altas y las bajas.
2) Ondemandx:
Básicamente es un ondemand con perfiles supend/wake. Este governor está dirigido a ser
amistoso con la duración de la batería. Cuando la pantalla está apagada, la máxima frecuencia se
queda suspendida en la 500 MHz. Incluso aunque ondemand es el governor por defecto de
muchos kernels stock y considerado como el más seguro y estable, el soporte de
ondemand/ondemandX depende de la capacidad del CPU para hacer el cambio de frecuencia y las
transiciones de las mismas.
3) Conservative:
Es un poco más lento que el governor ondemand ya que sube de escala lentamente para salvar
batería. El governor conservative está basado en el governor ondemand. Funciona básicamente
igual ajustando dinámicamente las frecuencias basadas en la utilización del procesador. Como
sea, el governor conservative incrementa y reduce la velocidad del CPU de manera más gradual.
Simplemente, sube la frecuencia paso a paso sin saltar una y baja rápidamente la frecuencia de
manera drástica ajustándola al uso que se le da de forma progresiva al CPU, dejando a un lado el
salto a la máxima frecuencia. El factor “sampling down factor” actúa como un multiplicador negativo
del “sampling rate” para reducir la frecuencia que el “scheduler” usa. Por ejemplo (para que sea
entendido) si el ”sampling rate” es igual a 20.000 y el “sampling down factor” es 2, el governor
utiliza el cambio de frecuencia del CPU cada 40.000 microsegundos.
4) Interactive:
Puede ser considerado más rápido que el ondemand. Mas rápido = menos batería. Interactive está
diseñado por para un estado latente interactuando con el trabajo de carga del CPU. En lugar de
tomar una muestra en cada intervalo como lo hace ondemand, determina como la escala sube
cuando el CPU corre fuera de profundidad. Este governor presenta unas ventajas, por ejemplo: a)
Mayor consistencia, porque lo que hace básicamente es cargas los parámetros del CPU en un
contexto “workqueue”, pero lo hace en un contexto temporal, que te da más consistencia en la
carga de muestra del CPU. b) Mayor prioridad en el incremento de la frecuencia del CPU, así le da
mayor mantenimiento a las tareas del CPU dándole el beneficio al rendimiento. Es mas “inteligente”
que el ondemand por la estabilidad de las optimizaciones. Por qué?? Las muestras del CPU
cargan cada “X” microsegundos (como el ondemand) pudiendo ahorrar batería con el encendido
del CPU cada “X” microsegundos, Que conduce a pérdida de fotogramas, la interacción de
interfaz de usuario, etc. en lugar de un muestreo del CPU a una velocidad determinada, el
...