Llega el día en que uno enciende por primera vez un móvil Android y todo cambia, más aún si no has tenido anteriormente un smartphone. Te encuentras con un mundo nuevo, con un teléfono que ya de fábrica puede hacer tantas cosas que muchas ni las habías imaginado, y tras la primera impresión de no saber muy bien por donde empezar con esa especie de ordenador en miniatura la mayoría entramos corriendo a las aplicaciones. Hay muchas y encima puedes tener muchas más, porque cuando entras al Market ¡puedes descargar miles!.
Acabas de dar el primer paso para sufrir durante los días siguientes tanto las alegrías del «síndrome del probador compulsivo de aplicaciones» durante los cuales irás por las calles enseñando a todo el mundo cuántas aplicaciones tienes y todo lo que hacen… como las primeras decepciones cuando un día te encuentres con la notificación que acompaña estas líneas.
Lo primero que nos solemos preguntar es como es posible que ya no tengamos espacio si al mirar nuestra tarjeta microSD todavía hay espacio, lo segundo cuando ya nos nos deja instalar ninguna aplicación más es… ¿cuál borramos y cuáles necesitamos de verdad?.
La segunda pregunta podría dar lugar a un artículo con las aplicaciones más desinstaladas de Android (algunas de ellas las puedes ver en este artículo sobre aplicaciones clásicas), mientras que la primera tiene una respuesta muy sencilla; por defecto las aplicaciones se instalan en la memoria interna del teléfono que por supuesto es de unas dimensiones mucho más modestas que una tarjeta microSD. Y es que si hablamos por ejemplo de la HTC Desire nos encontramos que al ir a instalar nuestras primeras aplicaciones disponemos de aproximádamente 140Mb libres, poco, muy poco como notarás casi nada más empezar.
Escuchando las quejas de los usuarios Google presentó con la versión 2.2 (Froyo) una característica que no sólo era muy demandada sino que además ya se podía realizar desde hacía un tiempo de forma no oficial (y más eficiente): el App2SD, o lo que es lo mismo, el poder mover una aplicación instalada a la tarjeta SD aprovechando la gran capacidad de las mismas. Este método soluciona el problema pero sólo en parte.
Por un lado ganas espacio que es lo que se busca pero por otro se presentan varios problemas. El primero de ellos es que los desarrolladores de las aplicaciones deben incluir en estas la posibilidad de ser movidas, es decir, no se pueden mover todas. El segundo problema es que los widgets deben seguir en la memoria interna porque si los mueves ya no se mostrarán al reiniciar el teléfono. El tercero es… que sólo se pueden mover las aplicaciones por lo que nos olvidamos de la posibilidad de mover también la Dalvik-Cache (máquina virtual de Java) que también ocupa un buen espacio.
Para mover las aplicaciones tendrás que acceder en el Menú a la Administración de Aplicaciones y entrando en cada una de ellas pulsar el botón Mover a la tarjeta SD si se encuentra habilitado, o también puedes usar aplicaciones como App 2 SD que escanea todas las aplicaciones y te muestra las que se pueden mover y las que no pudiendo mover una o una o moverlas todas.
A2SD
Antes de que Google hiciera algo al respecto los «cocineros» que nos sorprenden todos los días con nuevas y mejores ROMS (que los fabricantes tardan meses en presentar) ya estaban investigando una posible solución. Ésta se dio en forma de script que al ejecutarse movía absolutamente todas las aplicaciones a la tarjeta SD. Y no sólo eso, sino que las siguientes instalaciones ya se efectuan directamente en la propia memoria externa.
¿Cómo se consigue esto? Pues lo primero teniendo un teléfono «rooteado«, segundo creando una partición donde se instalarán las aplicaciones en formato Ext (ext2/3/4 son casi siempre aceptadas pero ya trataremos más en profundidad del tema en un artículo que estamos preparando para el Foro) en la tarjeta SD, ya sea mediante el ordenador o mediante el «recovery» que usamos en nuestro terminal para «flashear» las ROMs. Dándole a esa partición un espacio mínimo de 512Mb y en principio un máximo de 2Gb (al parecer un tamaño mayor genera problemas de lectura). Y tercero, instalando una ROM que incluya la función A2SD.
Este método lo que hace es instalar las aplicaciones diréctamente en la SD pero crear un enlace simbólico en la memoria interna del teléfono que seguirá pensando que están ahí.
Las ventajas de este método son evidentes en cuanto nos damos cuenta de que todas las aplicaciones se mueven a la partición Ext de la tarjeta, incluídos los widgets que se siguen cargando sin problemas. Sin embargo esto no quiere decir que no se instale nada en la memoria interna ya que la Dalvik-Cache seguirá ahí aumentando su tamaño por cada aplicación instalada, así que aunque el espacio se reduzca mucho menos si comprobaremos que con cada aplicación el espacio sigue decreciendo.
A2SD+
El siguiente paso lógico era conseguir aún más espacio en la memoria interna y para ello ¿qué otra cosa se podía pasar también a la tarjeta SD? La Dalvik-Cache por supuesto. Hemos dicho que la Dalvik-Cache es la Máquina Virtual de Java pero ¿qué es lo que hace exactamente?. Una explicación sencilla que nos da el maestro Cyanogen sería que revisa todas las aplicaciones y librerías instaladas, organizando un directorio de dependencias optimizado, de manera que cualquier aplicación después pueda acudir a él y ejecutarse rápidamente. Por ello cuando instalamos una nueva ROM desde cero tras haber borrado todo tarda el teléfono tantos minutos en el primer inicio.
Si vamos más allá Yeikos nos explica que en la Dalvik-Cache lo que se guarda son versiones optimizadas de cada aplicación (incluyendo sólo su código compilado sin gráficos, bases de datos, contenido multimedia, etc) en formato DEX (en vez de APK) que pueden llegar a ocupar hasta un 45% menos de espacio, pero que si sumamos un número suficiente llegaremos a quedarnos sin memoria iguálmente.
Hay que recordar que los requisitos para A2SD+ son los mismos que para A2SD incluyendo la partición de la tarjeta SD.
El futuro del A2SD
Has movido todos los datos posibles a la memoria externa, puedes instalar aplicaciones casi de forma ilimitada pero por supuesto esto también tiene su contraparte, la vida de la tarjeta SD se va a resentir con su consiguiente deterioro y posible corrupción de datos y muchas veces leerás las comparativas de velocidad entre ejecutar una aplicación desde la memoria interna o desde la tarjeta SD, así como recomendaciones para que esta sea mínimo clase 6 para que su velocidad de lectura/escritura sea superior.
Lo cierto es que en mi caso ahora mismo uso una microSD clase 4 de 8Gb y tampoco aprecio diferencias de rendimiento pero cada uno deberá sacar sus propias conclusiones porque en cuanto a liberar la memoria interna de momento se ha llegado al máximo y los nuevos métodos que están surgiendo (Data2Ext, Data2Whatever, etc) así como los nuevos formatos de particiones (Btrfs) con los que se experimenta buscan ya no conseguir más espacio sino aumentar la velocidad de acceso y ejecución de las aplicaciones así como proteger en la medida de lo posible los datos.
Pero como hemos dicho esa es otra historia y en breve publicaremos algo en nuestro Foro.