Mundo SpanDROID

Apps y novedades del mundo Android, Tecnología y sobre el Motorola Milestone

Liberando memoria en Android! (Parte Final)

with 9 comments

No los hago esperar mas, Parte final de “Liberando memoria en Android”… Supongo llegaste hasta aquí luego de leer los post anteriores en donde explico la técnica de eliminar aplicaciones de sistema que no utilizamos para liberar memoria. En esta parte nos vamos a dedicar a otra técnica que consiste en mover aplicaciones desde /data/app hacia /system/app, ganando así memoria para descargar otras aplicaciones.

El procedimiento es fácil y vas a recuperar la misma memoria que ocupa la aplicación que muevas ( el tamaño del archivo .apk )

Para este procedimiento también necesitas acceso ROOT y un explorador de archivos como el Root Explorer

En los post anteriores comentaba que elimines aplicaciones de sistema en desuso ( previo resguardo ) que se encuentran dentro de /system/app

Borrar específicamente en esa carpeta no te hace ganar memoria de usuario pero, como también tiene un límite, es mejor obtener todo el espacio disponible que se pueda porque ahora lo vamos a utilizar…

Lo que tenés que saber:

Una aplicación que trabaje desde /system/app se comportará igual que si trabajara desde /data/app. No se hará mas lenta ni tiene porque fallar, solo será vista por Android como aplicación de sistema. Ok, que implica esto? Que ya no la vas a poder desinstalar por los medios normales y además si en algún momento la actualizas desde el Market, nuevamente volverá a consumirte la memoria que liberaste ( y más también como veremos ). Esto es porque el Market instala las aplicaciones en /data/app

Si en algún momento necesitas eliminar una aplicación que bajaste a /system/app según este procedimiento, lo que tenés que hacer es eliminar el archivo .apk asociado y su área de trabajo en /data/dalvik-cache/system@app@(nombre_aplicación).apk@classes.dex

Este nombre para el área de trabajo puede parecer complicado pero solo reemplazas (nombre_aplicación) por la que estés buscando.

Las aplicaciones “ideales” o convenientes para instalar en /system/app son las mas pesadas, en general mas de 2Mb y mucho mejor si seleccionas aplicaciones de 5 u 8 Mb. Cualquier aplicación que te hallas bajado desde el Market y principalmente, las no actualizables que instalaste por tu cuenta. Mientras mas “pesada” mejor.

Algo a recordar, si moves las aplicaciones descargadas desde el Market, vas a tener el trabajo adicional de volver a instalarlas en /system/app una vez actualizadas para volver a recuperar memoria o sea, vos la sacaste de /data/app para ganar espacio y el Market la vuelve a colocar ahí.

La técnica:

Es sencilla. Solo 3 pasos:

1 – Mover la aplicación que nos interese desde /data/app a /system

2 – Verificar permisos. Cambiarlos si es necesario

3 – Mover la aplicación a /system/app

La razón por la cual movemos primero a /system y no directamente a /system/app es que Android aunque la instale, no la va a actualizar en nuestra lista de aplicaciones hasta el próximo inicio. En un caso así deberías reiniciar tu celular para que aparezca. Evitamos este tiempo moviendo a /system, cambiando los permisos si corresponde y luego moviendo e instalado donde va, en /system/app

Este método a pesar de ser sencillo lo dejé para el final porque ahora utilizamos espacio en /system/app que en los post anteriores liberamos al desinstalar aplicaciones de sistema que no nos interesa.

Vamos con un ejemplo:

Aplicación candidata Maps4.0.0-brut, El Google Maps con Navegador GPS.

Tamaño a liberar 2.7 Mb aproximadamente ( el mismo del archivo .apk ). Además no está en el Market, si tenés esta versión es que la bajaste por tu cuenta. Es una aplicación que en cualquier situación hay que actualizar “a mano” reinstalando una versión nueva encima.

1 – Entramos a Root Explorer y pulsamos el botón “Mount R/W”

La etiqueta cambiará a “Mount R/O” asignando de esta forma derechos de lectura y escritura sobre cualquier carpeta o archivo del teléfono. esto nos permitirá mover las aplicaciones hacia áreas restringidas ( /system/app )

2 – Vas a la carpeta /data/app con Root Explorer, ubicas el archivo brut.googlemaps.apk y lo moves a /system

