# Android “Internal Storage” used but not reported

As an owner of a Nexus One running Gingerbread, I'm continually fighting to keep free space in my phone's Internal Storage. Today, I noticed something odd.

The bottom of Andorid's "Manage applications" screen shows a bar graph that reports the phone's "Internal storage" (I have 29M free). When I click into an app, I can see storage for the "Application", and for the app's "Data". The application, in most cases, is stored on the SD Card. The application's "data" is stored on the phone (I presume).

What I'm finding is that I'm not seeing the whole picture of what is taking up Internal Storage. For example, I have 29M free in Internal Storage. The Angry Birds app, which is stored on the SD card, is 3.14M. It's Data is 4.0K. I then delete the Angry Birds (gasp!), and my free Internal Storage jumps up to 31M. So it looks like it's freed up 2M, when I only would have expected it to free up 4.0K. Any idea what's going on here?

The free space difference can be accounted by three relevant factors that may end up giving you some misleading information about the real space available on your internal storage:

1. The Free space reported

The free space reported at the end of the "Manage Applications" screen is rounded to MB, and it gives you a general free space estimation based on the moment you opened said screen, and it gets updated from time to time (by my tests about every minute).

I've mentioned "rounded" because if you access the "Storage Settings" panel, you'll get a clear picture regarding the free space available, down to KB.

2. The App Allocation

As already mentioned by t0mm13b, an application may be entirely moved to the SDCard or leave a portion behind, this issue is more related with the development of the application itself and there's no standard rules to follow.

I've performed an exercise with "Angry Birds", and while the download mentioned 20MB, after installed it consumed 24MB. After moving it to the SDCard using the option for this end under "Manage Applications" screen, 1.85MB were left behind on the Internal Storage, plus 4KB of data.

3. Temporary System Files from other applications or running services

While I was writing this answer, the free space reported varied between 2MB, this tells us that the OS is constantly creating and freeing up space depending on the stuff running.

There may exist other factors that concern the ext4 File System specifications used by Gingerbread , but I don't believe they better account for the 2MB difference.

By the three points mentioned above, while performing an exercise with the application you've mentioned using a device with a stock Gingerbread ROM, I've managed to account for 2MB of difference, just like the space you've mentioned.

# Determine Internal and External Space Occupied

Following up on the comments, regarding a way to accurately know how much an app occupies on the device, and being able to view it by external or internal storage, the most accurate application I'm currently using is SanDisk Memory Zone by SanDisk Corp. available for free from Google Play Store.

1. Open the application
2. Select the desired storage
3. Check the details about it

• Very good explanation, as always when Zuul does it :) So would you say there's any way for the end-user to clearly determine how much space is consumed by an app, and where -- not involving "complicated things" like e.g. use of terminal apps? As we've got many questions here concerning "where's my storage gone", this would be a great help. – Izzy Aug 25 '12 at 15:58
• Adding to my previous comment, as I didn't make that clear: I meant determine how much space is occupied by an app on internal storage, and how much on external storage -- i.e. to see how much and where. Best of course is if one could see all this in one place -- as opposed to what I showed in my answer with the graphical storage explorers. – Izzy Aug 25 '12 at 21:28
• I believe its the apps dex files that tend to stay behind the phone memory when its moved to SD using stock Apps2SD. So my theory is, lesser the app's dex files, more efficient becomes App2SD. – Irfan Aug 27 '12 at 10:35
• I already asked myself whether Dalvik cache is included with the given "app allocation". Same for temporary files, which would be identifyable via their owner (uid) -- but this would require a full file system scan, which would cost a bit time and ressources but theoretically could be done on demand (via some rescan button). – Izzy Aug 27 '12 at 14:49
• Thank you for the addition, @Zuul! As you use that app: The screenshot shows no division on "phone memory". Does it distinguish between the /data and /data/data partitions, which often causes confusions (if those are separate partitions -- which is not true for all devices / Android versions)? – Izzy Sep 1 '12 at 14:57

Checking around, I just found a few useful apps which reveal where the storage goes.

For one, there's DiskUsage. Though the screenshot1 shows the sdcard here, the video on the apps playstore page makes clear it can be used on internal storage as well -- and even links to the apps page you usually find via Menu -> Applications -> Manage Applications. You can walk and zoom in/out each area, as the annotations on the screenshot show.

My second candidate is Folder Size Chart, which comes with a different design and, as seen in the screenshot2, can also deal with internal storage.

These two may definitly help to identify "storage hogs". There are many others found in the playstore which follow this concept, but most are limited to the sdcard or require root access.

As the N1 is closely related to the HTC Incredible you might be running into the same low storage space issue that plagues Incredible users (like myself). I asked a related question when I started experiencing apps force-closing due to a lack of partition space and later consolidated my understanding of the data partitions in an answer to a question about False “low on space” (internal storage) warning on HTC Incredible:

...my app settings screen shows me what must be the /data usage (never close to full, numbers match /data size reported by DiskUsage) even though my apps are actually constrained by the much smaller /data/data (where I run out of room often)...

I found that the number reported as "Internal Storage" was reporting something entirely unhelpful and was, by all accounts, useless in helping me actually manage app storage. I concur with Izzy in his recommendation of DiskUsage, I found it very helpful especially when rooted (with root permissions it can display /data/data partition usage). Using terminal emulator to investigate usage was also helpful in diagnosing my problem. When you take a look at your /data and /data/data partitions, do you see the same discrepancies?

This sounds like you are using Apps2SD or equivalent whereby, moving the app onto the SDCard, only a portion of the app is stored in the internal storage and the rest on the SDCard.

For verification, check your SDCard and see if the app's data is still there, this should be present in /sdcard/Android/data/ followed by the package name of the installed application.

That is a normal mechanism of the Apps2SD.

• Thanks, I am using Link2SD. I didn't realize that it leaves a portion of the app behind. This helps explain it. – rcourtna Sep 6 '12 at 14:25

Many people have that kind of problem and I have the same one. Moving apps to SD card just delays a bit the problem because something else fills up the internal storage. I finally figured out and it works great.

I have a Galaxy Tab 7 but many android devices will experience that. The one called /data is actually not really just data but it is where Android install the application apk and some of the data related to it. If you force the apk to install on SD card, it will still use some of the /data space (small amount) for some data.

The problem I discovered is in /data/tombstone, you will find 10 files named tombstone_0#. These are constant/non-stop debugging info collected by android. These files build up over time. You don't need that for a normal user. Delete all of them. These 4 files were using 1.4GB of my 1.89GB internal tablet storage.

To do so, you will need to root your device. Yes, you must. And it won't explode don't worry, I've done it and many others too! Then get a program like "Root Explorer" to browse and delete the junk. It will request and be granted root privilege if you rooted your device before and you will be able to do whatever you want.

To root your device, just google "root android [my device model]" and you should find quickly how to root your device.

This problem is a design flaw. When there is a low internal storage, Android should start a background task to clean up that junk.

• Please also see my comments on your similar answer here -- I never saw tombstones occupying more than 10MB, your case is the first. And even if, it requires root to remove them. PS: As "tombstones" are what's called "core dumps" on Unix/Linux, their size varies with the memory used by their corresponding (crashed) processes. Obvioulsy yours have been quite memory-hungry apps :) – Izzy Oct 10 '12 at 20:23