Take the 2-minute tour ×
Android Enthusiasts Stack Exchange is a question and answer site for enthusiasts and power users of the Android operating system. It's 100% free, no registration required.

I would like to know whether there is a way to tell Android to install applications on the micro SD card by default instead of having to download applications to internal memory first and then having to move them to the SD card manually.

Thanks

share|improve this question
    
possible duplicate of Is moving apps to SD only available to rooted devices? –  GAThrawn Apr 11 '13 at 16:50
    
specifically because of @Yeradis answer android.stackexchange.com/a/4976/156 –  GAThrawn Apr 11 '13 at 16:50
1  
@GAThrawn No, that's not a dupe of that. The question you linked is rather "can one move apps to SD". This one is "how to specify the default install location". Same street, different house. –  Izzy Apr 11 '13 at 21:04

3 Answers 3

up vote 10 down vote accepted

This article at HowtoGeek describes a possible way utilizing the :

  • enable USB debugging
  • connect your device to your computer
  • execute the command adb shell pm setInstallLocation 2
    (or, new syntax, adb shell pm set-install-location 2)
  • disconnect, done.

This command will set the devices default installation target to your SDCard. That doesn't necessarily mean everything gets installed there: only apps supporting this will go there, and devs can "overrule" this in their apps manifest if they think it's needed. From the linked API reference:

Changes the default install location. Location values:

  • 0: Auto—Let system decide the best location.
  • 1: Internal—install on internal device storage.
  • 2: External—install on external media.

Note: This is only intended for debugging; using this can cause applications to break and other undesireable behavior.

For more details on ADB, and how you can e.g. get a minimal version of it to your computer (without the overkill of installing the entire SDK), you can take a look at the tag-wiki.


Update: To avoid confusion with t0mm13b's answer, some clearance on the installation process:

  1. you find some app on and decide to install it
  2. after you've clicked "install" and agreed on terms/permissions, the is downloaded to /data/local, i.e. to your . You can't change that.
  3. when the download is completed, the .apk will be installed automatically. Where to, depends on multiple things:
    • if the dev did not specify the android:installLocation property in his apps Manifest, the app will be installed to internal story. Full stop, no other choice (see: API reference).
    • if this android:installLocation is set to preferExternal, and external storage is available, it will go there.
    • if it's set to auto, it again depends:
      1. does the app contain widgets, services, wants to start at boot, and several other things, it goes to internal storage. Full stop, no other choice.
      2. it goes where the devices "default install location" points to
share|improve this answer
    
might help to include a warning - its not guaranteed to work, especially if an app has their own widgets... :) –  t0mm13b Apr 11 '13 at 18:08
    
As I wrote: only apps supporting this will go there :) Widgets, services, etc are telling it does not support it :) –  Izzy Apr 11 '13 at 18:22

That cannot be changed! That is how Android works.

All downloads from Google Play goes to the internal filesystem, then from:

  • Settings > Manage applications
  • Tap on said app, check if button Move to SDCard is enabled, then you can do so.

If the button Move to SDCard is disabled or greyed out, its probably to prevent the app from functioning - such as their own widgets on home screen.

Also, see this answer in the related side-bar to the right of this page. :)

share|improve this answer
1  
Are you sure, t0mm13b? Wasn't there some ADB command to adb shell pm setInstallLocation 2 (i.e. SDCard), as described here? –  Izzy Apr 11 '13 at 16:32
1  
A developer can specify that in the Manifest to give the app the capability to be moved to the SDCard. android:installLocation="auto" Have not seen adb shell pm setInstallLocation 2, presumably you specify the package name in that case... –  t0mm13b Apr 11 '13 at 17:53
1  
Nope, t0mm13b -- see my answer and the linked article. This sets the device's default install location. So if the Manifest says "auto", that's where it goes. If the Manifest says other than "auto", it goes where the Manifest says. See also: API ref, also here for the pm set-install-location (new syntax) command. –  Izzy Apr 11 '13 at 18:21
1  
Izzy - what I specified about AndroidManifest's android:installLocation - actually enables the Move to SDCard from the manage app settings...some devs do not specify it and renders the button being disabled but I concede - never seen the adb command to do that either –  t0mm13b Apr 11 '13 at 18:44
1  
Ah, now I get it -- different focus: You were saying "if an app is not intended to be installed on SD, you cannot do so" -- while I was focusing on where it goes to by default unless specified otherwise. But please check your answer's first 4 lines, they say something different. You are however correct: The download first goes to /data/local, and from there the app is installed. But depending on settings and manifest, it is installed either to internal or directly to external from there. // If you like to discuss this in detail: you remember our pub, ahem, chat? :) –  Izzy Apr 11 '13 at 19:14

Go to "Manage apps" and then select the "All" tab and find "Google Play Store". Tap on it and then press the "Uninstall updates" button. After that, go to the Play Store all the apps will be installed on your SD Card. This is what I did on my QMobile A110 (Android 4.2).

share|improve this answer
    
I think you are missing the middle step somewhere where you set the default install location to be the SD card and even then, it doesn't always work this way for every application. –  Enigma Oct 20 at 18:45

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.