3 – Ya en /system verificas los permisos del archivo. Deben ser “rw – r – - r – -” según lo que ves en la línea informativa debajo del nombre de la aplicación.

El significado de estos permisos son los mismos que en Linux y es: read/write para Usuario y read para Grupo y Otros. De esta manera deben estar los permisos de una aplicación antes de su instalación en /system/app. Para cambiar los permisos por si no estuvieran así, hacemos un tap largo sobre el nombre de la aplicación y seleccionamos “Permissions” en el menú desplegable que aparece. Una vez dentro marcamos las tildes que correspondan, Read y Write en la linea User y dejamos solo Read para Group y Others. Damos “OK”

4 – Movés ahora brut.googlemaps.apk hacia /system/app

Si todo salió bien, deberías ver “Maps -brut” en la lista de aplicaciones. En el raro caso que no fuera así, se actualizará en cuanto reinicies el teléfono.

Qué pasa con el área de trabajo?

Y que pasa con las áreas de trabajo que ya sabemos están en /data/dalvik-cache ?

Se actualizan solas. Android elimina el área en /data/dalvik-cache/data@app… y crea una nueva en /data/dalvik-cache/system@app… Debería quedarte una sola sino NO recuperas memoria. Una va a estar siempre de mas ( la data@app en este caso ) si ves un caso así puede que halla sufrido una actualización.

Aplicaciones en /system/app que son actualizadas:

Vamos a ver que ocurre con una aplicación que colocamos en /system/app y que luego es actualizada vía Market. Seleccioné para el ejemplo NewsRob que es un lector de feeds RSS

Instalo por primera vez la versión 3.6.3 y la memoria quedá así:

/data/app/com.newsrob.apk  ( 362kb )

/data/dalvik-cache/data@app@com.newsrob.apk@classes.dex ( 394 kb )

Los valores en kb son aproximados. El consumo de esta aplicación en memoria de usuario es de unos 756kb, considerando la suma de la aplicación en si y su área de trabajo. Existen archivos adicionales a estos en otras carpetas que para el ejemplo no los estoy tomando en cuenta.

Ahora para ganar espacio, muevo la aplicación a /system/app quedando luego:

/system/app/com.newsrob.apk  (362kb )

/data/dalvik-cache/system@app@com.newsrob.apk@classes.dex ( 394kb )

Android se encarga de eliminar el area de trabajo ‘data@app‘ y crea una nueva como ‘system@app‘. Recupero en memoria los 362kb de la aplicación.

Ok, cierto día el Market me avisa de una actualización, la 3.7 y procedo a instalarla. Observen como queda la memoria:

La versión nueva…

/data/app/com.newsrob.apk ( 402 kb )

/data/dalvik-cache/data@app@com.newsrob.apk@classes.dex ( 420kb )

y la versión anterior que habíamos instalado nosotros…

/system/app/com.newsrob.apk ( 362kb )

/data/dalvik-cache/system@app@com.newsrob.apk@classes.dex ( 394 kb )

Android no tenia registrado el movimiento anterior hacia /system/app por lo tanto “duplicó” todo. Para nosotros será transparente ya que Android utiliza la nueva versión pero ahora el consumo “total” en memoria  subió a 1578kb! sumando los 4 archivos y en el área que nos interesa ( /data: memoria de usuario ) Newsrob ocupa unos 1184kb con la aplicación y dos áreas de trabajo en donde una está de mas.

Si sencillamente volvemos a mover la nueva aplicación desde /data/app hacia /system/app reemplazando la misma que allí existe nos queda:

/system/app/com.newsrob.apk ( 402kb )

/data/dalvik-cache/system@app@com.newsrob.apk@classes.dex ( 420kb )

Con un consumo final en nuestra memoria de usuario de 420kb ( recuperamos en total unos 756kb con solo mover la app a /system/app ) Al mover la aplicación Android instala y acomoda las áreas de trabajo. Bueno, te imaginarás con aplicaciones mas grandes hasta donde llegaría el consumo de memoria que no se utiliza. Sobre todo por áreas de trabajo “perdidas” por ahí.

Mas aplicaciones de sistema para desinstalar:

Te comenté en posts previos la eliminación de Email y de QuickOffice, la reinstalación de Facebook y el cambio del Google Maps por la versión con Navegador GPS. Seleccioné algunas aplicaciones mas de sistema que quizás quieras eliminar o mover para ganar espacio.

