Android编译sdk对最终二进制文件的影响

时间:2015-12-15 10:17:36

标签: android android-studio apk

鉴于android studio中开发的android项目。 compile sdk版本对最终的apk有什么影响。

所以,让我说我用sdk级别15编译同一个项目,然后使用sdk级别23进行编译。让我们忽略编译时警告或错误等,并假设编译正常

apk文件的最终结果有什么不同?

谢谢

1 个答案:

答案 0 :(得分:3)

来自文档。根据我的阅读,您可以使用此设置触发优化和功能,但这在很大程度上取决于minSdkVersionmaxSdkVersion

targetSdkVersion

  

指定应用程序所针对的API级别的整数。如果未设置,则默认值等于 minSdkVersion 的值。

     

此属性通知系统您已针对目标版本进行了测试,并且系统不应启用任何兼容性   用于维护应用与目标的向前兼容性的行为   版。该应用程序仍然可以在旧版本上运行(向下   到minSdkVersion)。

     

随着Android随着每个新版本的发展,一些行为甚至外观都可能会发生变化。但是,如果平台的API级别是   高于应用程序的targetSdkVersion声明的版本,   系统可以启用兼容性行为以确保您的应用程序   继续以你期望的方式工作。你可以禁用这样的   通过指定targetSdkVersion来匹配的兼容性行为   正在运行的平台的API级别。例如,设置   此值为“11”或更高允许系统应用新的默认值   在Android 3.0或更高版本上运行时,应用程序的主题(Holo)   在较大的屏幕上运行时也会禁用屏幕兼容模式   (因为对API级别11的支持隐含支持更大的屏幕)。

     

系统可根据您为此属性设置的值启用许多兼容性行为。其中几个   行为由相应的平台版本描述   Build.VERSION_CODES参考。

     

要在每个Android版本中维护您的应用程序,您应该增加此属性的值以匹配最新的API   等级,然后彻底测试你的相应的应用程序   平台版本。

reference

编辑:(现在我猜错了你的问题)

compileSdkVersion

  

compileSdkVersion是应用程序编译的API版本   反对。这意味着您可以使用其中包含的Android API功能   API的版本(以及所有以前的版本,显然)。如果   您尝试使用API​​ 16功能,但将compileSdkVersion设置为15,您   将得到编译错误。如果你将compileSdkVersion设置为16   只要你的应用程序可以在API 15设备上运行该应用程序   执行路径不会尝试调用任何特定于API 16的API。

reference

所以我假设生成的二进制文件在这里和那里有一些不同的指针。