Al poco de tener el Android te das cuenta de una limitación importante: al descargar un programa este se instala en la memoria del teléfono, que es escasa (unos 150Mg en mi caso) y solo unas pocas aplicaciones se pueden mover a la tarjeta SD (2Gb en mi caso), que es más generosa. El resultado es predecible, a los 4 días la memoria del teléfono está saturada.
No tenía ganas de andar rooteando el teléfono recién estrenado así es que controlé un poco qué/donde instalaba y arreglado. En cambio la solución es muy sencilla y viene de las Android SDK publicadas por Google y un programita llamado ADB. No hay que saber coreano ni tener el teléfono rooteado para hacer lo siguiente.

Descargar Android SDK

En la página de Google http://developer.android.com/intl/es/sdk/index.html, de la sección SDK Tools only descarga el archivo ZIP para tu sistema operativo (Mac, Windows, Linux) (los siguientes pasos los hice para Linux, pero veréis que son muy sencillos y no debería haber ningún problema repitiéndolos en cualquier otro sistema), en mi caso es android-sdk_r21.1-linux.tgz.
Extrae el archivo comprimido y entra en la carpeta android-sdk-linux/tools. Ejecuta android y te aparecerá una ventana como la siguiente

SDK AndroidSDK Android

De la lista de herramientas que te ofrece a instalar selecciona para instalar Android SDK Platarform-tools (si estás en Windows creo que necesitarás también Google USB Driver, al final).
Instala los paquetes.


Montar unidad en modo depuración

Una vez hechos el paso anterior tendrás una nueva carpeta dentro de la anterior android-sdk-linux, llamada plataform-tools y en ella una aplicación adb (android debugger builder).


Ahora montamos el teléfono como unidad de disco pero en modo depuración, para esto en tu teléfono dirígete a Ajustes > Aplicaciones > Desarrollo > Depuración USB. A continuación enchufa el teléfono al USB de tu ordenador como una unidad de disco. Si tu escritorio KDE/GNOME/Otro monta el teléfono de forma automática desmóntalo a mano ( como root umount /carpeta/de/montaje )


Ejecutar ADB

Abre una konsola o un terminal y dirígete la carpeta recién instalada plataform-tools donde se ubica la aplicación adb. Haz./adb devices
Esa orden debería listar los dispositivos detectados que están conectados al ordenador, o sea, al menos uno. Bien, si nuestro dispositivo está correctamente detectado podemos ahora hacer ./adb shelllo que nos metería en un terminal dentro de nuestro teléfono, así es que haciendo ls listamos el contenido de nuestro android como en cualquier unidad de disco.

lista de contenidos del Androidlista de contenidos del Android


Hackear Android

Una vez con la konsola dentro de nuestro Android tenemos disponible una aplicación llamada pm (Package Manager) encargada de instalar, desinstalar, listar y decidir donde se instalan los programas. Si escribimos en consola pm list packagesveremos la lista completa de aplicaciones y paquetes instalados. Si hacemos pm getInstallLocation preguntamos al programa por la configuración actual para instalación de programas. Las opciones son 0[auto] (opción por defecto), 1[internal], 2[external]. Como nos interesa activa la segunda opción hacemospm setInstallLocation 2

Listo. En adelante las aplicaciones que instales lo harán de forma predeterminada en la memoria SD externa y muchas de las que no podías mover fuera de la memoria del teléfono podrás moverlas a la tarjeta (no todas, obviamente las aplicaciones del sistema deberán seguir en el teléfono). Desconecta USB, desactiva el modo USB DEBUGGER y reinicia el teléfono.

Nota: Los widgets servidos por las aplicaciones instaladas requieren que estas estén instaladas en la memoria del teléfono. Si mueves una aplicación a la tarjeta sus widgets no estará disponibles y desaparecerán si tenías alguno en uso.