Juan T
Juan T

Reputation: 1219

Why some apps can't be moved to the sd card?

I know that the developer chooses to allow that or not via the android:installLocation” attribute in the manifest. My question is: What are the reasons to allow that or not?


I often see many apps that don't fall in any of catregories of the next list. They don't allow moving to the sd card, why they would do that? What type of advantage/benefit could that give.

  • Services
  • Alarm Services
  • Input Method Engines
  • Live Wallpapers
  • App Widgets
  • Account Managers
  • Sync Adapters
  • Device Administrators
  • Broadcast Receivers listening for "boot completed"

Upvotes: 1

Views: 1072

Answers (2)

ianhanniballake
ianhanniballake

Reputation: 200110

Per the documentation, you should not allow your app to be installed on external storage in the following cases:

  • Services
  • Alarm Services
  • Input Method Engines
  • Live Wallpapers
  • App Widgets
  • Account Managers
  • Sync Adapters
  • Device Administrators
  • Broadcast Receivers listening for "boot completed"

The documentation goes on to say:

By default, the system will not allow your application to install on the external storage, so you don't need to worry about your existing applications.

This means that the default case is to not allow installation on external storage. That may mean that a large percentage of apps that are not installable on external storage are simply cases of the developer being unaware of installLocation at all and using the default behavior.

You'd need to analyze each app individually to see if the developer has specifically set installLocation="internalOnly" or if they've simply left out it at all to determine whether it is intentional or not.

Upvotes: 2

Michael Vescovo
Michael Vescovo

Reputation: 3941

Well I think the main reason (and possibly the only reason) is because the phone might not have much internal storage. So this way the phone can utilise external storage to allow the user to install more apps when the internal storage is full. I'm assuming you've read the following document. It doesn't mention this answer but I think that's the reason why it exists.

https://developer.android.com/guide/topics/data/install-location.html

Edit: I think there are quite a few low end devices where the internal storage is very low compared to external storage.

Edit 2: The why not do this is because all the data on external storage is world readable. So if you're app stores data it can be taken out and read on some other device. Depending on the application you may not want to allow this.

Upvotes: 0

Related Questions