“Recordá que al eliminar una aplicación de sistema, recuperas el espacio de su área de trabajo. En cambio al mover una aplicación descargada, recuperas el espacio ocupado por la aplicación que estaba en /data/app”

Antes una recomendación. Si pensás eliminar una aplicación de sistema que no sea las que vengo dando de ejemplo, Renombrala en system/app El efecto es el mismo que si la desinstalaras pero ante cualquier problema grave, no estas obligado a flashear nuevamente el celular. Probás unos días y si todo va bien recién la eliminas. Podrías renombrar su extensión a .apkx

En mi caso antes de hacer estas pruebas hice un backup completo de la memoria interna con NANDROID BACKUP. Si bien los ejemplos funcionan sin traer problemas mas allá de donde lo comente, es lo que te recomiendo para mayor seguridad.

MUSICA:

Si la eliminamos, no funciona más la posibilidad de llamar al reproductor desde “Base para coche“. Programas varios como Go!Lyrics también darán error ya que se apoyan en esta aplicación para funcionar. En general cualquier programa que intente buscar el “MediaPlayer” fallaría.

Se elimina o renombra: /system/app/Music.apk  y

/data/dalvik-cache/system@app@Music.apk@classes.dex

CALENDARIO CORPORATIVO y DIRECTORIO CORPORATIVO:

Con estas aplicaciones en especial, renombra los .apk y dejá las aréas de trabajo. Aparentemente no traen ningún problema.

Se renombra /system/app/MotoCAL.apk ( Calendario Corporativo )  y

/system/app/MotoGAL.apk ( Directorio Corporativo )

con sus respectivas entradas en /data/dalvik-cache

CENTRO DE AYUDA:

El nombre de la aplicación a eliminar es: /system/app/HelpCenter.apk

BASE PARA COCHE MOTOROLA:

Se elimina o renombra /system/app/MotoCarDock.apk  y

/data/dalvik-cache/system@app@MotoCarDock.apk@classes.dex

Estas aplicaciones no consumen mucha memoria. La única razón que veo para eliminarlas es para que desaparezca el ícono. Las dejo a tu criterio.

LAUNCHER:

Sí, eliminar el mismísimo escritorio de tu teléfono… Por si no tenes instalado el HelixLauncher opción de reemplazo para el “Home” de Android 2.1 te comento que está funcionando muy bien. /system/app/Launcher.apk es entonces candidata a la eliminación y te permite recuperar casi 10,3Mb bajo /system/app para mover hacia ahí mas aplicaciones. Si preferís lo podés renombrar y probar unos días antes de eliminarlo definitivamente ( previo resguardo ) aunque no provoca problemas ni aún en el reinicio del teléfono.

Importante: Antes de eliminar/renombrar Launcher.apk, asegurate que HelixLauncher sea tu “Home” por defecto y si utilizas el Advanced Task Manager, ponelo en la lista de exclusión para evitar problemas.

MOTONAV:

Otra aplicación que si no utilizas ( se venció o no te gusta ) deberías eliminar.

El el post anterior indico como eliminarlo y recuperas aproximadamente 17Mb!

Resúmen:

Podemos ganar memoria y tener mayor lugar para descargas con estos métodos:

1 – Método Obvio: Verificando aplicaciones duplicadas ( hacen lo mismo). Desinstalando las que casi no usamos y tenerlas a “un costado” para cuando las necesitemos

2 – Método Riesgoso: Eliminando algunas aplicaciones del Sistema que no vayamos a utilizar.

3 – Método Sugerido: Moviendo aplicaciones de nuestro interés, descargadas del Market y principalmente instaladas por nuestra cuenta hacia /system/app

Con las explicaciones de estos posts  y un poco de paciencia, deberías recuperar entre 40 y 50Mb ( o mas! ) de memoria que calculo vas a llenar con mas aplicaciones :)

La idea es hacer espacio pero no satures la memoria en /system/app. Root Explorer te indica la memoria disponible en la carpeta /system en la parte superior como “xx Mb free”. Deja al menos 10 Mb libres, ahora te dejo algunos comentarios al respecto.

Notas Finales:

