So what should a user do
when Android phone is running out of internal memory? Uninstalling rarely used
apps is an obvious and easiest solution. Moving apps that support Froyo’s
apps2sd feature to SD card is another option. However, for this
feature to work developers need to enable apps2sd in their apps and
unfortunately many large apps still do not support it.
How to move almost all
Android apps to SD card (no root required)
By SERGEY
POVZNER | Published: SEPTEMBER 24, 2010
[Update - May 2013] To see whether this procedure may work on your phone, check out
the new post [Follow up] List of phones that work with “How to move
almost all apps to SD card” procedure and comments
to this post. Please note that this procedure does NOTwork on the best selling Samsung Galaxy S3. [/Update]
[Update - March 2013] To help fellow Android users know whether this procedure will work
on their phone, please submit this anonymous form (link: Google Forms) indicating whether it worked for
you. Thanks! [/Update]
One of the most anticipated additions to Android 2.2 (aka Froyo)
was ability to install applications to SD card, because it helps to free
internal memory. When internal phone memory gets full, Android users have two
problems: 1) users can’t install any more apps and 2) phone starts working
slowly. The slow down is caused by the lower speed of disk write operations to
the internal memory (see this post for more information on this topic), but
the bottom line is that having low available space in the internal memory is
not desirable.
So what should a user do
when Android phone is running out of internal memory? Uninstalling rarely used
apps is an obvious and easiest solution. Moving apps that support Froyo’s
apps2sd feature to SD card is another option. However, for this
feature to work developers need to enable apps2sd in their apps and
unfortunately many large apps still do not support it.
It turns out there is a hack that lets you move almost any Android app to SD card, even if the app
developer did not enable this option. And the best part: obtaining root
is not required for this to work. More about this
hack below, but first let’s take look at the limitations of the Android apps2sd
feature.
APPS2SD
LIMITATIONS
Apps2sd functionality is
a step in the right direction. However, the way it is implemented creates some
restrictions which you should know about:
·
When an app is moved to SD card, portion of that app still remains
in the internal phone memory. On average, you can expect that application’s
footprint in the phone memory will be reduced by a factor of 2. Note that for
some apps the move will save less than 50%, e.g. Google Earth size in the
internal memory reduces from 20.5 MB to 15MB, Adobe Flash Player 10.1 – from
12.4 MB to 8 MB.
·
If you use an app widget on your
home screen, this app should not be moved to
SD card, because the widget will stop working.
·
Android OS doesn’t have any batch tools to move all movable apps
to SD card at once. You will need to manually move one app at a time by going
through the list of installed apps in Settings->Applications->Manage
Applications.
·
System apps such
as Maps and Youtube cannot be moved to SD card using
stock firmware on unrooted phone. On some phones Adobe Flash Player is
pre-installed as a system app and also cannot be moved. Providers may also
install bloatware as system apps, which also cannot be moved on unrooted phone.
However, on a rooted phone system apps can be deleted or moved – see FAQ for details.
·
If you re-flash phone’s firmware, some backup applications may not
restore your apps to SD card, but will restore them to the phone memory.
Despite these
restrictions, moving apps to SD card is a good way to free up internal phone
memory and speed up your Android phone.
MOVING
(ALMOST) ALL ANDROID APPS TO SD CARD
To run commands which will enable Move to
SD card button for most installed apps, you need to have adb
executable on your computer. Adb stands for Android Debug Bridge and is used
for Android software development, but it is a very useful tool to have for any
advanced Android user. You do not need to
have a rooted phone to run adb commands.
1. To download the latest
version of Android SDK (which includes adb executable), follow instructions
from step 2 in the Installing the SDK article from the official
Android development site. Note: you do
not need to install any other software such as Eclipse for this procedure.
2. After downloading the
archive of the SDK, unzip it to any folder and remember its location (let’s
call this folder <sdk>).
3. If you are installing
Android SDK on Windows machine, you also need to install USB driver as
described in USB driver for Windows section.
4. Connect the phone using
USB cable and do not enable USB storage mode. Go to Settings -> Applications
-> Development and enable USB debugging.
5. Start terminal window on
your computer (on Windows: click Start, type “cmd” and press Enter).
6. In the terminal window,
navigate to folder containing file named “adb” (<sdk>\platform-tools
folder) using this command: cd “full-path-to-sdk-platform-tools” (replace
“full-path-to-sdk-platform-tools” with an actual path as shown in the
screenshot below).
7. Type the following lines
(case sensitive) in the terminal window and press Enter after each line:
·
adb devices
·
This checks that the phone is connected and is in the correct
mode. You should see one entry in the list of the attached devices. If you
get “device not found” error, see Troubleshooting section below.
·
adb shell
·
If you get “cannot find file” error and are using Mac or
Linux, instead type: ./adb shell
·
pm set-install-location 2
·
(If this command doesn’t work try using the “old” command: pm
setInstallLocation 2. Thanks to polosco for the
tip.)
·
exit
·
Command prompt commands on Windows
8. Now on your phone go to
Settings->Applications->Manage Applications.
·
If you have Android 2.3 or later, click on USB Storage tab (may be called SD card). This tab shows a list of apps that either can
be installed to SD card or are already on SD card. The ones that have checkbox
on the right side are already moved to SD card (credit toMichael Scully for the tip).
·
On Android 2.2 and earlier if you don’s see USB Storage or SD Card tab,
click on All tab.
Android USB storage tab
9. Press hardware Menu button and select Sort by Size.
10. Tap on each app that is
taking significant amount of space and tap Move to SD card button.
Press hardware Back button and repeat.
11. (optional) To change the
default installation location for new apps back to the internal phone memory,
go back to your terminal window and type:
·
pm setInstallLocation 0
12. (important) Go to Settings -> Applications ->
Development and disable USB debugging. Leaving USB debugging enabled makes your
phone vulnerable (e.g. lock pattern can be reset).
13. Enjoy!
Moving Android Adobe
Flash player 10.1 to SD card (apps2sd)
SHARE
YOUR EXPERIENCE (OPTIONAL, BUT GREATLY APPRECIATED)
To help fellow Android users know whether this procedure will work
on their phone, please submit this form (link: Google Forms) indicating whether it worked for you
or not. Once sufficient number of responses is submitted, I will update
this post with the results.
TROUBLESHOOTING
·
“Device not found” error in step 7. Make sure that the phone is
connected and is in the USB debugging mode (step 4). On Windows, this error can
also mean the driver is not installed properly. Double check that you
followed USB driver for Windows steps. If you still are getting
this error, try installing a driver for your manufacturer from this link:
Tether “ADB” Driver Installation for Windows.
·
“Permission denied” error: make sure that you correctly typed
commands.
FAQ
·
Q: Does my phone need to be rooted for this hack to work?
·
A: No.
·
Q: Do I need to setup a full development environment (Java,
Eclipse) for this to work?
·
A: No.
·
Q: Can I move systems apps such as Maps, Youtube, Adobe Flash Player
to SD card?
·
A: On unrooted phone using stock firmware, no.
·
Q: I don’t have time for this hack. How can I check which of my
installed apps officially support moving to SD card?
·
Install “App 2 SD” application from Android Market
and it will list applications for which developers enabled apps2sd support.
·
Q: Can I move all apps to SD card in one operation?
·
A: Using stock firmware, no. If you know a way to do so, please
let me know in the comments.
·
Q: Can I delete bloatware apps installed as “system apps” by the
carriers?
·
Yes, but only if you root your device. With a rooted phone you
could delete unused system apps, but it gets a bit complicated. Deleting some
apps may cause problems with subsequent OS updates, so you should be careful.
See this list for Android system apps can be
safely removed. Instead of deleting, you can “freeze” unused system apps using Titanium
Backup. Freezing an app will remove it from the app drawer and memory and will
make sure it is never launched, but it will not free any space in the
internal phone storage.
·
Q: Can I move system apps such as Gmail, Google Maps to SD card on
a rooted phone?
·
A: Thanks to Dominique Tardif for this tip: “You have first
to uninstall any updates to the system apps in question. Second, using a rooted
file manager, delete the original apk from /system/app (android keeps the
system app apart from the updates, the latter being at /data/apps). Once this
is done, reboot and reinstall the app from the market. It will be installed as
a user app and as such will be movable to the sd card. As an example, my gmail,
facebook, maps etc. are all on my sd card now.”
·
Q: Can I move system apps to SD card if I’m using a custom ROM?
·
A: Yes. The most popular “aftermarket” Android firmware CyanogenMod puts the absolute minimum of
the apps in the system folder. CyanogenMod 7 also by default enables the hack
described in this post to allow most apps to be movable to SD card. As a
result, many Android apps such as Maps, Youtube, Gmail can be moved to SD card
on CyanogenMod 7, while they are unmovable to SD in the stock firmware. Note
that to install CyanogenMod the phone doesn’t need to be rooted, but bootloader
needs to be unlocked.
No comments:
Post a Comment
Thanks for taking the time to comment