为什么我在开始新项目时需要选择API级别?

时间:2015-10-11 14:46:34

标签: android api

我刚刚开始使用Android,我对在创建新项目时必须选择API级别的原因提出疑问。我知道不同的API有不同的方法,类等等,但为什么我必须选择一个级别?编译器无法确定需要观察我在项目中使用哪些方法的最小SDK吗?

2 个答案:

答案 0 :(得分:2)

编译器可以确定您使用的API将支持哪些设备。 但是如果您想为较低版本构建应用程序并使用较高版本的API,则编译器无法警告您。

因此,当您定义最低版本的SDK版本时,编译器会知道您的目标是什么,并在您超过该值时向您发出警告。

如果你没有定义minSdkVersion,编译器将假定它为1.

来自documentation

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中突出显示的行(暂停应用程序时)可能不会反映程序的状态。