【问题标题】:Should I change both the target SDK and compile SDK to support higher versions?我应该同时更改目标 SDK 和编译 SDK 以支持更高版本吗?
【发布时间】:2019-06-09 04:36:57
【问题描述】:
我希望我的应用程序在 Android 9 上运行。目前它既针对 SDK 26 也可以编译到 SDK 26。当我将目标更新并将版本从 26 编译到 28 时,似乎没有太大变化。它在我自己的手机 (22) 和 25 的模拟器上运行相同,但它现在也可以在 28 上运行。除了目标和编译版本之外,我没有更改任何一行代码。
我的应用程序没有使用任何需要更改的内容吗?这是一个非常简单的 SQLite 应用程序,甚至不使用互联网。
如果我希望我的应用在 android 9 上运行,我应该以 28 为目标,编译为 28,还是两者兼而有之?
【问题讨论】:
标签:
android
sdk
target-sdk
【解决方案1】:
如果您不更新您的 compileSdkVersion,您的应用预计将向前兼容。换句话说,它应该在您的 minSDKVersion 支持的所有版本上以相同的方式运行/表现。
例如,如果您的 minSDKVersion 是 API 19,您的应用将在 Android 4.4、Android 8、Android 9 上运行,并且预计在 Android 10 上运行。
更新您的 compileSdkVersion 这是一个很好的方法,因为每个新版本都有一年的开发时间 - 它预计会更加稳定,并且您可以使用更新的 API/功能。有时,这样做意味着您必须改变一些行为(有关更多信息,请参阅官方文档中的here)。
如果您正在寻找 compileSdkVersion 和 targetSdkVersion 之间的区别 - 您可以在另一个 StackOverflow thread 上找到一个非常好的答案。
简单地说:
compileSdkVersion 是编译应用所针对的 API 版本。