Wednesday, 21 September 2011
Why your app says "no" when you try to move it to your SD card
Hey hey, you you, get off of my card!
Browse the market and you'll find bazillions of comments along the lines of: "Crapware! Dis app sux donkey ass. F*kking piece of shyt wont instal on SD."
Needless to say, the commenter usually blames the app developer for doing the right thing.
Because not all apps can run from your SD card, and even for those that can there are often good reasons why they shouldn't.
In a perfect Android world no app would run from your memory card, because you'd have so much internal memory on your phone that there'd be no need to send apps away. SD cards are more likely to be bitten by data corruption. If they're not mounted, your phone won't see them so the apps on them won't run. Memory cards are much slower than your internal memory. There are plenty of reasons why you should only install apps on your SD card if you're really out space on your internal phone memory. Moving apps to SD is a measure of last resort, and you'll need to think carefully about which apps you can dump on your card and which apps you shouldn't.
To card or not to card
Apps on your memory card are stored in a folder called .android_secure. If you open this folder in a file manager on your phone it appears empty, but if you browse your memory card from a computer you'll see what's inside. Dictionary app Euro Dictionary stores stuff in that folder, and so does language tutor busuu. Apps that require large external libraries tend to store 'em on your memory card by default because they have good reasons for that.
And then there are apps which have no business on your SD card, because that would simply break them.
Any app with widgets needs to live on your internal phone memory. Put 'em on your SD card and your widgets won't work properly, because whenever your SD card is unmounted your phone won't see what's on it.
Anything that needs to autostart before other apps doesn't belong on your SD card either. You'd want a security app like LBE Privacy Guard to start before anything else does, wouldn't you. And DroidWall would be even more leaky on boot if it would sit on SD. Anything you move out of internal memory starts after everything else does.
Launchers? Try to move 'em to SD and see what happens. VoIP apps? Put 'em on SD and nobody can reach you when you're copying music from your PC. Alarm clocks and calendars? If your SD card is talking to your computer instead of your phone you'll oversleep and miss your flight. Keyboard apps have no business on your external card either.
And yet people punish developers by spitting negative comments and one star ratings at apps that they can't push to their cards because that would break 'em. Maybe developers should use their market descriptions to explain why their apps won't sit on SD to educate the ignorant?