了解Android API级别

了解Android API级别,android,android-api-levels,Android,Android Api Levels,果冻豆出来了,它们有一些非常好的特性。我的问题是,我想把尽可能多的设备作为目标,但同时有一个应用程序,如果可能的话,它可以使用最高API级别的所有功能 比如说我有这个 <uses-sdk android:minSdkVersion="5" android:targetSdkVersion="16"/> 我在API 16上构建我的应用程序。有没有一种方法可以限制代码的某些部分说,如果您正在运行能够运行它的设备,那么只运行它?例如,如果我想要NFC,那么只有姜饼和更高版本的设备才能

果冻豆出来了,它们有一些非常好的特性。我的问题是,我想把尽可能多的设备作为目标,但同时有一个应用程序,如果可能的话,它可以使用最高API级别的所有功能

比如说我有这个

<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="16"/>


我在API 16上构建我的应用程序。有没有一种方法可以限制代码的某些部分说,如果您正在运行能够运行它的设备,那么只运行它?例如,如果我想要NFC,那么只有姜饼和更高版本的设备才能使用该功能,否则froyo down甚至看不到该功能。

基本上,您可以使用从Android 3.0引入的许多新API(例如片段引擎),包括Android Support v4作为参考库

你可以在这里找到一些参考资料:

在这里:

另一方面,如果您想使用NFC功能,例如,您可以声明此使用功能:

 <uses-feature android:name="android.hardware.nfc" android:required="true" />

从ADT r16开始,我们可以使用Lint扫描并检查所有新API的项目,查看我的答案了解详细信息:

NewApi:查找对所有目标API版本中不支持的API的API访问

或者,您也可以按API级别对代码进行条件分支,而不是按功能对代码进行条件分支(Stefano’answer):

if (android.os.Build.VERSION.SDK_INT >= 9) {
  // do NFC stuff
}

希望这能有所帮助。

比如说,我正在使用api级别16(包括v4)构建,如果我的设备运行api 9姜饼,那么我可以为运行姜饼的设备获取碎片?那么V4API将覆盖api级别16中包含的内容,并对其进行编译,以便gingerbead能够理解?
if (android.os.Build.VERSION.SDK_INT >= 9) {
  // do NFC stuff
}