构建版本Vs MinSdk与targetSdk

时间:2013-02-01 21:16:38

标签: android

每当我对此感到困惑,我就会进行搜索,并且“我想”我理解它但我似乎也没有。

有人可以向我解释您正在构建的API与您在清单中指定的Min SDK和您指定的目标SDK之间的区别。

例如: 我有一个应用程序,其minSDK为8,targetSDK为15,我构建针对SDK 12.有什么区别?它运行的是什么设备?我从这些差异中获得了什么! 有人请解释一下! 谢谢

3 个答案:

答案 0 :(得分:1)

  

有什么区别?

差异是减去两个数字的结果。但这在这里并不重要。 : - )

  

它运行的是什么设备?

这取决于你的代码和其他任何东西。但是,它将在API级别7及更低版本上运行,因为它们低于minSdkVersion。 Android设备(和市场)不允许您在API级别7和更低版本的设备上使用您的应用。

  

我从这些差异中获得了什么!

通过设置构建目标为12,您要对编译器和构建工具说:“我想使用比API Level 8更新的API,直到API级别12,但我保证在这样的情况下这样做以避免旧设备上的那些较新的API“。当您尝试使用没有适当保护的较新API时(例如,检查android.os.Build.SDK_INT),构建工具(特别是Lint)会对您大吼大叫。

通过将android:targetSdkVersion设置为15,您对编译器和构建工具说:“当我编写此代码时,我正在考虑API级别15”。设备较新比您的目标可能选择以不同方式执行操作,以尝试更好地模拟API级别15的生命。

后者的最佳例子是AsyncTask。传统上,任务可以并行运行。但是,如果您将android:targetSdkVersion设置为13或更高,您正在API级别13或更高版本的设备上运行,则然后任务将默认按顺序执行。如果您在API等级为13或更高的设备上运行,但android:targetSdkVersion为12或更低,则设备将回退到原来的行为,以保持兼容性。

答案 1 :(得分:1)

用于构建自己的应用程序的SDK将定义所有可用类。没有理由不使用最高可用(目前为17)

正如JoxTraex所提到的那样,minSDK:“你的应用程序需要工作的最小的android操作系统API集”

targetSDK是您测试应用的最高版本。这将启用一些功能(Holo,Goodbye Menu按钮)。默认情况下,这些更改会在新的Android版本中引入,但您应该在清单中写下这些新功能已经过测试。

答案 2 :(得分:0)

Min SDK是应用程序需要的最小的Android操作系统API集

Target SDK是您的主要平台目标版本,通常始终高于Min。

它不会决定设备,因为设备的平台版本可能会发生变化。

相关问题