Diferentes formas de mover aplicaciones a la SD

De HTCMania Wiki

Contenido

Introducción

La tarjeta SD del teléfono, como cualquier discos duro normal de PC, puede ser particionada (Se divide en dos o más secciones de sistemas de archivos diferentes). Normalmente, la tarjeta SD es sólo una única partición FAT32, lo cual está bien para almacenar tus fotos, mensajes, correos electrónicos, ... El teléfono también tiene su propia memoria flash interna (o NAND) de almacenamiento.

Tradicionalmente con Android, sólo se podía instalar aplicaciones en este almacenamiento NAND, no se podía instalar en la tarjeta SD. Así que si tienes una tarjeta SD de 32GB vacía, pero sólo 50 MB de almacenamiento interno del teléfono (sobre 130 en Desire), no serás capaz de instalar muchas aplicaciones. Esto se hizo para proteger las aplicaciones de cosas como la piratería:

  • No es fácil acceder a la ubicación donde las aplicaciones se instalan en memoria interna del teléfono (por lo general imposible sin root), por lo que no se puede, por ejemplo, comprar una aplicación, copiarla, pedir el reembolso, y a continuación, volver a instalarla.
  • Sin embargo, esto no es bueno para aquellos de nosotros que quiere instalar montones y montones de aplicaciones, legítimamente, por que se nos acaba el almacenamiento interno muy rápidamente.

Apps2SD de Froyo

Imagen de Apps2SD nativo de Froyo

Así que a Google se le ocurrió una manera de instalar aplicaciones en la tarjeta SD. Se crea una carpeta llamada algo así como. Android Secure Providers que contiene (creo) versiones cifradas de las aplicaciones, pero hay unos pocos inconvenientes:

  • Las aplicaciones no se instalan automáticamente aquí, hay que "mover-las" manualmente, o usando algunas aplicaciones para dicho fin.
  • No todas las aplicaciones son capaces de moverse, de hecho la mayoría de aplicaciones no lo son, y el desarrollador necesita actualizar su aplicación para permitirlo.
  • Algunas aplicaciones no son serán actualizadas y algunos desarrolladores no quieren permitirlo, por cualquier razón.
  • No todos los datos de la aplicación se mueven, la mayor parte sí, pero algunos datos se quedan en el teléfono, por lo que mucha gente todavía se queda sin memoria interna rápidamente.
  • Puede forzarse a todas las aplicaciones para ser instaladas en la SD por defecto, pero algunas son incompatibles. (Como los Widgets, que son incapaces de cargar debido a la tarjeta SD no está "preparada" al arrancar el teléfono).

A2SD/A2SD+

Antes de que Froyo existiera, a algunos programadores se les ocurrió una cosa llamada A2SD y más adelante se mejoró un poco con A2SD+. ¿Recuerdas que dije que la tarjeta SD es normalmente una partición FAT32 grande?, Bueno, pues A2SD trabaja con una tarjeta SD particionada en dos sistemas de ficheros. Una partición FAT32 para su normal lo de siempre y una segunda partición EXT.

Qué és EXT?

EXT es sólo un sistema de archivos, como FAT32 o NTFS, pero es el sistema de ficheros usado por Android internamente. La tarjeta SD es normalmente FAT32 porque es un sistema de ficheros "universal", que casi cualquier máquina será capaz de leer, mientras que los sistemas de ficheros EXT son generalmente, usados por Linux.

EXT tiene varias versiones diferentes. El más común es ext3. La principal diferencia entre ext2 y ext3 es "journalist", que es sólo una forma elegante de decir que si una operación (como copiar, escribir o leer) se interrumpe de forma inesperada (por ejemplo, por que se apaga el teléfono), evita la perdida o daño de datos. Como sabes, al encender el teléfono, dice "preparando la tarjeta SD" y tarda unos segundos en montarla, pero lo que realmente hace es, comprobar que la partición FAT32 no haya sufrido daños, porque la FAT no usa journalist.

Si has utilizado un equipo con el viejo Windows 98 días, recordaras aquella bonita pantalla azul Scandisk que tenía que ejecutarse cada vez que no se apagaba el equipo correctamente; pues esto es lo mismo. Pero entonces apareció Windows 2000/XP con NTFS, que también tiene journalist, lo que significa que había menos posibilidades de perder datos.

Así que si tienes la tarjeta SD dividido en EXT y FAT32, por lo general, no importa si es ext3 o ext4, ya que no se obtiene ninguna ventaja real con ext4, sobre ext3 (solo en este caso, en ordenadores ya es otra historia).

A2SD

Imagen de A2SD/A2SD+, además este sistema se puede combinar con el nativo de Froyo

A2SD lo que hace es ejecutar un script especial en el teléfono que crea enlaces simbólicos (similares a los accesos directos en Windows, pero más potentes) entre la carpeta de almacenamiento interno de su teléfono, donde las aplicaciones se almacenan normalmente, hacia la partición ext en su tarjeta SD. Un enlace simbólico es un parecido a un acceso directo a las carpetas, excepto que es transparente para el sistema operativo: En otras palabras, Android cree que cuando está instalando las aplicaciones lo hace en el almacenamiento interno del teléfono, pero, en realidad, se instalan en la tarjeta SD. Esto efectivamente aumenta la memoria interna del teléfono hasta el tamaño de la partición ext en su tarjeta SD (a menudo 512MB o 1GB, dependiendo del número de aplicaciones a instalar). Además, al tener journalist, no tiene qué "montar la SD" al reiniciar, lo que significa que está listo para funcionar tan pronto como el teléfono se enciende; de este modo, los widgets y aplicaciones trabajan de inmediato (a diferencia del "forzado" Froyo Apps2SD, donde los widgets desaparecen, y hasta que no se monte la SD, las aplicaciones no están disponibles).

El inconveniente con los A2SD/A2SD+ es que el espacio que la partición ext ocupa, reduce el tamaño de la SD, y no podemos usar la partición para otro uso. La ext, solo es utilizada por A2SD/A2SD+. Así que si tienes una tarjeta de 4 GB (con algo como 3,5 GB de almacenamiento real) y creas una partición ext 512 Mb, la tarjeta SD "se reducirá" a 3GB. El espacio no se pierde realmente, es sólo utilizado por la partición ext. Si se eliminas la ext de la tarjeta, lo recuperas.

Por último, hay una diferencia entre A2SD y A2SD+. Recuerda que dije que sus aplicaciones se almacenan en una carpeta especial dentro de su Teléfono de almacenamiento NAND? Bueno, eso fue un poco de mentira. En realidad es almacenada en dos lugares.

Hay una segunda área que se llama Davlik-cache. No es necesario preocuparse sobre lo que es, (Pista: Tiene que ver con la maquina virtual Java que utiliza el teléfono para ejecutar aplicaciones), todo lo que necesitas saber es que las aplicaciones lo utilizan para almacenar datos, que también se comen la memoria interna del teléfono.

A2SD+

A2SD+ mueve la dalvik-cache a la partición ext, de la tarjeta SD, liberando, así, aún más espacio. Algunas personas creen que esto puede llegar a empeorar el rendimiento, ya que la memoria interna NAND es más rápida que la tarjeta SD (por eso también la gente discute sobre qué "clase" tarjeta SD es mejor para A2SD (La lógica es que una tarjeta SD más rápida significa un menor impacto de esta medida), pero la verdad del asunto, es que las aplicaciones se ejecutan desde la partición de memoria RAM, de todos modos, por lo que el rendimiento, no se ve realmente afectado. Ya que, como la mayoría de las aplicaciones son sólo unos pocos cientos de Kb, o un par de Mb, a lo sumo, al ser tan pequeñas no tiene impacto en el rendimiento.

Por último, cualquier versión reciente de A2SD/A2SD+ debería funcionar con una tarjeta SD, que tenga o no, una partición ext. El móvil comprobara si existe esta partición, al arrancar el teléfono por primera vez y si no está ahí, sólo utilizará el almacenamiento interno del teléfono. Tener una partición ext SIN A2SD+ tampoco debería causar ningún problema, además se puede particionar la tarjeta SD cuando se quiera.

Así que en resumen

PROS CONTRAS
FROYO
  1. Sencillo de usar
  2. No requiere Particionar la SD
  3. Podemos elegir donde se instalan las aplicaciones:
    • En la memoria interna
    • En la SD
  4. No requiere permisos de Root, por lo que no es necesario rootear ni flashear una ROM cocinada. Lo incorpora la OTA 2.2 de serie.
  1. Sigue consumiendo memoria interna. El problema de espacio de memoria de almacenamiento persiste.
  2. La Dalvik-Cache no se mueve a la SD.
  3. Las aplicaciones con Widget hay que instalarlas en la memoria Interna. De lo contrario, el widget no se ejecutará.
  4. Las aplicaciones tienes que estar diseñadas para poderse instalar en la SD, no podremos mover todas las aplicaciones a la SD,
  5. Solo funciona en Android 2.2 (Froyo) o superiores.
A2SD/A2SD+
  1. Las aplicaciones realmente se instalan en la SD, liberando el espacio de la memoria de almacenamiento.
  2. Lleva usándose mucho tiempo, por lo que esta mucho mas depurada y es mas estable que la solución de Froyo.
  3. No necesita que la aplicación este diseñada para ejecutarse en la SD. Todas las aplicaciones funcionan perfectamente.
  4. Funciona a partir de Android 1.5 (Cupcake)
  5. Realmente permite la instalación de muchas mas aplicaciones y no compromete la estabilidad ni el rendimiento.
  6. Los Widget funcionan correctamente desde la SD.
  7. La Dalvik-Cache también se mueve a la SD, liberando memoria (A2SD+)
  1. Requiere particionar la SD, creando una particion ext2, ext3 o ext4 de al menos 512 Mb, y un máximo de 1024 Mb.
  2. Requiere una ROM cocinada con soporte A2SD, o la instalacion de un parche si no lo soporta la ROM (casi todas las cocinadas lo soportan) Lo que implica permisos de root, y por lo tanto rootear el terminal.
  3. Cuando conectamos al PC y montamos la SD en modo disco, las aplicaciones no se pueden ejecutar, hasta que desconectemos.
  4. Reduce la vida de la SD, debido al uso intensivo que realiza de la partición.


Créditos

  • Originalmente publicado por neoKushan (XDA-Developers)
  • Reescrito por fozzy
  • Modificado por Shawe con ciertas adaptaciones/correcciones.
Herramientas personales