鉴于android studio中开发的android项目。 compile sdk版本对最终的apk有什么影响。
所以,让我说我用sdk级别15编译同一个项目,然后使用sdk级别23进行编译。让我们忽略编译时警告或错误等,并假设编译正常
apk文件的最终结果有什么不同?
谢谢
答案 0 :(得分:3)
来自文档。根据我的阅读,您可以使用此设置触发优化和功能,但这在很大程度上取决于minSdkVersion
和maxSdkVersion
targetSdkVersion
指定应用程序所针对的API级别的整数。如果未设置,则默认值等于 minSdkVersion 的值。
此属性通知系统您已针对目标版本进行了测试,并且系统不应启用任何兼容性 用于维护应用与目标的向前兼容性的行为 版。该应用程序仍然可以在旧版本上运行(向下 到minSdkVersion)。
随着Android随着每个新版本的发展,一些行为甚至外观都可能会发生变化。但是,如果平台的API级别是 高于应用程序的targetSdkVersion声明的版本, 系统可以启用兼容性行为以确保您的应用程序 继续以你期望的方式工作。你可以禁用这样的 通过指定targetSdkVersion来匹配的兼容性行为 正在运行的平台的API级别。例如,设置 此值为“11”或更高允许系统应用新的默认值 在Android 3.0或更高版本上运行时,应用程序的主题(Holo) 在较大的屏幕上运行时也会禁用屏幕兼容模式 (因为对API级别11的支持隐含支持更大的屏幕)。
系统可根据您为此属性设置的值启用许多兼容性行为。其中几个 行为由相应的平台版本描述 Build.VERSION_CODES参考。
要在每个Android版本中维护您的应用程序,您应该增加此属性的值以匹配最新的API 等级,然后彻底测试你的相应的应用程序 平台版本。
编辑:(现在我猜错了你的问题)
compileSdkVersion
compileSdkVersion是应用程序编译的API版本 反对。这意味着您可以使用其中包含的Android API功能 API的版本(以及所有以前的版本,显然)。如果 您尝试使用API 16功能,但将compileSdkVersion设置为15,您 将得到编译错误。如果你将compileSdkVersion设置为16 只要你的应用程序可以在API 15设备上运行该应用程序 执行路径不会尝试调用任何特定于API 16的API。
所以我假设生成的二进制文件在这里和那里有一些不同的指针。