安装 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 编写的应用程序可以在较新版本中运行吗?
对于“为”一词的任何合理解释,是的。
如果我开发到 4.0.3,它会在旧版本中工作吗?
与 Agarwal 的回答一样,这取决于您所说的“to”是什么意思。
例如,假设您要使用CalendarContract
. 此类是在 API 级别 14(又名 Android 4.0)中添加的。只要您只CalendarContract
在 Android 4.0+ 设备上使用,就可以了。但是,如果您尝试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 features 。