August 3, 2010 | by Lars Aronsson
The Android 2.2 Froyo feature that most people have been looking forward to is likely official support for installing apps to the SD card. It’s something that many feel should have been included from the start, and I guess we’ve all gotten the dreaded “phone storage is getting low” notification on our Android devices at one point or the other. I personally ran out of internal storage just one day after I bought my HTC Desire (impressed or appalled?).
>>> Don’t forget to read many more useful Android hacks and tricks from Androinica.
There are certain tricks to regain a couple of MB here and there, like clearing the cache that some applications use, but for those with a taste for apps and games, the phone storage limitation has been quite a nuisance. Android users with root access have been able to enjoy the Apps2SD utility, but getting it to work is a comparatively complicated process. Frozen yogurt to the rescue!
To install an app to the SD card on Android Froyo, the application itself needs to support it. In my experience though, most current apps can be moved to the external storage. However, the Froyo system installs all new applications on your device’s internal memory by default, except for those that explicitly request external installation. Luckily, it’s possible to make your Android 2.2 phone put apps on the SD card by default instead. Here’s how:
- First you have to enable USB debugging on your Android device from Settings > Applications > Development > USB debugging.
- Now you need to download and install the Android SDK on your computer from http://developer.android.com/sdk/. Once you’ve downloaded and extracted the package to the folder of your choice, run SDK Setup.exe and click on Available Packages to the left. If you get an error message at this point, enable “Force https://…” in the Settings. From the list of available packages, select “Usb Driver package”, click on the Install Selected button in the bottom right corner and follow the prompts.
- Connect your phone to your computer with a USB-cable. Your OS will prompt you to install new drivers. Choose to install them from the android-sdk/usb_driver folder. Do not mount your device; you only need to plug-in the cable.
- Next, run a command prompt and navigate to the Android-SDK\tools folder. In Windows, this is done by selecting Run from the Start Menu (or by pressing Win+R) and typing cmd. You change drives in the command prompt by entering the drive letter followed by a colon (:), and change folders with the CD command. For example, to enter the Android-SDK folder, simply type cd android-sdk.
- In the Android-SDK\tools folder, type in adb devices and you should get a serial number starting with “H” in return. All you have to do next is entering adb shell pm setInstallLocation 2. Voilà, you’re done! Android will now install apps to the SD card by default.
- To switch back to storing software on the internal memory, enter adb shell pm setInstallLocation 0.
I should point out that it’s preferable to install certain apps to the main memory, since it will take a while before the SD card becomes available when you start your phone. Applications installed on the memory card will also be unavailable to the system each time you mount your phone as a disk drive. The internal storage is probably quicker as well, even though Google claims that “there is no effect on the application performance so long as the external storage is mounted on the device.” In general, apps that integrate with the Android OS and that often run in the background is better to install on the internal storage, while games and most other applications will have no problem chilling outside on your SD.
Update: Homescreen widgets should be installed to the internal storage as well. I noticed that LauncherPro, for example, won’t recognize widgets stored on the SD card when you start your phone, because when the app is launched, the memory card is still unavailable.