指定应用的安装位置
Android清单文件中的设置决定了您的应用在Fire设备上的安装位置。存储位置共两个:
- 外部存储(如SD卡)
- 内部存储(使用设备的内存)
Fire TV Stick没有外部存储空间,但Fire TV(第1代和第2代,但不包括第3代)通过存储卡插槽提供外部存储选项。
通常,应用应该指定外部存储作为默认安装位置。
最佳实践
作为最佳实践,大多数应用应该在Android清单文件中为installLocation
指定preferExternal
。如果未指定,则会在内部存储中安装您的应用。
占用内部存储可能导致:
- 应用安装数减少
- 应用评级差
- 负面客户体验
某些用户可能在外部存储空间中有足够的可用空间,但如果应用的清单没有指定preferExternal
,则应用将安装在内部。因此,用户会收到存储空间不足警告,或者根本无法安装应用,从而让用户失望。
选择preferExternal
有助于确保应用拥有最大的用户群,并在Fire设备上获得更好的用户体验。
如何指定外部存储
在应用的AndroidManifest.xml
中,在<manifest>
标签内添加installLocation
属性并将其值设置为preferExternal
。示例如下:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="preferExternal" ... >
...
</manifest>
installLocation
参数具有多个可用值:
installLocation值 | 描述 |
---|---|
preferExternal
|
推荐用于大多数应用。将应用安装在外部存储上(如果可用)。如果外部存储已满,则将应用安装到内部存储(如果可用)。用户以后可以手动移动应用,方法是从“Settings(设置)”>“Apps & Games(应用和游戏)”>“Manage All Applications(管理所有应用)”中选择该应用。 |
internalOnly
|
仅将应用安装到内部存储。如果内部存储空间不足,安装将失败。用户以后无法手动移动该应用。不建议用于大多数应用。仅为下一节中描述的应用类型选择此选项。 |
auto
|
默认情况下安装到内部存储。但是,如果内部存储已满,则将应用安装到外部存储(假设外部存储可用)。用户以后可以手动移动应用,方法是从“Settings”>“Apps & Games”>“Manage All Applications”中选择该应用。 |
请注意,即使APK文件安装在外部存储中,所有数据库、私有用户数据、优化的.dex文件和提取的本机代码都存储在内部存储中。
有关更多信息,请参阅Android文档中的应用安装位置。
何时选择内部存储
大多数应用应该为installLocation
选择preferExternal
。但是,受DRM保护的媒体应用是一个例外:
- 如果您的应用播放受DRM保护的媒体,则如果USB存储变得不可用,DRM资源可能会变得不稳定。
- 如果您的应用播放受DRM保护的媒体,则根本不应包含
installLocation
,或应将其值设置为internalOnly
。
除了受DRM保护的媒体应用外,切勿在外部存储器上安装以下类型的应用:
- 服务
- 警报服务
- 输入法引擎
- 账户管理器
- 同步适配器
- 设备管理员
- 侦听“启动完成”消息的广播接收器
- 动态壁纸(在Fire OS上不支持)
- 应用小部件(在Fire OS上不支持)
有关更多详细信息,请参阅Android文档中的应用安装位置。
Fire TV外部存储设置
Fire TV(第1代)支持USB外部存储,Fire TV(第2代)包括用于外部存储的microSD插槽。在这些设备上,为用户提供了用来管理所连接外部存储的设置。
用户还可以将内部存储的应用移动到SD卡:
处理应用中的二次下载
对于在第一次运行时或在任何其他时间自身执行二次下载的应用,这些下载的文件通常存储在设备上安装APK文件的位置。如果应用安装在外部存储上,则APK文件将位于外部存储上。
某些应用(特别是游戏)使用包含附加纹理、关卡或其他资产文件的二次下载。如果您在应用代码中处理此下载(例如作为第一次运行初始化的一部分),请使用Android PackageManager getApplicationInfo方法检索ApplicationInfo
类。
ApplicationInfo
类包含APK的位置(sourceDir
)和源目录的公共部分,包括资源和清单(publicSourceDir
)。如果应用已安装在外部存储上,这些路径将指向该位置,并指示用户应将其他下载内容安装到何处。
如果您的应用使用installLocation="preferExternal"
将40MB APK安装到外部存储,但随后由于该应用使用ApplicationInfo dataDir
路径,因此将下载的1GB数据文件存储到内部存储,而这将无法实现使用外部存储的目的,并快速占据设备的内部存储空间,从而导致客户不满。因此,请确保二次下载使用sourceDir
作为下载路径。
使用Unity指定安装位置
Unity是为亚马逊应用商店创建游戏的最常用工具之一。Unity支持通过适用于Android的播放器设置检查器来设置安装位置。要将应用安装位置配置为外部存储,请执行以下操作:
- 从您的Unity项目中,单击File-Build Settings...(文件构建设置...)。
-
在Build Settings(构建设置)对话框中,选择“Platform(平台)”列表中的Android,然后单击Player Settings…(播放器设置...)按钮以显示检查器。
-
打开Other Settings(其他设置)部分并查找Install Location(安装位置)设置。
preferExternal
通常是默认值 – 这通常都是最好的选择。
YoYo Games的Gamemaker:Studio也使用preferExternal
作为Android项目的默认设置。虽然可以手动更改此默认值,但建议您保持原样。
其他引擎和开发框架提供了类似的选项。请参阅您所用工具的文档,确保您在APK清单中将installLocation
设置为preferExternal
。