Porque Android siempre sera mas lento que iOS



Porque Android siempre sera mas lento que iOS



No, este no es un artículo de opinión como muchos que hay en la Red que intenta justificar que iOS pueda ser mejor que Android como sistema operativo móvil o viceversa. Esa disquisición es exclusiva del factor opinión de cada uno, lo que implica que obtener una respuesta a esa pregunta es virtualmente imposible. Son dos sistemas muy buenos cada uno, y que dan solución a diferentes sectores de población que buscan diferentes cosas. Ni mejor ni peor, distintos y geniales en sí mismos.

Este artículo trata de explicar por qué en su rendimiento, Android siempre va por detrás de iOS, hecho constatado y no basado en una opinión. Son multitud los estudios de rendimiento que demuestran que el nuevo iPhone 4S da un rendimiento de CPU y gráficos de 2 a 4 veces superior que cualquiera de los últimos modelos Android del mercado. Pero, ¿por qué un procesador A5 de Apple a 800Mhz. supera en casi 4 veces el rendimiento de un procesador casi igual, a 1,5Ghz.? ¿Cuál es el motivo?



unix



Pues este se basa en la infraestructura sobre la que se soportan ambos sistemas. Tanto iOS como Android tienen una base similar, basado en un núcleo de sistema operativo Unix. En el caso de iOS se basa en el desarrollo Darwin que da núcleo también al propio OS X, y en el caso de Android se basa en el núcleo Linux que usan sistemas como Ubuntu o cualquier otro. Hasta ese punto, el núcleo base es igual de bueno.

Pero si avanzamos un nivel nos encontramos con algo que es evidente y se deriva de una de las máximas que Steve Jobs aprendió en sus primeros años de carrera: “para obtener un máximo rendimiento, todo el que hace software debería fabricar su propio hardware para él”. Partiendo de esta premisa, todos sabemos que los modelos de iPhone que hay en el mercado se pueden contar con los dedos de la mano: tenemos 5 modelos de iPhone, 2 modelos de iPad y 5 de iPod Touch. Nada más. Estamos hablando de un sistema operativo, iOS, que está diseñado para dar servicio a 12 dispositivos que han aparecido en los últimos 5 años. Y si tenemos en cuenta que la última versión no es soportada por todos ellos, cerramos aun más el número. En total, iOS 5 es soportado por 3 iPhones, 2 iPad y 3 iPod Touch, total 8 dispositivos.


GNU



Partiendo de esa base, y que Apple controla el hardware que fabrica, el sistema operativo puede llevar a niveles más cercanos al núcleo porque ellos siempre controlan las configuraciones de hardware. Es algo muy similar a lo que sucede con los ordenadores Mac. Es Apple quien se encarga de cerrar las configuraciones de cada uno de sus modelos y dar soporte de controladores a cada configuración. Por lo tanto, teniendo un hardware comprobado y certificado, los problemas de compatibilidad desaparecen prácticamente en su totalidad.

Por ese motivo, programar para iOS (de manera oficial) es práctica obligada usando las librerías públicas que Apple pone al servicio de los desarrolladores en su kit de desarrollo, y no las partes privadas del mismo que Apple cambia libremente de versión a versión y que provocarían (como pasa con multitud de aplicaciones jailbreak) que dejaran de funcionar en actualizaciones del sistema. Por eso Apple ha de aprobar las aplicaciones antes de publicarlas, y crea un modelo cerrado como el que usa Microsoft en Windows Phone 7 o en el futuro Windows 8.

Pero si miramos al mundo Android es totalmente diferente. En esto, Android se parece más a los PCs. Es decir, hay, literalmente cientos de terminales, cada mes salen más, multitud de marcas fabrican para este sistema libre… desde marcas conocidas a fabricantes chinos de nombres desconocidos. Y para poner un sistema Android cada fabricante elige el procesador que quiere, la configuración, memoria, placas, procesadores gráficos… cada terminal Android puede y es cada uno como quiere el fabricante, lo que implica que no hay una configuración cerrada o certificación de componentes. Solo han de cumplir una serie de normas básicas de compatibilidad con sets de instrucciones y poco más.



Android




