设置Android 1.6的安装位置?

时间:2010-07-22 16:36:11

标签: android sd-card android-1.6-donut

我正在编写一个与Android 1.6兼容的应用程序,但我想为运行Android 2.2的用户提供将应用程序安装移动到他们的SD卡的选项。

如何编译我的1.6应用程序,但仍允许2.2用户将其安装到他们的SD?

2 个答案:

答案 0 :(得分:12)

在你的清单中:

  • <manifest>中,添加“android:installLocation="preferExternal
  • 将当前的uses-sdk保持为“<uses-sdk android:minSdkVersion="4">

然后转到Project&gt;属性&gt; Android(在左侧),将构建目标更改为2.2,并且您已全部设置。

您的项目将使用2.2构建(但仍然只需要1.6),但运行1.6的设备将忽略清单中新的“installLocation”设置。请注意不要在实际代码中添加任何2.2引入的材料,因为编译器将不再捕获它。

答案 1 :(得分:0)

这并不像开发人员指南所暗示的那样无缝。 首先,当清单中存在installLocation并且构建目标设置为2.2以外的任何其他内容时,应用程序不会构建:

error: No resource identifier found for attribute 'installLocation' in 
package 'android'

因此,为了通过将构建目标设置为1.6来测试向后兼容性,还必须编辑清单。

其次,一旦构建目标设置为2.2,我就不会选择具有较低API级别的模拟器进行测试。我仍然可以手动启动1.6模拟器并在其上运行应用程序,但我很好奇,如果我的构建目标是2.2(即使minSdkVersion = 4),我的应用程序将出现在Android Market for 1.6设备上。我没有要测试的实际设备。有人可以确认这不会影响市场上的可用性吗?

最后,这个警告仍然存在:

Attribute minSdkVersion (4) is lower than the project target API level (8)