martes, 14 de abril de 2015

El Android "sin Google"

En lo que nos fijamos principalmente de un smartphone o tableta, es en el tamaño de su pantalla. Si la pantalla es muy pequeña y hemos de leer mucho, nos cansaremos la vista fácilmente. Por mi experiencia personal, no conviene leer mucho rato al día, en pantallas de menos de 5 pulgadas. Recordemos que las pulgadas de una pantalla, se refieren a la longitud de su diagonal principal. Una pulgada es equivalente a 2,54cm.

El detalle en que nos solemos fijar después, es en la versión del sistema operativo que lleva el dispositivo, Android ó iOS ó Windows.

Evidentemente el precio también cuenta, y quizás es el primer parámetro en el que se fija, el usuario menos experto.

Suponemos que ese smartphone llevará WhatsApp. Un smartphone en el que no podamos usar el WhatsApp, no nos lo vamos a comprar seguramente. Este es el caso de los smartphones con FirefoxOS.

Centrados ya en Android, si somos usuarios más experimentados, miraremos la versión de sistema operativo que lleva el dispositivo. En el caso de Android, miraremos si lleva, a lo sumo, Android Kit Kat, o si tenemos la suerte de que nuestro dispositivo, ya lleve Android Lollipop.

Los usuarios más experimentados, también van a tener en cuenta, el hardware de los dispositivos antes de comprar. Si es un Snapdragon 400 ó 800, o si es un Intel Z2520 o un Z3735D etc ...

Como contaba en mi artículo anterior, depende del fabricante que un dispositivo, reciba actualizaciones de Android o no y durante cuanto tiempo las va a recibir.

Me atrevo a decir, que cuando uno ha fijado su presupuesto a la hora de comprar un dispositivo, y el tamaño de la pantalla, lo más importante va a ser la versión de Android.

Google es la responsable del proyecto de código abierto AOSP (Android Open Source Project). Posteriormente Google añade una "capa de software propietario" que son las Google Apps y los Google Services.

El hecho de que los fabricantes a partir de AOSP, "fabriquen" sus propias versiones de Android, adaptadas al hardware de su dispositivo, introduce un problema añadido, al de la fragmentación de Android.

Android está muy fragmentado, porque sus usuarios, tienen versiones muy dispares. Aún hay una base de usuarios grande de la versión 2.2 y no digamos de las versiones 4.0, 4.1 y 4.2. La base de usuarios de Kit Kat (4.4) ya es significativa y la de Lollipop (5.0) es muy pequeña.

Para los fabricantes de dispositivos, es un problema tener que personalizar y adaptar a sus dispositivos AOSP, y actualizar las versiones de Android. Han de mantener una plantilla de ingenieros especializados en esta tarea.

De lo buenos que sean esos ingenieros, y de la cantidad de recursos económicos que dedique el fabricante a esta partida, dependerá que la experiencia del usuario de Android, en esa marca, sea mejor o peor. Hay mucha diferencia de unas marcas a otras. Los fabricantes más grandes, tienen versiones de Android más optimizadas y que funcionan mejor, que las de otros fabricantes pequeños.

Muy pocos fabricantes consiguen beneficios significativos en la venta de smartphones. La competencia es feroz.

En este escenario, tenemos a la empresa Cyanogen. Totalmente especializada en una única tarea, desarrollar versiones de Android, sin capa de personalización y sin las Google Apps, ni los Google Services, para la mayoría de dispositivos. Un Android sin Google.

¿Pueden competir los departamentos de Ingeniería de Sistemas Operativos de las principales marcas, con el Departamento de Ingeniería de Cyanogen ?

Mi respuesta, es que solo, las grandes marcas. De hecho, es muy común, que la versión de Cyanogen para un dispositivo, funcione mejor y sea más reciente, que la de la propia marca. Cyanogen actualiza versiones de Android de ciertos dispositivos y el fabricante no. En muchos casos, la propia comunidad de desarrolladores de Android, actualiza, en base al código fuente de Cyanogen, antes que el propio fabricante.