Con todos estos procedimientos estamos acomodando las aplicaciones a nuestro gusto y no como Android espera que estén. En un futuro cuando corras una nueva actualización de Android ( será la 2.2, la 3? ) lo mas conveniente es que lo hagas a través de un paquete de actualización full, el que te elimina todo. El problema es que si las próximas actualizaciones Android vienen mas grandes, le estamos robando con esto espacio a /system … A mi no me gustarían errores no esperados en medio de un flasheo :(

La otra opción es que vuelvas a dejar espacio en /system/app eliminando todas las aplicaciones que hallas instalado ahí por tu cuenta antes de actualizar a una versión nueva de Android.

Para reinstalar la aplicación en donde estaba originalmente tenés que hacer 3 pasos:

1 – Mover la aplicación ( .apk ) desde /system/app hacia /data

2 – Mover luego desde /data hacia /data/app

3 – Eliminar el área de trabajo asociada a /system, aquella de nombre: /data/dalvik-cache/system@app@(nombre_aplicación).apk@classes.dex

Es importante le prestes atención al ícono de “falta de espacio” que aparece  en la barra de notificaciones. Android empieza a comportarse de manera inestable en esa situación: Se pone lento, elimina configuraciones, no carga los Widget o no los actualiza, da errores ya que intenta hacer espacio y no atiende  a las aplicaciones apareciendo mensajes de “no responde”, “forzar cierre”, etc. Todo se normaliza cuando ese ícono desaparece al liberar memoria. Bueno, para eso casualmente son estos posts :)

Pienso a veces que la mayor parte de los usuarios con un Milestone no tienen ni idea del terrible aparato que tienen en sus manos. Utilizan aún Android 2.0 ( en Argentina ) porque  nuestra querida operadora ( Personal ) no se pone las pilas para entregar recién la versión 2.0.1 y viven una experiencia final con el equipo, no del todo satisfactoria. Recuerden cuantas fallas ahora solucionadas tenía la versión 2.0. Android esta cambiando rápido y una gran cantidad de gente en el tema nos brinda mejores aplicaciones día a día y en su gran mayoría gratuitas. Intentaré desde Spandroid acompañar esta movida…

Espero los que llegaron hasta acá puedan aprovechar esta información.

Saludos y muchas gracias por leernos!

About these ads

Written by SpanDROID

13 abril, 2010 a 1:09 am

Publicado en Android, Milestone

9 comentarios

