如何使我的应用程序移动到 SD 卡?
- 编辑标题以使问题与给出的答案更相关。
您必须android:installLocation
在 AndroidManifest.xml 文件中设置条目(preferExternal
或者auto
值可以)。
注意!此构建目标应为 API 级别 8 (Android 2.2)。
您还可以将android:installLocation
and 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 可能会突然强制关闭。
请按照以下步骤操作 Android 手机。
android sdk\platform-tools
adb shell pm setInstallLocation 2
本教程有明确的说明将应用程序移动到 SD 卡
http://mobile.tutsplus.com/tutorials/android/move-to-sd-card/
它还指向何时使用 SD 卡功能http://developer.android.com/guide/topics/data/install-location.html#ShouldNot