我知道开发人员通过清单中的android:installLocation” attribute
选择允许。我的问题是:允许或不允许的原因是什么?
我经常看到许多应用程序不属于下一个列表中的任何catregories。他们不允许移动到SD卡,为什么他们会这样做?可以提供什么样的优势/利益。
- 服务
- 警报服务
- 输入法引擎
- 动态壁纸
- 应用小工具
- 客户经理
- 同步适配器
- 设备管理员
- 收听“启动完成”的广播接收器
答案 0 :(得分:2)
根据the documentation,在以下情况下,您不应允许将您的应用安装在外部存储上:
- 服务
- 警报服务
- 输入法引擎
- 动态壁纸
- 应用小工具
- 客户经理
- 同步适配器
- 设备管理员
- 广播接收器正在侦听"启动已完成"
文档继续说:
默认情况下,系统不允许您的应用程序安装在外部存储设备上,因此您不必担心现有的应用程序。
这意味着默认情况是不允许在外部存储上安装。这可能意味着很大一部分不能安装在外部存储上的应用程序只是开发人员根本不知道installLocation
并使用默认行为的情况。
您需要单独分析每个应用,以确定开发者是否专门设置了installLocation="internalOnly"
,或者他们是否完全忽略了它以确定它是否是有意的。< / p>
答案 1 :(得分:0)
我认为主要原因(也可能是唯一原因)是因为手机可能没有太多内部存储空间。因此,这样手机可以利用外部存储,允许用户在内部存储空间满时安装更多应用。我假设您已阅读以下文件。它没有提到这个答案,但我认为这就是它存在的原因。
https://developer.android.com/guide/topics/data/install-location.html
编辑:我认为有很多低端设备的内部存储与外部存储相比非常低。
编辑2 :为什么不这样做是因为外部存储上的所有数据都是世界可读的。因此,如果您的应用程序存储数据,则可以将其取出并在其他设备上读取。根据应用程序的不同,您可能不希望这样做。