Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Handling full disk storage in Android

This question has evolved a bit from the initial one, here's a short info:

I filled up the disk storage on the emulator and got it absolutely useless - the process android.process.acore is displaying the "... has stopped unexpectedly" dialog in a loop, so nothing can be done on the system. I can't even turn it off with the power button on the right (it's tried to power off for 10 minutes now, logcat is full of exceptions). Great it's an emulator, I wonder what would happen if it was my real device..

Maybe someone can elaborate on the reasons for this behavior - should it be like this?

Here's the initial question, please also refer to my edits:

I'm curious about handling a random situation such as running out of disk storage on an Android device.

I looked over the examples on developer.android.com and I see they don't even bother to do exception handling.

I can see that when it comes to SQLite classes, there are a couple of exceptions, such as SQLiteOutOfMemoryException, but I can't find any information when and how to handle these scenarios.

Does anyone have experience with:

  • bulletproofing an app for such an edgy situation
  • ways to test this on an emulator
  • feedback from frustrated users (maybe heard of any frustration with the example-apps or even core apps..?)

Thanks in advance for your time guys.

[Edit]

I also run into this bite on Android issue tracker:

http://code.google.com/p/android/issues/detail?id=1653

It's kind of mysterious.. and seems it's a ghost since 2008.

[Edit2]

Alrite, with the advice from the comments: I just did a test using:

dd if=/dev/urandom of=file

with parameters bs and count chosen to fit the remaining space,

and filled the /data partition.

How amazed I am that Google Maps just crashed on the SQLiteFullException. Actually all the apps crash - even Phone.

Is it true that nobody handles those exceptions? Is it ok that those applications just get killed with the "..has stopped unexpectedly"?

like image 422
chemical Avatar asked Jun 03 '11 19:06

chemical


People also ask

What happens when phone storage is full?

And when a phone's storage is almost full, it will automatically remove all backed-up photos and videos. If you don't want to do that, you can manually clear out your downloads by going through your download directory, Fisco says.

Why is my phone storage always full Android?

Old or Unwanted Songs, Podcasts, and Videos Some podcasts and videos are hours long, and it's easy to forget just how much storage it takes to keep them on your phone. It's important to check your downloads frequently to make sure you're not holding onto large files.


1 Answers

The way I handle this is with error handling around all file operations so that the app won't just crash, and I do a file stat (https://stackoverflow.com/a/5083482/1317564) on the directory being used by the user to ensure there's enough free space. If not, I show them a nice big error message. ;) Generally the phone itself will do plenty of complaining as well, so they should notice the problem sooner or later.

like image 101
Learn OpenGL ES Avatar answered Jan 05 '23 04:01

Learn OpenGL ES