# Move to SD Card doesn't move everything

I have noticed that when I move apps to the SD card, it doesn't move everything. Is this a bug or a known behaviour or something weird going on with my phone?

Here's an example:

• Start point: Phone free space: 18MB
• Install Skype app: Phone free space: 3MB, Skype is apparently using 15MB for the App
• Move Skype to SD Card: Phone free space: 8MB, Skype is now apparently using just 5MB for the App.

What appears to have happened is it's only moved some of the App, not the whole thing. It's a real pain for me as I have an HTC Desire, which doesn't have much internal memory (I live on the balance of the low memory warning). It's running the official HTC Gingerbread install...

• Just realised I didn't really ask a question here, but I guess it's implied! But should be: "Is there anything I can do about this?" :) – x3ja Aug 25 '11 at 4:10

Indeed, Android's native "Move to SD Card" does not move the entire app to the card. Things like app's data, cache and dalvik-cache (optimized bytecode) are left on the device's internal memory. You can try to mitigate this by regularly clearing out the cache of apps you use most often (e.g. Browser, etc.) by going to Menu -> Settings -> Applications -> Manage applications -> All, then selecting the app, and tapping the Clear cache button. However, you will just be delaying the inevitable.

Also, the fact that not all apps support being moved to SD does not help the situation. For example, widgets and sync adapters may not be moved to SD Card due to a limitation of Android. Other apps simply have not been updated to support this functionality.

If your phone is rooted, you have more choice to mitigate this shortcoming. First, some custom ROMs (e.g. CyanogenMod) allow you to move all non-system apps to the SD Card, even if they don't explicitly support this functionality (even Widgets can be moved, but will stop working after a reboot.)

There are also alternative "Apps to SD" solutions that can move all non-system apps to the SD Card on a rooted phone. For example, the S2E app works wonders on CM ROM, and is very easy to install and use. The DarkTremor A2SD script is a lot more difficult to set up and configure, but works on different custom ROMs.

• I waited so long for HTC's official Gingerbread release and now it looks like I'll be best rooting my phone after all. I'm now having to Clear Data on one or two apps once or twice a day to try and keep some space available! Once it's low on space, it won't download any more Gmail emails, which is very annoying as it's my main source of email! – x3ja Aug 26 '11 at 21:02

Some apps simply need things in system memory. Whether it's to access them more quickly or there's some implicit dependency, i do not know. i have observed this as well, although in my experience, it's not with every app.

For example, a game should not depend on any inherent system files, and should be able to be pushed fully to the SD card (in my experience, they all have). On the other hand, an application like Skype depends on several system functions (and if it had to run completely from the SD card, i'm not sure how well it would work).

I'm in the same situation, the EVO only has ~420 MB to work with, and i like apps ;) so i'm constantly in the balance. I've taken to uninstalling things i haven't used for a week or two.

• Sorry, I think you're on the wrong track here. The topic is storage memory, not working memory. These apps are taking away space in storage memory while they aren't actually running, so most of your points are simply irrelevant and/or incorrect. – hheimbuerger Aug 27 '11 at 17:09
• i'm not talking about working memory – jlehenbauer Aug 27 '11 at 18:13
• Then I don't understand what you mean by 'access them more quickly' and 'depends on several system functions' and how that's relevant for storage memory. – hheimbuerger Aug 28 '11 at 12:03

The solution is to link dalvik-cache folder (/data/dalvik-cache) to a copy of it in the ext partition of the sdcard (/sd-ext) after deleting the original dalvik-cache folder. The command on the terminalemulator window should be something like "ln -s /sd-ext/pseudo-dalvik-cache /data/dalvik-cache" where pseudo-dalvik-cache is just a renamed copy of original dalvik-cache. Of course you need root permissions (a rooted phone).