If you're following me here you'll know that I've been having frustrating problems with storage on my Android phone. I'm happy to report that my immediate problems have more or less been solved, though my actions didn't have much to do with it. Last time I mentioned that I thought it was a software problem and that one suggested solution was to move apps from external to internal storage and see if one of the apps resident on the SD card was causing the OS to dismount the card.
After a couple of rounds of this annoying tedium I realized one first step I could take was to reboot the phone into safe mode to see if any of the downloaded apps were causing the problem, or if the actual source of the issue lay elsewhere.
I rebooted the phone into safe mode and waited a few minutes. Sure enough, the phone dismounted its SD card, right on schedule.
It didn't seem to matter whether I had any apps on the phone at all. The problem was apparently either preinstalled software or hardware. I was, without any particular evidence, leaning towards hardware. I thought about buying a new SD card, but that seemed like it might be throwing good money after bad.
One evening after I had mostly given up on the problem and was researching new phones, I got a notification of a system update. I was kind of surprised that my phone manufacturer had even gotten around to updating the OS, but happily so. I figured updating the system couldn't make things much worse than they already were.
Well, what do you know? Updating the OS changed my problem from "the phone dismounts its SD card three to five minutes after reboot" to "the phone intermittently dismounts its SD card a few days after reboot". That is more or less acceptable, where five minutes of uptime is not. I'm now reasonably pleased with the current behavior of the phone. I mean, I reboot the thing every couple of days on average because something gets wedged anyway.
Nonetheless I continue to be peeved at the way Android handles external storage. Over lunch last week, as we were both grumbling about our phones, a friend compared the way Android deals with external storage to the bad old days of the 640k RAM limit on the PC. It's not directly analogous--storage, not memory, for one thing--but it does require some irritating workarounds of its own.
For example, I have a fair amount of space remaining on my SD card: about 9GB. This does not help me with my internal storage crunch, however, as I have less than 720MB left there. And that's what matters to the Google App Store: if I don't have sufficient space in internal storage to download and uncompress an app, I can't install it on the SD card. More irritating is that when the App Store discovers this, it throws up a menu helpfully listing the amount of storage you're short of, and then deeply unhelpfully lists apps you might delete from the phone, without regard to where those apps are stored. This is dumb, because you can delete apps off the SD card all day without making the least difference to the App Store, which will unhelpfully continue to suggest more apps to delete.
Since all my large apps are now on the SD card, the apps the App Store will list first are invariably the ones on the SD card, and thus useless in resolving the internal storage space problem.
This design makes access to the SD card subject to the bottleneck of one's internal storage limit. I feel for my friend: his phone has 4GB of internal storage and it's manufactured by Samsung, which I understand to be one of the bigger offenders when it comes to manufacturer-imposed software bloat. At least I have 8GB of internal storage to start with, because Android takes up over 3GB of that. He's left with less than a GB of internal storage after Google and Samsung are done with his phone.
Moreover, the App Store doesn't tell you whether a particular app can be moved to the SD card. You have to install it and then go into settings to see where the OS put it. I've been doing a lot of this: download, check, delete if installed in internal storage. It is tedious.
For most apps, I suspect there's no very compelling reason to require that it be stored internally but it does require an active effort by the developer to allow the app to be moved to external storage. In any case, a vast number of apps have to be installed in internal storage.
There are a couple of fixes, none of which are immediately appealing. First, I could root my existing phone and then shove all the apps onto the SD card. Seeing which ones then broke would be entertaining, if not entirely useful.
Alternately I can buy a phone with lots of internal storage and/or no SD card slot whatsoever. This is the iPhone solution, and there are a number of Android phones with the same philosophy: no external storage equals no problem with a distinction between internal and external storage.
The downside of this, of course, is that no external expansion means you pay over the odds for storage and are stuck with your decision after purchase, because internal storage is fixed and invariably more expensive than that on an SD card. It does eliminate an entire class of issues with regard to storage--for example, if I'd bought a phone with plenty of internal storage this problem would never have happened to me at all--but the web is full of griping about the markups phone manufacturers get away with on internal storage.
One final note is that in copying over the 9000+ images I have taken on my phone I noticed two were corrupt, and caused my phone to dismount the SD card when I tried copying them. So it's possible my actual problem is that SD card has bad sectors and the OS was coping with this problem ungracefully by dismounting the SD card instead of just locking out the bad sectors. In any case I've already copied those particular images on a previous backup so the data is fine. Everything else on the SD card is an app, and so easily replaceable as well.
Really what I need is a new camera because I shot nearly all of those 9000+ images during the time I've been without a camera. I much, much prefer having a standalone camera to shooting with a phone, but that is a rant for another day.