2

我收到越来越多关于能够使用必须是 Android 2.2 的一部分的 App to SD 功能的请求,但我真的没有这方面的经验。我也不知道在哪里可以找到有关如何使我的应用程序与此功能兼容的任何文档。人们告诉我我的应用程序无法移动到 SD 卡。

我的想法也在告诉我,对于没有任何类型的许可证保护的付费应用程序来说,这是一个非常糟糕的主意。

有没有人有这方面的经验,知道任何文档,或者有任何关于什么会阻止应用程序与此功能兼容的提示?

注意:我不在我的应用程序上使用复制保护。

4

2 回答 2

7

android:installLocation您可以使用manifest 属性允许您的应用安装到 SD 卡。这可以设置为preferExternalauto,具体取决于您是建议将其安装在 SD 卡上,还是直接允许。默认情况下,出于向后兼容的原因,应用程序无法安装到 SD 卡中,因此如果您希望用户能够使用它,则必须选择加入此功能。

文档中

当您的应用程序安装在外部存储上时:

  • 只要在设备上安装了外部存储,就不会影响应用程序的性能。
  • .apk 文件保存在外部存储中,但所有私有用户数据、数据库、优化的 .dex 文件和提取的本机代码都保存在内部设备内存中。
  • 存储应用程序的唯一容器使用随机生成的密钥进行加密,该密钥只​​能由最初安装它的设备解密。因此,安装在 SD 卡上的应用程序仅适用于一个设备。
  • 用户可以通过系统设置将您的应用程序移动到内部存储。

因此,您不必太担心许可证保护;该功能内置加密。您通常也不应该担心许可证保护,因为任何形式的复制保护或 DRM 对诚实用户的危害往往比对盗版者的危害更大。只要有人能够使用您的应用,就有人能够盗版;创建一个牢不可破的 DRM 方案几乎是不可能的。如果您的应用程序已经在内部存储中,那么它很可能已经被盗版了。然而,大多数用户都是诚实的,并且会从 Market 购买应用程序,因此您不会从阻止盗版中获得太多收益(大多数下载盗版应用程序的人是无法访问 Market 中的付费应用程序的人;这是在许多国家仍然不可用)。

无论如何,结果是这应该和你的应用程序一样安全,并且只是允许用户在存储他们的应用程序的位置上有更大的灵活性。默认情况下不会启用它,以防导致应用程序不希望它崩溃的错误,但启用它应该是完全安全的。

于 2010-09-10T18:51:27.710 回答
1

干得好。

记录在这里。

Android 平台现在允许应用程序请求安装到设备的外部存储介质(例如 SD 卡),作为安装到设备内部存储器的替代方案。

应用程序开发人员可以通过清单文件中的新属性 android:installLocation 来表示其应用程序的首选安装位置。该属性支持三个值:“internalOnly”、“preferExternal”和“auto”。在安装时,系统会检查 android:installLocation 的值并根据首选位置安装应用程序 .apk(如果可能)。如果应用程序已请求外部安装,系统会将其安装到外部媒体中的私有加密分区中。在外部安装应用程序 .apk 后,系统允许用户更改 .apk 的存储位置,并在需要时将其移动到设备的内部存储器中(反之亦然),

默认情况下,系统会将所有应用程序安装到设备的内存中,但明确请求外部安装的应用程序除外。这意味着系统将始终将旧版应用程序安装到内存中,因为它们无权访问 android:installLocation 属性。但是,如果需要,可以配置和编译遗留应用程序,使其内部安装在较旧版本的平台上,并在外部安装在 Android 2.2 及更高版本的平台上。

请注意,请求安装到设备的外部媒体上并不适合所有应用程序,特别是因为外部媒体可能是可移动的,并且卸载/重新安装可能会破坏用户体验和系统设置。

有关为您的应用程序设置首选安装位置的更多信息,包括讨论应该和不应该请求外部安装的应用程序类型,请阅读应用程序安装位置文档。安装位置文档。

于 2010-09-10T18:51:58.553 回答