fvinasom
15/07/12, 23:51:32
Esta es la continuación del artículo que escribí el 26/06/2012 (ver http://www.htcmania.com/showthread.php?t=407726 ) en él defendía que la principal ventaja de ser Root, era que sólo siendo Root podía resolver el principal problema y caballo de batalla del Wildfire S que es a mi entender los problemas de falta de memoria interna y bajo rendimiento, y ello se resolvía enviando prácticamente el 100% de las aplicaciones a la memoria externa y para ello recomendaba el uso de la aplicación (sólo válida para Roots) FORCE2SD.
Si algún lector me ha hecho caso, así como mi propia experiencia me demuestran que todo lo que dije es cierto pero de hecho sólo hasta cierto punto, ya que a la larga los problemas de memoria continúan incluso con el uso exhaustivo del FORCE2SD.
¿Y ello por qué?
Para dar una respuesta clara a esta pregunta permitidme un repaso previo a los tipos de memoria y a su gestión que tiene el sistema operativo Android en general y el Wildfire S en particular.
Android tiene los siguientes tipos principales de memoria :
Memoria ROM: Tambien llamada Memoria de Solo Lectura, Memoria Interna y Memoria de Almacenamiento de aplicaciones APP. En ella están almacenados todos los progamas y aplicaciones que puedan ser ejecutados. Y cuando digo todos significa todos; en otras palabras qualquier aplicación que yo incluya en mi Android va a parar en principio a la memoria ROM.
En particular en la memoria ROM o interna hay lo que llamamos la “ROM” del sistema, es decir el sistema operativo más toda una serie de aplicaciones empaquetadas formando un conjunto que se carga en la memoria ROM o Interna en el momento del arranque del móvil.
Memoria RAM: Tambien llamada Memoria de Acceso Directo.
En ella se ejecutan los programas y aplicaciones que se cargan en principio desde la ROM o memoria Interna.
Por tanto cualquier programa o aplicación de la ROM se ejecuta siempre en la RAM.
También se cargan en la RAM los datos que necesitan los programas y aplicaciones para ser ejecutados. Dichos datos en principio pueden venir desde la ROM o de la tarjeta SD
Tarjeta SD de memoria: Sirve para almacenar datos (música, fotos..) y también Memoria Secundaria.
Esta Memoria Secundaria deberá ser gestionada por diversos programas especializados de la ROM.
Tamaños de las memorias del Wildfire S :
El tamaño máximo de memoria ROM o memoria Interna es de 512MB
El tamaño máximo de memoria RAM es también de 512MB
(o sea en total 1GB direccionable)
El tamaño mínimo de la tarjeta SD es de 2GB (ampliable hasta 32GB)
Uso de la memoria RAM :
En ella deben caber todos los programas que se están ejecutando en un momento dado, lo cual significa un tamaño mínimo de:
32MB de hardware cargado en memoria
65MB a 80MB de componentes fijos del sistema (servicios)
8MB a 30MB para el programa lanzador
Las aplicaciones que se han lanzado para ser ejecutadas (varios MBs)
Todos los datos de todas las aplicaciones y servicios que se están ejecutando.
Tener en cuenta que muchas aplicaciones ocupan pocas Ks, pero sus datos pueden ocupar entre 2MB a 5MB o más.
100MB a 128MB disponibles
….
Ello implica en la práctica el destinar a RAM un mínimo de 400MB hasta la totalidad de 512MB.
Uso de la memoria ROM :
Ahora bien y esto es muy importante: En los 512 MB de memoria interna tiene que caber en principio:
La ROM (paquete del sistema operativo)
Todos los programas y aplicaciones almacenados
Todos los tipos de memorias especializadas que utiliza el sistema operativo para su gestión:
Memoria Caché (o Tampón): donde se almacenan los datos más frecuentemente utilizados por los programas que se están ejcutando en la RAM
Memoria Swap: En la memoria RAM es donde se ejecutan todos los programas, aplicaciones y servicios; por tanto en un momento determinado la RAM puede llenarse y entonces para que quepa un nuevo programa hay que descargar de la RAM programas y datos de baja prioridad, para que en ella quepa el nuevo programa.
El programa y sus datos descargados se almacena en la memoria swap (“swap-out” del programa). Recíprocamente cuando el programa descargado se precisa de nuevo. es recargado desde la memoria swap (“swap-in”).
Dalvik Caché: Android es un sistema operativo basado en Linux, por tanto muchas de sus aplicaciones son ejecutadas mediante una máquina vrtual Java. Por tanto la máquina Java necesita de un espacio de memoria vrtual para poderse ejecutar. Este espacio de memoria es el Dalvik caché.
¡¡¡ El gran problema del Dalvik caché es que se va incrementando con el tiempo, y no se puede recuperar y mucho menos borrar !!!
Memorias Secundarias
….
Espacio necesario para la descarga e instalación de nuevas aplicaciones bajadas o no de Google Play y similares.
Cojín de seguridad para usos diversos…
….
Ello implica en la práctica una memoria ROM de unos 150MB, donde la ROM ocupa de 80MB a 100MB, y el resto dedicado a memorias especializadas del sistema.
Por tanto entre 50MB a 100MB deben caber todas las aplicaciones descargadas e instaladas y por tanto no pertenecientes a la ROM, y disponer además del espacio suficiente para poder descargar e instalar nuevas aplicaciones. Lo cual es muy poco espacio
Solución para un NO Root:
Lo vimos en el anterior artículo; y es el uso de la Aplicación de Google Play APP2SD, para traspasar aplicaciones desde la memoria a la tarjeta SD.
Problema principal : Sólo deja traspasar a la SD aquellas aplicaciones que son susceptibles de poder funcionar en ella.
Problema secundario : Si nos fijamos bien analizando los tamaños antes y después del traspaso vemos que solamente se traspasa parte de la aplicación; no se traspasa la parte de datos de memorias especializadas y memoria secundaria que sigue estando en la memoria interna.
Las ROMs oficiales y los no roots no soportan las memorias secundarias sobre la tarjeta SD.
Soluciones para un Root:
Borrar y regenerar la Dalvik Caché:
Mediante el Recovery podemos muy fácilmente borrar la Dalvik Caché recuperando toda su memoria.
Arrancamos Recovery; seleccionamos la opción Advanced; y ejecutamos “Wipe Dalvik Caché “
Finalmente al hacer Reboot regenera la mínima Dalvik Caché.
FORCE2SD:
En este caso se fuerza prácticamente al 100% de aplicaciones a ser traspasadas a la tarjeta SD.
Problema principal: Persiste el problema de que solamente se traspasa parte de la aplicación; no se traspasa la parte de datos de memorias especializadas y memoria secundaria que sigue estando en la memoria interna.
Solución Teórica:
Particionar la tarjeta SD (ver http://www.htcmania.com/showthread.php?t=299532 )De esta forma cuando traspasamos una aplicación desde memoria interna a la tarjeta SD se usa la segunda partición EXT de 1 GB (como máximo) como memoria secundaria y extensión de la memoria interna , donde se aloja la parte de memoria que no ha sido traspasada; liberando en este caso la totalidad de la memoria interna que ocupaba la aplicación antes del traspaso.
Por otra parte se usa la partición SWAP para efectuar el “swap-out” y “swap-in” de programas de la RAM de baja prioridad.
Problema Principal: Sólo existen muy pocas por el momento roms “cocinadas” que reconozcan las particiones de la tarjeta SD y las usen con provecho liberando memoria interna .
Solución definitiva: LINK2SD:
La aplicación LINK2SD es una aplicación gratuita de Google Play que análogamente a FORCE2SD permite traspasar las aplicaciones desde la memoria interna a la tarjeta SD, y fuerza su traspaso para aquellas aplicaciones que teóricamente no fueran susceptibles de ser traspasadas; pero además:
Reconoce la segunda partición EXT de la tarjeta, de 1 GB como máximo, como memoria secundaria y a ella traspasa la parte de datos que no correspondían a la memoria externa SD; liberando por tanto realmente la totalidad de la memoria interna que ocupaba la aplicación antes del traspaso.
Incluso funciona si la segunda partición no es EXT si no una FAT, lo realmente importante es que su tamaño no supere 1 GB; de lo contrario el móvil entraría en un bucle de arranque y cierres con las correspondientes consecuencias…
Para aquellas aplicaciones que por razones varias no pueden traspasarse a la tarjeta SD, permite establecer un enlace a la tarjeta SD de manera que si bien la aplicación sigue estando en la memoria interna, los datos y programas y librerías ligados a la aplicación sí que son traspasados a la memoria externa o a su extensión secundaria.
La primera vez que se ejecuta LINK2SD el programa pregunta el tipo de segunda partición de la tarjeta SD (ext2, et3, ext4, fat…).
Una vez indicado el tipo debe reiniciarse el teléfono, y entonces detecta la segunda partición y la monta.
A partir de este momento puede ya utilizarse LINK2SD con toda su potencia.
Puede y debe definirse como debe actuar automáticamente LINK2SD con los nuevos programas que sean descargados e instalados; de forma que si es posible se instalen ya en la SD y si no es posible y deben seguir en memoria interna, para que al menos sus datos sean enlazados desde la tarjeta SD.
Debo finalmente decir que:
He abandonado totalmente el uso de APP2SD y FORCE2SD
He recargado de nuevo todos los programas descargados que estaban en la SD, por haber sido movidos a través de APP2SD o FORCESD, mediante LINK2SD; de esta forma se ha movido la totalidad del programa incluyendo sus datos a memoria secundaria.
No tengo necesidad de utilizar en la práctica el LINK2SD para los nuevos programas ya que automáticamente LINK2SD actúa en el momento de la instalación tomando la opción más recomendable en cada caso.
Con este sistema he conseguido disponer del máximo posible de memoria disponible y eliminar por completo los problemas de memoria y bajo rendimiento.
Si algún lector me ha hecho caso, así como mi propia experiencia me demuestran que todo lo que dije es cierto pero de hecho sólo hasta cierto punto, ya que a la larga los problemas de memoria continúan incluso con el uso exhaustivo del FORCE2SD.
¿Y ello por qué?
Para dar una respuesta clara a esta pregunta permitidme un repaso previo a los tipos de memoria y a su gestión que tiene el sistema operativo Android en general y el Wildfire S en particular.
Android tiene los siguientes tipos principales de memoria :
Memoria ROM: Tambien llamada Memoria de Solo Lectura, Memoria Interna y Memoria de Almacenamiento de aplicaciones APP. En ella están almacenados todos los progamas y aplicaciones que puedan ser ejecutados. Y cuando digo todos significa todos; en otras palabras qualquier aplicación que yo incluya en mi Android va a parar en principio a la memoria ROM.
En particular en la memoria ROM o interna hay lo que llamamos la “ROM” del sistema, es decir el sistema operativo más toda una serie de aplicaciones empaquetadas formando un conjunto que se carga en la memoria ROM o Interna en el momento del arranque del móvil.
Memoria RAM: Tambien llamada Memoria de Acceso Directo.
En ella se ejecutan los programas y aplicaciones que se cargan en principio desde la ROM o memoria Interna.
Por tanto cualquier programa o aplicación de la ROM se ejecuta siempre en la RAM.
También se cargan en la RAM los datos que necesitan los programas y aplicaciones para ser ejecutados. Dichos datos en principio pueden venir desde la ROM o de la tarjeta SD
Tarjeta SD de memoria: Sirve para almacenar datos (música, fotos..) y también Memoria Secundaria.
Esta Memoria Secundaria deberá ser gestionada por diversos programas especializados de la ROM.
Tamaños de las memorias del Wildfire S :
El tamaño máximo de memoria ROM o memoria Interna es de 512MB
El tamaño máximo de memoria RAM es también de 512MB
(o sea en total 1GB direccionable)
El tamaño mínimo de la tarjeta SD es de 2GB (ampliable hasta 32GB)
Uso de la memoria RAM :
En ella deben caber todos los programas que se están ejecutando en un momento dado, lo cual significa un tamaño mínimo de:
32MB de hardware cargado en memoria
65MB a 80MB de componentes fijos del sistema (servicios)
8MB a 30MB para el programa lanzador
Las aplicaciones que se han lanzado para ser ejecutadas (varios MBs)
Todos los datos de todas las aplicaciones y servicios que se están ejecutando.
Tener en cuenta que muchas aplicaciones ocupan pocas Ks, pero sus datos pueden ocupar entre 2MB a 5MB o más.
100MB a 128MB disponibles
….
Ello implica en la práctica el destinar a RAM un mínimo de 400MB hasta la totalidad de 512MB.
Uso de la memoria ROM :
Ahora bien y esto es muy importante: En los 512 MB de memoria interna tiene que caber en principio:
La ROM (paquete del sistema operativo)
Todos los programas y aplicaciones almacenados
Todos los tipos de memorias especializadas que utiliza el sistema operativo para su gestión:
Memoria Caché (o Tampón): donde se almacenan los datos más frecuentemente utilizados por los programas que se están ejcutando en la RAM
Memoria Swap: En la memoria RAM es donde se ejecutan todos los programas, aplicaciones y servicios; por tanto en un momento determinado la RAM puede llenarse y entonces para que quepa un nuevo programa hay que descargar de la RAM programas y datos de baja prioridad, para que en ella quepa el nuevo programa.
El programa y sus datos descargados se almacena en la memoria swap (“swap-out” del programa). Recíprocamente cuando el programa descargado se precisa de nuevo. es recargado desde la memoria swap (“swap-in”).
Dalvik Caché: Android es un sistema operativo basado en Linux, por tanto muchas de sus aplicaciones son ejecutadas mediante una máquina vrtual Java. Por tanto la máquina Java necesita de un espacio de memoria vrtual para poderse ejecutar. Este espacio de memoria es el Dalvik caché.
¡¡¡ El gran problema del Dalvik caché es que se va incrementando con el tiempo, y no se puede recuperar y mucho menos borrar !!!
Memorias Secundarias
….
Espacio necesario para la descarga e instalación de nuevas aplicaciones bajadas o no de Google Play y similares.
Cojín de seguridad para usos diversos…
….
Ello implica en la práctica una memoria ROM de unos 150MB, donde la ROM ocupa de 80MB a 100MB, y el resto dedicado a memorias especializadas del sistema.
Por tanto entre 50MB a 100MB deben caber todas las aplicaciones descargadas e instaladas y por tanto no pertenecientes a la ROM, y disponer además del espacio suficiente para poder descargar e instalar nuevas aplicaciones. Lo cual es muy poco espacio
Solución para un NO Root:
Lo vimos en el anterior artículo; y es el uso de la Aplicación de Google Play APP2SD, para traspasar aplicaciones desde la memoria a la tarjeta SD.
Problema principal : Sólo deja traspasar a la SD aquellas aplicaciones que son susceptibles de poder funcionar en ella.
Problema secundario : Si nos fijamos bien analizando los tamaños antes y después del traspaso vemos que solamente se traspasa parte de la aplicación; no se traspasa la parte de datos de memorias especializadas y memoria secundaria que sigue estando en la memoria interna.
Las ROMs oficiales y los no roots no soportan las memorias secundarias sobre la tarjeta SD.
Soluciones para un Root:
Borrar y regenerar la Dalvik Caché:
Mediante el Recovery podemos muy fácilmente borrar la Dalvik Caché recuperando toda su memoria.
Arrancamos Recovery; seleccionamos la opción Advanced; y ejecutamos “Wipe Dalvik Caché “
Finalmente al hacer Reboot regenera la mínima Dalvik Caché.
FORCE2SD:
En este caso se fuerza prácticamente al 100% de aplicaciones a ser traspasadas a la tarjeta SD.
Problema principal: Persiste el problema de que solamente se traspasa parte de la aplicación; no se traspasa la parte de datos de memorias especializadas y memoria secundaria que sigue estando en la memoria interna.
Solución Teórica:
Particionar la tarjeta SD (ver http://www.htcmania.com/showthread.php?t=299532 )De esta forma cuando traspasamos una aplicación desde memoria interna a la tarjeta SD se usa la segunda partición EXT de 1 GB (como máximo) como memoria secundaria y extensión de la memoria interna , donde se aloja la parte de memoria que no ha sido traspasada; liberando en este caso la totalidad de la memoria interna que ocupaba la aplicación antes del traspaso.
Por otra parte se usa la partición SWAP para efectuar el “swap-out” y “swap-in” de programas de la RAM de baja prioridad.
Problema Principal: Sólo existen muy pocas por el momento roms “cocinadas” que reconozcan las particiones de la tarjeta SD y las usen con provecho liberando memoria interna .
Solución definitiva: LINK2SD:
La aplicación LINK2SD es una aplicación gratuita de Google Play que análogamente a FORCE2SD permite traspasar las aplicaciones desde la memoria interna a la tarjeta SD, y fuerza su traspaso para aquellas aplicaciones que teóricamente no fueran susceptibles de ser traspasadas; pero además:
Reconoce la segunda partición EXT de la tarjeta, de 1 GB como máximo, como memoria secundaria y a ella traspasa la parte de datos que no correspondían a la memoria externa SD; liberando por tanto realmente la totalidad de la memoria interna que ocupaba la aplicación antes del traspaso.
Incluso funciona si la segunda partición no es EXT si no una FAT, lo realmente importante es que su tamaño no supere 1 GB; de lo contrario el móvil entraría en un bucle de arranque y cierres con las correspondientes consecuencias…
Para aquellas aplicaciones que por razones varias no pueden traspasarse a la tarjeta SD, permite establecer un enlace a la tarjeta SD de manera que si bien la aplicación sigue estando en la memoria interna, los datos y programas y librerías ligados a la aplicación sí que son traspasados a la memoria externa o a su extensión secundaria.
La primera vez que se ejecuta LINK2SD el programa pregunta el tipo de segunda partición de la tarjeta SD (ext2, et3, ext4, fat…).
Una vez indicado el tipo debe reiniciarse el teléfono, y entonces detecta la segunda partición y la monta.
A partir de este momento puede ya utilizarse LINK2SD con toda su potencia.
Puede y debe definirse como debe actuar automáticamente LINK2SD con los nuevos programas que sean descargados e instalados; de forma que si es posible se instalen ya en la SD y si no es posible y deben seguir en memoria interna, para que al menos sus datos sean enlazados desde la tarjeta SD.
Debo finalmente decir que:
He abandonado totalmente el uso de APP2SD y FORCE2SD
He recargado de nuevo todos los programas descargados que estaban en la SD, por haber sido movidos a través de APP2SD o FORCESD, mediante LINK2SD; de esta forma se ha movido la totalidad del programa incluyendo sus datos a memoria secundaria.
No tengo necesidad de utilizar en la práctica el LINK2SD para los nuevos programas ya que automáticamente LINK2SD actúa en el momento de la instalación tomando la opción más recomendable en cada caso.
Con este sistema he conseguido disponer del máximo posible de memoria disponible y eliminar por completo los problemas de memoria y bajo rendimiento.