Vemos algo que ya hemos visto otras veces en la historia de la computación: "el sistema operativo o más genéricamente, el software, es más importante que el hardware." Esto lo hemos visto durante muchos años, con el dominio del Windows Microsoft. Y de como Microsoft, presionaba y controlaba a todos los fabricantes de ordenadores.

¿Es Google la próxima Microsoft ? ¿Va a acabar controlando y presionando Google a todos los fabricantes de dispositivos Android? ¿Es Cyanogen el salvador de las operadoras y fabricantes? Todo parece indicar que si. Y no solo a los fabricantes de hardware, también a las operadoras de telefonía móvil.

Ahora es más fácil que entendamos, una noticia que nos sorprendió a todos, hace unas semanas:

http://www.elmundo.es/blogs/elmundo/el-gadgetoblog/2015/03/26/cyanogen-respira.html

Hasta pronto !!




martes, 7 de abril de 2015

Fundamentos de Android I

Android e iOS, los sistemas operativos móviles de Google y de Apple respectivamente, en dispositivos móviles, smartphones y tabletas, han hecho una Internet "mucho más grande" al permitir a sus usuarios navegar y usar la red desde cualquier lugar y a cualquier hora.

Un elemento fundamental de estos sistemas operativos, son sus tiendas de aplicaciones, Google Play e Itunes. Un lugar centralizado dónde los usuarios pueden encontrar millones de aplicaciones para sus dispositivos.

Android, la plataforma móvil de Google, desde su primera versión en Noviembre de 2007, es hoy, la plataforma móvil, más usada del mundo, con una cuota de mercado del 87% (cifra de Abril de 2015).

A mediados de 2013 se activaban 1,5M de dispositivos Android cada dia y a finales de 2013, se alcanzaron los 900M de dispositivos Android activados.

Andoid Open Source Project (AOSP) es un proyecto de software libre, del que Google es el responsable de su gestión y desarrollo. Sobre este proyecto Google añade los Google Mobile Services (Google Play, Google Maps, Google Now, etcétera) y las Google Apps (Gmail, Google Drive, Google Keep, etcétera). Todo esto último es completamente cerrado y propietario de Google. Todo este conjunto, lo vemos, en las versiones de Android de los smartphones y tabletas, de diferentes fabricantes, que usamos a diario.

Hagamos un poco de historia:

Año 2009: Google libera Android 2.0 Eclair y la cuota de mercado global de Android es del 2,8%
Año 2010: Google libera Android 2.2 y 2.3 Gingerbread y la cuota de mercado de Android es del 33%
Año 2011: Google libera Android 3.0 y 4.0 Ice Cream Sandwich y la cuota de mercado de Android es del 53%
Año 2012: Google libera Android 4.1 Jelly Bean y la cuota de mercado de Android es del 75%
Año 2013: Google libera Android 4.4 Kit Kat y la cuota de mercado de Android es del 78,6%
Año 2014: Google libera Android 5.0 Lollipop y la cuota de mercado de Android es del 84,7%

Cuando Google libera el código fuente de Android, los fabricantes de móviles inician, a veces el lento proceso, de adaptación de la nueva versión a sus dispositivos, smartphones o tabletas, y son  ellos los que finalemnte deciden, cuales de sus dispositvos recibiran la actualización a la nueva versión y cuales no.

El primer elemento fundamental de Android, es el Bootloader. El bootloader, es el que ordena al kernel de Android, arrancar. El kernel de Android está basado en el kernel de Linux.

Una Stock Rom, es una versión de Android suministrada por el fabricante del dispositivo. Son las versiones que nos encontramos instaladas, cuando compramos cualquier smartphone o tableta Android.

Una Custom Rom, para un dispositvo concreto, es una rom, hecha por la comunidad. Normalmente porque el fabricante ha decicido dejar de actualizar Android para ese dispositivo o porque el funcionamiento de la Stock Rom deja mucho que desear.

Google está desarrollando otro sistema operativo para ordenadores, Chrome OS. Android es muy interesante en pantallas de más de 10 pulgadas, por los millones de aplicaciones disponibles para la paltaforma, Y más interesante es aún, si puede correr sobre el hardware de siempre, el de nuestros ordenadores de sobremesa y ordenadores portátiles. Como iremos viendo, hardware mucho más potente que el de nuestros smartphones y tabletas. Por todo esto, es muy interesante el proyecto libre android-x86. Este mes de enero se liberó la versión 4.4-r2 de android-x86.

Android-x86, funciona, muy bien en ordenadores con procesador y gráfica Intel, tal y como voy contando en otros artículos de este blog. Hay otras versiones compiladas por la comunidad de android-x86 y actualmente, ya hay una versión de febrero de 2015, de android-x86 5.0 Lollipop.

Cuando instalamos android-x86 en nuestros ordenadores y corremos los benchmarks típicos de Android (Antutu o Passmark), nos damos cuenta de la diferencia de potencia de nuestro hardware de siempre comparado, con los SOCs ARM que llevan los smartphones y tabletas que se venden.

Para que nos hagamos una idea, después de ejecutar estos benchmarks, uno ve por ejemplo, que un portátil con Intel Celeron N2840 con pantalla de 15,6" es ya, un poco más potente que, un smartphone o tableta con Intel Atom Z3735D y más mucho barato. Ya no digamos, ordenadores con Intel i3,i5 ó i7. Como comenté en mi artículo anterior, un i7U da más puntuación en Antutu que un Nexus 9.

En un próximo artículo, veremos que significa tener el bootloader abierto ó cerrado, que es el recovery etc, hasta pronto !

lunes, 30 de marzo de 2015

Android-x86 4.4-r2: OpenGL ES 3.0,más de 50.000 puntos Antutu,1.5M de Apps disponibles y en pantallas de 15.6"


Estamos acostumbrados a ver Android KitKat, en pantallas muy pequeñas de móviles o tabletas. Ver Android KitKat funcionar en un ordenador, portátil o de sobremesa, con una pantalla mucho más grande, es una gran experiencia, por la rapidez de funcionamiento y por el tamaño de la pantalla, sobretodo.

Android-x86 es un proyecto libre que pretende, poder instalar Android en ordenadores. La última versión disponible es 4.4-r2 KitKat.

Al poder ejecutar diferentes Benchmarks (Antutu ó Passmark) dentro de Androidx86 KitKat, en nuestros ordenadores, nos damos cuenta de la poca potencia de la mayoría de SOCs ARM ó Intel Atom (Bay Trail), comparado con la potencia hardware de la mayoría de nuestros ordenadores. Para que nos hagamos una idea, los SOCs más avanzados de Intel Atom (ej, el Z3795) son solo "algo" más rápidos, y mucho más caros, que los procesadores Intel, presentes en ordenadores portátiles, como el "pequeño" Intel Celeron N2840 o el E2-3800 de AMD. Ya no digamos, si comparamos con ordenadores con procesador Intel i3, i5 ó i7. 

Téngase en cuenta que la puntuación de Antutu para el Nexus 9 (lleva el SOC más potente del mercado para Android), oscila alrededor de 57.414 puntos. En las últimas pruebas que he hecho de Android-x86 4.4-r2 sobre un Intel i7-3537U, la puntuación de Antutu es de alrededor de 70.000 puntos.

Es verdad que muchas apps de Android, estan pensadas para pantallas táctiles y para hacer uso de los sensores que tienen los móviles o tabletas Android. Estos sensores, no están presentes en nuestros ordenadores. Todas estas apps no las vamos a poder usar correctamente en Android-x86. Pero a pesar de todo esto, animo a comprobar lo bien y rápido que funcionan la mayoría de apps de Android, en Android-x86. 

