This piece on Android Police is painfully true, even though to be honest the screenshots show a huge improvement over the versions I’ve used. But the UX is really the last thing to hate about Android. Well, it was on the first one I had, which was a poorly integrated hacky mess.
No, the worst thing in the Android world is how it treats storage, which is pretty fundamental to an operating system. Typically, a device ships with a relatively small chunk of integrated Flash storage, and a slot for a SD card. I’m fine with this. Expandability is good. And there’s plenty to say for the common Linux pattern of keeping the system and data (or sometimes, the kernel and userland applications) on separate disk partitions.
On the other hand, it was always idiotic to try to force this, and try to stop you keeping applications on the SD card. That’s mostly gone these days. However, just because an app lives on the SD doesn’t mean that it keeps its data there. And you can’t move an app that the vendor, the Open Handset Foundation, or the carrier installed with root privileges. Also, a lot of app developers like to log stuff.
The upshot of this is the storage crunch. Progressively, system apps bloat out until the system starts to throw moan messages about low storage. And now you’re in the tank. The storage menu for “internal storage” shows you apps whose data is stored on the SD card, which doesn’t help. Depending on how you arrive at it, it may be sorted by file size, or it may not. Some of them you can flush, others you can’t. And there is so much crap. (“Win Cash!”, I kid you not, installed as root.)
Not only is there a lot of crap, it’s all logging away. I don’t use any of this stuff, but it still reliably wakes up (due to the idiotic “launch all the apps on startup” anti-pattern) and writes to storage. And a lot of it is useless. “My Downloads Provider” seems to duplicate the function of a default downloads folder in the file system, but still reliably bloats out to 180KB or so. “Contacts Storage” is using 8.5MB of precious internal storage, when the vCard file containing my contacts is 230KB. Inevitably, though, flushing the storage disposed of all the contacts, which implies the implementer actually set out to destroy data if the thing ran out of storage. There has never been an option to move contacts to the SD, which is stupid, as contacts are one thing you’re certain to want to move between devices.
In fact, doing stuff that the file system just does is a major issue. If it’s that worrying that some app might keep songs in /sdcard/songs not /my_songs/ or whatever, just provide a stub API saveSong() that writes to the folder. You don’t need a database and you don’t need logging! It’s a strange thought that it’s a Linux under the bonnet, partly because of the rules-y side and partly because it’s so keen on not just using the damn file system. Further, I suspect that a lot of the logging has a vague “err, we’ll use it for ad targeting” intention behind it.
The “low storage wizard” is hideous in itself. The threshold that triggers it varies between applications; for example, it is much more likely to go off if you’re trying to read SMS messages, and I really suspect that this is some nudge bullshit to manipulate you into taking it seriously. When you delete stuff, you don’t necessarily get the space back, or sometimes you get more, and the free space counter doesn’t agree with the wizard. There is a lot of fuzzy maths – clear 11.4MB of browser cache, gain 500 or so KB of space, drop 8MB of whatever the contacts store keeps, gain 25MB of space. Eh?
Perhaps it’s fixed in the next version. But every time the update push happens, I can’t install it; I don’t have any internal storage free.
Now, of course, there are the indie ROMs. As far as I can make out, CyanogenMOD 9 will work but the camera doesn’t and neither does GPS. The much older, but stable 7.2 has fewer bugs but the maintainer probably won’t maintain it any longer. SpeedDroid seems feature-y, but has some horror bugs (“phone crashes and deletes all my contacts and data”, yes, why, Mr. De Havilland, I’ll be delighted to test your new aeroplane). Hmm. Wildchild 2?
(I remember when XDA-Developers was pretty quiet, but was actually full of people developing for the XDA, aka a name one of the British carriers stuck on a HTC Windows Mobile 5 gadget when that was the only half decent non-Symbian smartphone you could get. Yeah, I know, piss off grandad. Maybe I’ll get one of those iPhones…when I’ve finished laughing.)