我刚刚开始使用Android,我对在创建新项目时必须选择API级别的原因提出疑问。我知道不同的API有不同的方法,类等等,但为什么我必须选择一个级别?编译器无法确定需要观察我在项目中使用哪些方法的最小SDK吗?
答案 0 :(得分:2)
编译器可以确定您使用的API将支持哪些设备。 但是如果您想为较低版本构建应用程序并使用较高版本的API,则编译器无法警告您。
因此,当您定义最低版本的SDK版本时,编译器会知道您的目标是什么,并在您超过该值时向您发出警告。
如果你没有定义minSdkVersion,编译器将假定它为1.
android:minSdkVersion
指定所需的最低API级别的整数 应用程序运行。 Android系统将阻止用户 如果系统的API级别低于,则安装应用程序 此属性中指定的值。你应该总是声明这个 属性。
警告:如果您未声明此属性,则为系统 假设默认值为" 1",表示您的应用程序 与所有版本的Android兼容。如果您的申请没有 与所有版本兼容(例如,它使用在中引入的API) API Level 3)然后你还没有声明正确的minSdkVersion 当安装在API级别小于3的系统上时, 尝试访问时,应用程序将在运行时崩溃 不可用的API。因此,请务必申报 minSdkVersion属性中的相应API级别。
答案 1 :(得分:0)
<强>基本上强>
这是compileSdkVersion的一个很好的解释:source
因此,开发人员选择的compileSdkVersion指出将使用您的代码编译的文件。
例如:
API 19: Android 4.4 (KitKat)
=&gt;来自...\sdk\sources\android-19
的{{1}} =&gt;中的文件来自API 22: Android 5.1 (Lollipop)
<强>的影响强>
决定:
- 您在开发过程中可以使用的功能(通常,更高版本=&gt;您可以使用更多功能)
- 项目中可以利用哪些外部库
<强>选择强>
根据经验:compiledSdkVersion应该是最新的可能的
个人经验:有时根据设备的API版本编译项目非常有用,尤其是在调试时,因为不同的API =&gt;不同的源文件=&gt;您的断点可能不会被命中,并且整个IDE中突出显示的行(暂停应用程序时)可能不会反映程序的状态。