Update (27 May 2015): Since this article was originally written, it’s become much easier to free up space on your Android device. These days it’s possible to take advantage of services such as Google Drive or Dropbox to relieve the strain on your SD card. If you want a more advanced cloud storage solution, check out Hightail, which allows you to access and share important files on your Android devices or anywhere else.
“Low on space: Phone storage space is getting low.” Uh-oh. This issue is easy to fix if you’ve rooted your phone, but what if you haven’t? Let’s take a look at the possibilities…
What’s the Big Deal?
Does it really matter if you run out of internal phone storage? After all, you’ve got an SD card that can fit gigabytes of data and applications.
Actually, yes; being low on internal storage causes problems. If you’ve got less than 25MB free, you won’t be able to install over-the-air updates to your system (including new versions of Android). Less than about 15MB, and you can’t sync emails, Facebook statuses, calendar appointments, and so on. Also, some applications can only be installed to the internal storage: Flash Player 10.1 and the AIR for Android runtime are two big examples of this, each weighing in at a hefty 10MB.
Rooting your phone allows you to move these applications — as well as various system files — to the SD card, freeing up plenty of space. In this article, we’ll look at what you can do if you don’t want to root it.
Check How Much Space You Have Free
To see how much internal storage space you have free on your handset, open Settings | SD & phone storage, and look under Internal phone storage | Available space:

As you can see, I only have 14.69MB free, so I can’t update the OS or to sync anything.
Fix the Bloated Contacts Storage Bug
Be careful: Some people have found that this doesn’t work, and may even wipe all their contacts. Go to google.com/contacts and export them all from there, first, so you have a second backup.
On some handsets (including my HTC Desire), the contacts list will inflate wildly over time, taking up dozens of megabytes more than it needs to. This is clearly a bug; fortunately, it’s easy to fix.
First, check whether it’s an issue on your phone: open Settings | Applications | Manage Applications, then press the All tab and find Contacts Storage.

You can see here that mine takes up 7.43MB. This is a healthy size — previously, it was taking up over 40MB, and growing every day.
If you think yours is larger than it should be, you need to export all your contacts to an SD card, erase them from your phone, and re-import them. It’s a simple process, and you should only need to do it once. Here’s a step-by-step guide:
Open the People application and press Menu | Import/Export.

In the popup that appears, press Export to SD card; you’ll get another popup.

You should have a SIM account, a Phone account, and another account for each Google account you’ve connected to your phone. Select the top account and it’ll give you a dialog, asking if you really want to export it to your SD card. Take note of the name of the file and the account it corresponds to, then press OK. You’ll see a progress bar, and then the export will be complete.
Repeat this for each of the accounts on your phone
Next, go back to Settings | Applications | Manage Applications and find Contacts Storage in the All tab again. Press it to open the Application info, then press Clear data. Confirm any dialogs that appear.
(Nervous? You might want to copy all those exported contacts files from your SD card to your computer, just in case!)
Once the data is clear (and the Data field is showing 0.00B), you should have no contacts. (If the Data field does not show 0.00B, or if you do still have contacts in your list, open the People application and press Menu | Delete.)
Now to restore the data you backed up earlier. Open the People application, press Menu | Import/Export, and select Import from SD Card. It will ask which account to add them to; this is where you need the notes you took earlier.
I recommend importing each Google account’s contacts back to the account they originally came from, but importing the SIM and Phone contacts to your main Google account. This way, those contacts will stay synchronised with your Google account, rather than being stuck on your SIM card or handset.
Do this for each of the backup files.
You may have to wait while Android deals with all this data. My handset uses HTC Sync to keep my Facebook and Twitter friends in my contacts list, and it took quite some time to get everything up to date. Leave it overnight before worrying whether you’ve lost some information.
Once everything’s in order, check the size of Contacts Storage again. With luck, it’ll be at a reasonable level!
Move Applications to the SD Card (Android 2.2)
Android 2.2 (Froyo) lets you transfer applications from the internal phone storage to the SD card, and run them from there. Not all applications, but a growing majority of them.
To move an application, open Settings | Applications | Manage Applications. Find the application you want to move, tap it, and press Move to SD Card.

The problem is that although you can sort the list of applications by size, you can’t filter it to only show the ones that are currently in the phone storage. Nor can you filter it to only show the applications that can be moved. These restrictions make moving the applications very frustrating.
Enter App 2 SD.
Use App 2 SD
App 2 SD, from A0Soft Inc., shows this:

It’s a list of all applications installed on the phone storage that can be moved to the SD card. Tap any icon, and it’ll take you to the Application info screen for that application, where you can move it to the SD card. Alternatively, hit Menu | Move all apps and it’ll offer you each application’s info screen in turn, making it easy to transfer them.


Use App 2 SD to move as much as you can, though be aware that applications on the SD card cannot be used (and home screen widgets will not be displayed) when your handset is plugged into a computer and acting as an external drive.
App 2 SD will also monitor all applications that you install and update, and notify you if they can be moved, so you don’t need to remember to check.
Applications can only be moved if the developer allows them to be. This makes it very frustrating when an application could be moved, but the developer hasn’t ticked that option yet…
Force Applications to Allow Moving
(This is quite advanced, so skip it unless you really need the space.)
It’s possible to force applications to allow moving even if the developer has enabled that ability. I posted the instructions for doing so in our earlier round-up, 100+ Absolutely Essential Android Apps and Tips; click here to go directly to them, or search the page for “Force Applications to Permit Being Moved to the SD Card, Without Rooting”.
Be careful — the developer might have disabled moving for a good reason. Note that this does not work for all applications, unfortunately.
How’s your space now? Still need help? Okay, we’re going to need to see more detail…
Break It Down With DiskUsage
Let’s take a closer look at what exactly is using up all that space. Download DiskUsage (yes, it can be moved to the SD card!) and open it. Select App Storage and you’ll see a breakdown of the space:

Notice anything odd? The Free space value does not match what we saw in the Settings or in App 2 SD. This is because, by default, DiskUsage shows the sum of the free memory on both the data partition and the cache partition of the phone storage. Since we can’t use the cache partition for anything, we might as well hide it. Press Menu | Filter and untick Show Cache in order to do so.

Much better. Now, pinch and drag to zoom and pan around the space. It’s easy to see what fraction of the phone storage each application takes up.
Wait, what’s that?

Evernote? Didn’t I move that to the SD card?

Even it you move an application to the SD card, it leaves some files in the phone storage. As you can see here, there’s data, and something called “Dalvik cache.”
Many applications have a cache for storing downloaded data so that it doesn’t need to be downloaded again. This can be erased via the application’s info screen (or en masse using App 2 SD), though no application I’ve ever used takes up enough space with its cache to be worth the bother. This is different to the application cache partition that we just told DiskUsage to ignore.
Then there’s the Dalvik cache. Without going into much detail: this can be deleted using certain applications, but there’s no point — it will be rebuilt (to the same size) the next time you restart your handset. It’s one of the system files that can only be moved from the phone storage if you have rooted.
This means that I can’t reduce the 4.54MB that Evernote is taking up unless I erase my user data or uninstall the application.
So What Can We Do?
This is a very important point: applications that have been moved to the SD card may still take up some space in the phone storage.
So, unfortunately, although fixing Contacts Storage bloat and moving applications to the SD card helps, the only real solution is to uninstall applications that take up space. DiskUsage is very useful for this, though; you can filter the data to show only the Dalvik cache sizes, so that you know which applications ‘ sizes cannot be reduced.
Any other tips on clearing out space? I’d love to read them, and I’m sure other readers would too