Android 选择什么版本?

Android 选择什么版本?,android,android-version,Android,Android Version,在安装SDK时,我看到大约97%的手机支持Android 2.1 我的问题是,在打开一个新项目时,我是否应该选择将其编译为Android 2.1? 为2.1编写的应用程序能否在较新版本中运行? 相反的方法行得通吗?如果我开发到4.0.3,它会在旧版本中工作吗 谢谢, Eric如果您开发到4.0.3,那么它将不会安装在旧版本的设备上。 如果您为2.1开发,它将在较新版本上正常工作。但是,如果您使用4.0.3,则无法获得4.0.3功能。如果您开发到4.0.3,则无法在较旧版本的设备上安装。 如果您为

在安装SDK时,我看到大约97%的手机支持Android 2.1 我的问题是,在打开一个新项目时,我是否应该选择将其编译为Android 2.1? 为2.1编写的应用程序能否在较新版本中运行? 相反的方法行得通吗?如果我开发到4.0.3,它会在旧版本中工作吗

谢谢,
Eric

如果您开发到4.0.3,那么它将不会安装在旧版本的设备上。
如果您为2.1开发,它将在较新版本上正常工作。但是,如果您使用4.0.3,则无法获得4.0.3功能。

如果您开发到4.0.3,则无法在较旧版本的设备上安装。 如果您为2.1开发,它将在较新版本上正常工作。但是,如果使用,则无法获得4.0.3功能

我的问题是,在打开一个新项目时,我是否应该选择将其编译为Android 2.1

您指定的构建目标(“选择将其编译为”)对Android的哪些版本可以运行您的应用程序没有直接影响

为2.1编写的应用程序能否在较新版本中运行

对于“For”一词的任何合理解释,是的

如果我开发到4.0.3,它会在旧版本中工作吗

正如阿加瓦尔的回答一样,这取决于你所说的“to”是什么意思

例如,假设您想使用
日历合同
。这个类是在API级别14(也称安卓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
}
我的问题是,在打开一个新项目时,我是否应该选择将其编译为Android 2.1

您指定的构建目标(“选择将其编译为”)对Android的哪些版本可以运行您的应用程序没有直接影响

为2.1编写的应用程序能否在较新版本中运行

对于“For”一词的任何合理解释,是的

如果我开发到4.0.3,它会在旧版本中工作吗

正如阿加瓦尔的回答一样,这取决于你所说的“to”是什么意思

例如,假设您想使用
日历合同
。这个类是在API级别14(也称安卓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
}

这完全取决于你对“to”这个词的定义。相反的定义呢?2.1(或2.2哪个更常见?)会在新设备上工作吗?这完全取决于你对“to”一词的定义。相反的呢?2.1(或2.2哪个更常见?)会在新设备上工作吗?马上。谢谢你给出了非常具体的答案。但由于某些原因,我无法在2.2上运行一个简单的ICS HelloWorld应用程序。知道为什么吗?@BojanKogoj:没有,因为你没有提供“无法跑步”以外的任何症状,这可能有很多不同的含义。请在这里随意提问。如果应用程序崩溃,包括堆栈跟踪。我听说Google play根据您的版本显示应用程序,那么这不意味着他们不会在市场上看到应用程序吗?这是真的吗?@eric.itzhak:您的清单,特别是您的
元素,将控制哪些设备将在Play Store上看到您。您选择的构建目标不正确。正确。谢谢你给出了非常具体的答案。但由于某些原因,我无法在2.2上运行一个简单的ICS HelloWorld应用程序。知道为什么吗?@BojanKogoj:没有,因为你没有提供“无法跑步”以外的任何症状,这可能有很多不同的含义。请在这里随意提问。如果应用程序崩溃,包括堆栈跟踪。我听说Google play根据您的版本显示应用程序,那么这不意味着他们不会在市场上看到应用程序吗?这是真的吗?@eric.itzhak:您的清单,特别是您的
元素,将控制哪些设备将在Play Store上看到您。您对构建目标的选择并不正确。