Android:将compileSdkVersion设置为比最新api更低的版本是否有优势?

时间:2015-07-26 11:25:39

标签: java android manifest

将清单中的compileSdkVersion设置为小于最新的api内部版本号是否有任何优势,或者您是否应始终将其设置为最新的api版本?

android {
    compileSdkVersion 22

当我说优势时,我的意思是应用程序的性能,应用程序的编译时间,apk的大小等等。当然,我说的是你可以<的情况/ em>将其设置得更低 - 即一个不使用共享转换或棒棒糖任何功能的应用程序。

3 个答案:

答案 0 :(得分:4)

不,没有。

另外,感谢commonsware指出这一点,但compileSdkVersion和targetSdkVersion之间存在差异。请参阅Stackoverflow上的previous answer

现在就不要将它设置为最新的M预览版。不是你做的,我只是在为正在阅读这篇文章的新Android开发人员说这个。 Android M是预览版,它不适用于生产中的应用程序。

话虽如此,如果您只是编辑几年前有人写过的应用程序的代码而且您的老板告诉您不要浪费更多的时间而不是必须进行一些微小的更改,他希望您制作,那么你可能会坚持这个计划,只编译到最初使用的初始api。

此外,还有安全审核和认证的情况。如果政府机构或安全公司没有时间审核最新版本的操作系统或sdk,那么您可能只会被编译到上次认证的版本。

答案 1 :(得分:2)

实际上它没有做任何改变。但我建议你使用最新的编译来确保它。

答案 2 :(得分:2)

首先,targetSdkVersioncompileSdkVersion之间存在差异。

<强> compileSdkVersion

compileSdkVersion可让您的应用访问最新的API,样式和主题。如果您尝试使用比compileSdkVersion更新的Android版本中引入的API,则会出现编译错误。

<强> targetSdkVersion

targetSdkVersion表示您的应用已针对哪个API版本进行了测试。

定位旧版本可启用兼容性行为,以确保应用继续以相同的方式工作。

targetSdkVersion更新为较新的版本可能会引入细微的行为更改,因此,如果您这样做,请确保您了解新的API并正确测试应用。例如:在定位API时调用AlarmManager.set()&lt; 19将在确切的时间安排警报,因为它之前的工作方式。在针对API 19+时调用相同的方法将允许系统将警报传递时间调整几分钟以节省电池寿命,并且如果您需要确切的时间行为,则需要调用新方法AlarmManager.setExact()。 / p>

compileSdkVersion必须始终等于或高于targetSdkVersion