当安装SDK时,我读了大约97%的手机支持Android 2.1 我的问题是我应该在打开一个新项目时选择将其编译为Android 2.1? 为2.1编写的应用程序是否可以在新版本中使用? 会不会有相反的工作?如果我发展到4.0.3,它会在更老的?要选择什么版本?
感谢, 埃里克
当安装SDK时,我读了大约97%的手机支持Android 2.1 我的问题是我应该在打开一个新项目时选择将其编译为Android 2.1? 为2.1编写的应用程序是否可以在新版本中使用? 会不会有相反的工作?如果我发展到4.0.3,它会在更老的?要选择什么版本?
感谢, 埃里克
我的问题是我应该在打开一个新项目时选择将其编译为Android 2.1?
您指定为构建目标(“选择编译为”)对Android的哪些版本可以运行您的应用程序没有直接影响。
为2.1编写的应用程序是否可以在新版本中使用?
对于单词“for”的任何合理解释,是的。
如果我发展到4.0.3,它会在更老的?
与Agarwal的回答一样,这取决于你所说的“to”是什么意思。例如,假设您想要使用CalendarContract
。该课程已添加到API Level 14(a.k.a.,Android 4.0)中。只要您使用只需在Android 4.0及更高版本上使用CalendarContract
即可。但是,如果您尝试在较旧的设备上使用CalendarContract
,则会崩溃,因为该类不会存在于固件中。
因此,您可以有条件地使用更新的API,只要您确保只在运行较新版本Android的设备上使用这些更新的API。通常,这是通过版本防护块完成的,如下所示:
if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB) {
// do something that requires API Level 11+ here
}
如果发展到4.0.3则不会得到安装在旧版本的设备。 如果您为2.1开发,它将在较新版本上正常工作。但是,如果你使用你不能得到4.0.3功能。
完全取决于您对单词“to”的定义。 – CommonsWare 2012-04-22 16:38:08
相反呢? 2.1版本(或更常见的2.2版本)可用于新设备吗? – 2012-04-22 16:38:34
对。感谢您的指定答案。 – 2012-04-22 16:44:12
但由于某些原因,我无法在2.2上运行简单的ICS HelloWorld应用程序。任何想法为什么? – 2012-04-22 16:48:41
@BojanKogoj:不,因为您没有提供任何超出“无法运行”的症状,这可能会有很多不同的含义。随意在SO上提问。如果应用程序崩溃,请包含堆栈跟踪。 – CommonsWare 2012-04-22 16:51:38