Suscríbete a los comentarios mediante RSS.

  1. Hola! Excelente!!!! de lo mejor que vi en explicaciones. Muy claro, muy trabajado, te felicito. Entendí todooo!

    Aprovecho porque estoy con el tema de los launchers… tengo la sbf brasilera 2.0.1 funcionando ok. Le instalé el launcher 2.1 del nexus, pero funciona bastante mal: cuando despliego el teclado del milestone (y se activa el “modo apaisado”) se sabe que falla a lo loco, tiene muchos bugs, y además, como decís, me ocupa unos 10mb (un montón, como el launcher original de la 2.0.1).

    Estuve viendo que el helix launcher (no el hl2 – beta 7, que es el acual, sino el hl1) funciona bien en la versión brasilera que tengo, y sólo pesa ~700kb.

    Tres preguntas:

    a) Tenes alguna recomendación de launcher para la sbf brasilera?

    b) Que opinas del reemplazo del launcher 2.1 que tengo por el helix? (ahorrando casi 9mb)

    c) sabés de alguna forma de hacer funcionar la helix 2 en la sbf brasilera?

    Rho

    14 abril, 2010 at 11:47 am

    • Hola! Mira yo actualmente uso el HelixLauncher 1, el mismo que se encuentra en el Market. Tengo Android 2.1 ahora pero utilizaba el mismo HL1 semanas atrás cuando estaba con la versión 2.0.1 brasilera. No es perfecto pero funciona bastante bien. Las pocas veces que se cuelga se recupera solo y deja los escritorios como antes (y ya estoy utilizando los 7). El HL2 funciona bien en Android 2.1 pero regresé al anterior porque es mas lento, sobre todo en el scroll de las aplicaciones. Además HL1 soporta bien los Live Wallpapers asi que pasarme a algo mas pesado no tiene sentido.

      No llegué a probar otros launchers ademas del Helix ya que no me gustaban mucho en la interface. El tema que decís de ahorrar memoria se da solo si eliminas el launcher.apk una vez tengas definido al HL1 por defecto y en la lista de exclusión del Task Manager. La memoria que ahorras se da a nivel de /system o sea, no la vas a ver disponible para descargar mas aplicaciones. Como decía, hacer lugar en /system/app viene bien si tenes pensado bajar otras aplicaciones ahí.

      Actualmente tengo trabajando desde /system/app 8 aplicaciones que suman 30Mb. Estaban originalmente en /data/app, digamos que al momento 30Mb es la memoria que “expandí” en el Milestone. Me quedan aún 48Mb en la memoria de usuario. Si no las hubiera bajado a /system/app ahora estaría con 18Mb.. al limite.

      Saludos!

      SpanDROID

      14 abril, 2010 at 11:48 pm

  2. thanks for nice information…

    zul

    20 julio, 2010 at 11:32 am

  3. Una guía excelentísima para los que nos iniciamos en este mundillo. He conseguido liberar 20MB muy fácilmente con tus trucos. Me he quedado con unas cuantas dudas que te quería preguntar.

    - ¿El Calendario y el Directorio Corporativo por qué no se pueden borrar? No les veo utilidad, y si tan solo las renombramos (sin borrar), no ganamos nada. Por ej. el área de trabajo de una de ellas me ocupa 1,5MB…
    - ¿La aplicación de Gmail se puede borrar? Porque con la de E-mail tengo suficiente (mi cliente de uso cotidiano es hotmail).
    - Misma cuestión para Google Talk y el Navegador de serie. ¿Se pueden borrar? Y si fueras tan amable de poner cómo.

    tarod83

    14 noviembre, 2010 at 10:32 pm

  4. Muchas gracias por el tuto amigo me se sirvio bastante.

    Saludos.

    Josue-181

    21 diciembre, 2010 at 1:43 am

  5. Son tres posts muy buenos para liberar memoria. Aquí trabajas con mover aplicaciones de una carpeta a otra para que se ejecuten en modo sistema y liberar espacio, pero se me ocurre hacer otra cosa, la duda es que no se si es posible.

    Android trabaja bajo linux, por lo que supongo que existen los enlaces simbólicos. Cuando arrancamos un pc linux (la explicación es a muy groso modo) el sistema va a una carpeta que tiene enlaces a los servidores que tiene que arrancar, esta carpeta no tiene los servidores en si, sino que son accesos directos a esos servidores y dependiendo del modo en que arranquemos irá a una carpeta de enlaces u otra.

    Lo que vengo a decir con esto es cuestionar si se podría llevar todo el contenido de la carpeta system, por ejemplo, a la tarjeta sd y luego hacer enlaces simbolicos en la carpeta system. Por ejemplo, tenemos facebook.apk en system, lo movemos a /sdcard/programas y en system/app creamos un enlace que se llame facebook.apk que apunta a /sdcard/programas/facebook.apk. Creo que sería algo más o menos así.

    El enlace no ocupa practicamente espacio y la aplicación estaría en la sd ganando espacio.

    No se si esto se puede hacer, quizá afectaría al rendimiento al tener que ir a leer a la sdd.

    Esa es la duda que quería consultar…

    maikelkid

    25 septiembre, 2011 at 5:42 am

  6. hola que tal muy bueno el tutorial para liberar memoria, excelente, lo he aplicado fielmente y me fue de maravilla libere muchos megas, lo unico es que me paso un problema y quisiera saber si me puedes ayudar a resolverlo, tenia el angry bird rio, pesa uno 18 megas, lo pase a system app y todo muy bien, me guardo los avances y todo, unos dias despues me pidio actualizacion y creo que no segui bien tus pasos, quiza borre algo demas o de menos, lo cierto es q ahora lo baje del market y me lo instala pero no arranca, que podria estar pasando, esto me puede pasar con cualquier programa q se actualice por eso necesito ayuda gracias

    javier

    11 octubre, 2011 at 4:29 pm

  7. que son los archivos mnt@asec? tambien se pueden eliminar?

    antonio

    21 noviembre, 2012 at 9:35 pm

  8. Muchas gracias la informacion me fue de mucha ayuda, has resolvido todas mis dudas, excelente!!

    SKATEMA7IA

    7 junio, 2013 at 12:43 pm


Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 63 seguidores

%d personas les gusta esto: