13

如何使我的应用程序移动到 SD 卡?

- 编辑标题以使问题与给出的答案更相关。

4

4 回答 4

28

您必须android:installLocation在 AndroidManifest.xml 文件中设置条目(preferExternal或者auto值可以)。

注意!此构建目标应为 API 级别 8 (Android 2.2)。

于 2010-10-26T11:20:20.193 回答
14

您还可以将android:installLocationand still 目标设置为 Android 1.6。

在你的AndroidManifest.xml你必须像这样插入最小 SDK 版本

    <uses-sdk android:minSdkVersion="4" />

这将确保您的应用程序仅适用于 Android 1.6 及更高版本。这当然会在您的 Eclipse 项目空间中导致编译器错误。那是因为 1.6 SDK 不知道android:installLocation. 要解决此问题,请在 Eclipse 项目空间中右键单击您的项目(假设您使用的是 Eclipse,不知道它在其他 IDE 或 Ant 构建中如何工作)然后转到“Android”选项并选择“项目构建目标”到Android 2.2.

这将消除上面显示的错误,您可以编译/导出您的 APK 文件。这样,APK 将像往常一样在 Android 1.6-2.1 上运行,而在 Android 2.2 上,您也可以使用 SD 卡安装/移动应用程序。

然而,一个警告: 如果你不小心,这可能是不兼容的根源。因此需要增加测试阶段,因为如果您使用 2.x 功能,您不会直接注意到,因为 Eclipse 不会将其显示为错误,因为它使用 Android 2.2 SDK 作为参考。

因此,您基本上有 2 个选择:1. 仅在您导出/签署您的应用程序时(即在您即将发布此新版本之前)执行上述步骤,然后将其重新设置或 2. 广泛测试您的应用程序1.6 设备或模拟器,看看它是否在任何时候崩溃,因为该应用程序使用仅在比 1.6 更新的操作系统上可用的功能。

根据您的应用程序的复杂性,第一个通常是更安全的,但是承担您忘记做一次的风险。这将导致对于这一更新,用户将无法将其安装在 SD 卡上。选择 2 的问题是,如果您没有足够好地测试所有内容,当 Android 1.6 设备尝试调用仅在 2.x 中可用的特性/功能时,您的 App 可能会突然强制关闭。

于 2010-10-26T12:07:51.480 回答
0

请按照以下步骤操作 Android 手机。

  1. 将 Android SDK 复制到您的系统。
  2. 将您的手机连接到系统并在您的手机中启用 USB 调试选项。
  3. 打开 cmd 行并转到路径android sdk\platform-tools
  4. 运行命令adb shell pm setInstallLocation 2
  5. 转到手机中的设置,然后检查“移动到 SD 卡”选项是否启用。
于 2013-05-04T06:54:46.403 回答
0

本教程有明确的说明将应用程序移动到 SD 卡

http://mobile.tutsplus.com/tutorials/android/move-to-sd-card/

它还指向何时使用 SD 卡功能http://developer.android.com/guide/topics/data/install-location.html#ShouldNot

于 2013-12-24T21:36:30.983 回答