每当我对此感到困惑,我就会进行搜索,并且“我想”我理解它但我似乎也没有。
有人可以向我解释您正在构建的API与您在清单中指定的Min SDK和您指定的目标SDK之间的区别。
例如: 我有一个应用程序,其minSDK为8,targetSDK为15,我构建针对SDK 12.有什么区别?它运行的是什么设备?我从这些差异中获得了什么! 有人请解释一下! 谢谢
答案 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。
它不会决定设备,因为设备的平台版本可能会发生变化。