Android-x86 4.4-r2, es la última versión disponible, mientras se escribe este artículo, y es de 01/01/2015. Esta versión, nos da OpenGL ES 3.0, sólo en ordenadores con procesador Intel y tarjeta gráfica Intel HD Graphics. En ordenadores con procesador Intel y tarjeta gráfica Radeon o NVIDIA, solo dispondremos de OpenGL ES 2.0. Para tarjetas gráficas más antiguas de Intel, habrá que comprobar una vez instalado, dentro de Android, Ajustes -> Acerca de, a ver de que aceleración gráfica OpenGL disponemos. Esto es importante para después obtener una buena experiencia con juegos de Google Play que hagan uso de 3D.

Para ordenadores con procesador AMD y tarjeta gráfica NVIDIA es mejor usar otras imágenes de Androd-x86 4.4, que ha desarrollado la comunidad.

En un próximo nuevo tutorial, vamos a ver como instalar la última versión de Android-x86 4.4-r2 (KitKat-x86), en un ordenador con Windows, tanto si el esquema de particinado del disco es MBR (normalmente ordenadores con Windows 7 y Windows anteriores), como si el esquema de particionado del disco es GPT (normalmente Windows 8 y Windows posteriores).

Vamos a repasar unos conceptos.

UEFI: Unified Extensible Firmware Interface. Es una especificación que define una interficie software entre el Sistema Operativo y el Firmware del hardware. UEFI se ha definido como reemplazo de la vieja interficie BIOS. En la práctica la mayoría de imagénes UEFI soportan compatibilidad con servicios BIOS. UEFI puede soportar diagnósticos y reparación de ordenadores, de forma remota, incluso sin sistema operativo.

GPT: GUID (Global Unique Identifier) Partition Table.A parte del esquema de partición de discos, que usa MBR (Master Boot Record), UEFI trabaja con un nuevo esquema de partición de discos: GPT. El esquema de particionado MBR, permite solo 4 particiones primarias por disco y discos de hasta 2 TB. GPT permite discos y particiones de hasta 8 ZB (109 TB).

SECURE BOOT: Es una característica de UEFI, cuya misión, es impedir la ejecucón de cualquier software no firmado por el fabricante. Esto impide que sea ejecutada cualquier amenaza, durante el inicio del sistema, pero por otra parte, también, impide la instalación de otros Sistemas Operativos

En un próximo tutorial, se hará todo el proceso desde Windows. Esta es una petición que suelen hacer los lectores en los comentarios, de los anteriores tutoriales, donde se hacía el proceso de instalación, de versiones más antiguas de Android-x86, desde Linux Ubuntu o Linux Mint.

Hay una imagen de Android-x86 4.4-r2 para BIOS y otra para UEFI. Se ha de usar la que corresponda, dependiendo de si nuestro ordenador es UEFI o BIOS. En ordenadores con Windows 7 y anteriores versiones de Windows, tenemos BIOS y esquema de partición de discos duros MBR.

Para instalarlo en ordenadores con BIOS y MBR, normalmente ordenadores con Windows 7 y versiones anteriores de Windows, es suficiente seguir las indicaciones del instalador de Android-x86, creando una nueva partición ext3 para él y cargando el arrancador GRUB en el disco duro.

En ordenadores con Windows 8, tenemos UEFI, Secure Boot y esquema de particionado de disco duro GPT, aquí es más complicado instalar Android-x86.

En el proceso de instalación, uno se puede equivocar y borrar particiones de su disco duro, por lo tanto se ruega encarecidamente, hacer una copia de seguridad completa del disco duro, antes de empezar, y tener mucho cuidado en todo el proceso y no dar ningún paso, hasta entender perfectamente lo que se está haciendo. 

Hasta pronto !!