Lo que esto implica es obvio: hacer un sistema operativo que garantice la total compatibilidad con configuraciones tan variadas no es tarea fácil. Para ello, Android ha tenido que incorporar a su sistema una capa de ejecución en software, que se coloca por encima del hardware, y que garantiza la compatibilidad. Una capa creada en Java. Y ahí es donde empieza el problema, porque el propio sistema no se ejecuta (porque no puede ya que no podría garantizar el correcto funcionamiento del mismo en todos los dispositivos) sobre el hardware del equipo como hace iOS, con un sistema operativo colocado junto al núcleo del sistema. En el caso Android, tenemos una máquina virtual Java que garantiza la compatibilidad y que es la que ejecuta el propio sistema. Y dicha máquina virtual, es un programa.

Por lo tanto, la diferencia está encima de la mesa: iOS ejecuta el sistema operativo directamente sobre el hardware del dispositivo (ya que dicho hardware está controlado) y el código que se genera para él (programado normalmente en lenguaje Objective-C) genera en sus compilados código máquina que se ejecuta contra el dispositivo sin ninguna capa intermedia. Pero Android, que en su mayoría ejecuta aplicaciones Java, lo que ejecuta es un código intermedio que es ejecutado por una máquina virtual software (un programa) que se está ejecutando contra la capa del sistema.

De hecho, es una realidad del mundo Android, que muchas de sus aplicaciones o juegos no funcionan con todos los dispositivos (a pesar de seguir el “manual de desarrollo”). Muchas compañías y desarrolladores pierden más tiempo haciendo que sus aplicaciones funcionen para todos los dispositivos, que en la propia programación del mismo. Aunque este problema se va solucionando con el tiempo pues Google va optimizando el código de su sistema, este sigue siendo una realidad. Por este motivo, Windows Phone 7 (el tercero en discordia) exige una certificación de componentes hardware a los fabricantes para certificarlos en su sistema operativo. WP7 no se instala en cualquier móvil, solo en los que tenga una combinación de componentes certificados por Microsoft, para que así este se ejecute como hace iOS y no como hace Android.



IOS



Cierto es que existe la posibilidad de usar el Kit de Desarrollo Nativo (NDK) de Android, que permite programar directamente aplicaciones por debajo de la máquina virtual de Java, pero las posibilidades de obtener incompatibilidad en los desarrollos es bastante más alta. Por lo tanto, dicha NDK es principalmente usada por fabricantes que hacen sus propios desarrollos para sus propios terminales (como Samsung, por ejemplo), conociendo cada uno de estos los componentes que monta y por lo tanto, puede sacar el máximo rendimiento.

Por lo tanto, y a grosso modo, un dispositivo Android necesitará al menos el doble o triple de potencia que un iOS para alcanzar rendimientos similares, y aun así puede que no los consiga. De hecho, las posibilidades que dan entornos de desarrollo de juegos 3D como Unreal Engine en los nuevos iPhone 4S o iPad 2, con efectos de luces o de hojas y polvo en el viento, han estado hasta ahora reservados a ordenadores y consolas de última generación. Pero ahora también están disponibles por primera vez para entorno móvil, sobre iOS.

A ese respecto, y esto es una realidad constatada, no una opinión, Android todavía está muy lejos. De hecho, y para muestra un botón, la nueva consola Sony PS Vita que tiene una capa de juegos basada en Android, ofrecerá una tienda de aplicaciones para juegos independientes, con menores rendimientos y con aprobación previa (tipo Apple). Los juegos que realmente saquen rendimiento al potente hardware, estarán basados en el propio sistema de la consola y no en su compatibilidad Android, por razones obvias.



Porque Android siempre sera mas lento que iOS



Eso son los dos sistemas, ni mejor ni peor: diferentes. No quiero que este artículo se interprete como uno más que dice qué bonito es Apple y qué feo es Android, porque no lo son. Android es un gran sistema operativo móvil que da un excelente servicio a millones de usuarios en el mundo y que tiene infinidad de grandes dispositivos, al igual que iOS es otro magnífico sistema con grandes terminales y dispositivos.

Es cuestión de elección cuál sea mejor, pero la realidad técnica es la que es y no está mal que la conozcamos y sepamos que, en cuestión de memoria RAM o megahercios de velocidad, no pueden compararse ambos sistemas porque la velocidad de los mismos depende de otros factores. Factores que hacen que 800Mhz sean más rápidos que 1.2Ghz, y que no sirva de nada que un dispositivo tenga 512Mb. y otro 1Gb de memoria, porque cada uno usa la memoria de manera totalmente diferente.



Fuente