2017-02-27 194 views
0

我知道开发者选择允许或不通过清单中的android:installLocation” attribute。我的问题是:允许或不允许的原因是什么?为什么有些应用程序无法移动到SD卡?


我经常看到许多应用程序不属于下列列表中的任何一个目录。他们不允许移动到SD卡,为什么他们会这样做?什么样的优势/好处可以给。

  • 服务
  • 报警服务
  • 的输入法引擎
  • 动态壁纸
  • 应用小工具
  • 客户经理
  • 同步适配器
  • 设备管理员
  • 广播接收机监听“启动完成”
+0

请参阅:https://developer.android.com/guide/topics/data/install-location.html#ShouldNot –

+0

您是否阅读过installLocation的文档? –

回答

2

the documentation,你不应该允许对外部存储器安装在下列情况下,您的应用程序:

  • 服务
  • 报警服务
  • 的输入法引擎
  • 动态壁纸
  • 应用小工具
  • 客户经理
  • 同步适配器
  • 设备管理员
  • 广播接收机监听 “启动完成”

的文件接着说:

默认情况下,系统将不允许您的应用程序安装在外部存储器上,因此您不必担心现有的应用程序。

这意味着默认情况下不允许在外部存储上安装。这可能意味着很大一部分不能在外部存储器上安装的应用程序只是开发人员根本不知道installLocation并使用默认行为的情况。

您需要分别分析每个应用程序,以查看开发者是否专门设置了installLocation="internalOnly"或者他们是否完全忽略它以确定它是否有意或无意。

+0

但我经常看到许多不适用于这些应用程序的应用程序。他们不允许移动到SD卡,为什么他们会这样做?什么样的优势/好处可以给。 –

+1

同样根据文档“默认情况下,系统将不允许您的应用程序安装在外部存储上,因此您不必担心现有的应用程序。” - 他们可能没有改变默认值。 – ianhanniballake

+1

我认为@ianhanniballake在这里有正确的答案 - 如果大多数开发者甚至不知道这个权限,那么他们可能根本就不会去考虑它,所以大多数人根本不会为它添加配置。而且,当然默认是不允许的。 – GreyBeardedGeek

0

嗯,我想最主要的原因(也可能是唯一的原因)是因为手机可能不会有太大的内部存储。因此,这种手机可以利用外部存储,以允许用户在内部存储空间已满时安装更多应用程序。我假设你已阅读以下文件。它没有提到这个答案,但我认为这就是它存在的原因。

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

编辑:我认为有相当多的低端设备,其中相对于外部存储内部存储是非常低的。

编辑2:为什么不这样做是因为外部存储上的所有数据都是世界可读的。因此,如果您是应用商店数据,则可以将其取出并在其他设备上阅读。取决于您可能不想允许的应用程序。

+0

但是“为什么不”。 –

+0

嗯,我没有复制粘贴从我贴的链接,但我把“为什么”。另一个答案只是说为什么不。此外,我首先发布(我只是没有把链接的内容,因为我不知道你是否读了它 - 为未来的答案学到了教训)。这么多答案没有回应。 –