如何让我的应用程序移动到SD卡?
- 编辑标题,以使问题与给出的答案更相关。
答案 0 :(得分:28)
您必须在AndroidManifest.xml文件中设置android:installLocation
条目(preferExternal
或auto
值即可。)
NB!对于此构建目标,应该是API Level 8(Android 2.2)。
答案 1 :(得分:14)
您还可以将android:installLocation
设置为仍然定位到Android 1.6。
在AndroidManifest.xml
中,你必须像那样插入最小的SDK版本
<uses-sdk android:minSdkVersion="4" />
这将确保您的应用程序仅适用于Android 1.6及更高版本。这当然会导致Eclipse项目中的编译器错误。那是因为1.6 SDK不知道android:installLocation
。要解决此问题,请在Eclipse Project空间中右键单击您的Project(假设您正在使用Eclipse,不知道它在其他IDE中的工作方式或使用Ant构建),然后转到“Android”选项并选择“Project”将目标“定位到Android 2.2
。
这将删除上面显示的错误,您可以编译/导出您的APK文件。这样,APK将像往常一样在Android 1.6-2.1上运行,在Android 2.2上,它将使您能够使用SD卡来安装/移动应用程序。
然而是警告: 如果您不小心,这可能是不兼容的来源。因此需要增加测试阶段,因为如果使用2.x功能,您将不会直接注意到,因为Eclipse不会将其显示为错误,因为它使用Android 2.2 SDK作为参考。
所以你基本上有两个选择: 1.在您导出/签署应用程序时(即在您即将发布此新版本之前)执行上述步骤,然后将其重新设置 要么 2.在1.6设备或仿真器上广泛测试您的应用程序,看看它是否在任何时候崩溃,因为该应用程序使用的功能仅适用于比1.6更新的操作系统。
根据您的应用程序的复杂程度,第一个通常是更安全的应用程序,但是您承担忘记执行一次的风险。这将导致对于这一次更新,用户将无法将其安装在SD卡上。选择2有一个问题,如果你没有很好地测试一切,当Android 1.6设备尝试调用仅在2.x中可用的功能/功能时,你可能会突然强制关闭。
答案 2 :(得分:0)
对于Android手机,请按照以下步骤操作。
android sdk\platform-tools
adb shell pm setInstallLocation 2
答案 3 :(得分:0)