Android 目标API和minSDK的目的是什么
有人能给我解释一下项目目标和最小SDK之间的区别吗?我希望我的应用程序能在甜甜圈设备上运行,而我用目标7构建的APK运行得很好。当我在Android清单4(1.6)中设置了一个显式的最小SDK时,编译器向我抱怨目标超出了最小值。我将目标值重置为4,只是为了看看会发生什么,现在出现了编译器错误。例如android.app.Service中的START_NOT_STICKY常量。它不存在于API级别4中,但存在于API级别7中。Service.onStartCommand()也是如此。在API级别7中,您需要显式重写此方法,而在API级别4中则不需要Android 目标API和minSDK的目的是什么,android,Android,有人能给我解释一下项目目标和最小SDK之间的区别吗?我希望我的应用程序能在甜甜圈设备上运行,而我用目标7构建的APK运行得很好。当我在Android清单4(1.6)中设置了一个显式的最小SDK时,编译器向我抱怨目标超出了最小值。我将目标值重置为4,只是为了看看会发生什么,现在出现了编译器错误。例如android.app.Service中的START_NOT_STICKY常量。它不存在于API级别4中,但存在于API级别7中。Service.onStartCommand()也是如此。在API级别7
那么,尽管如此,为什么应用程序仍能在1.6中运行呢?当相关的API级别不知道时,1.6如何知道如何使用SERVICE NOT_STICKY?如果您想使用一些新的奇特功能,但又想保持向后兼容性,这正是targetSdkVersion和minSdkVersion发挥作用的地方 为了保持向后兼容性,您需要谨慎对待Minsdk版本之上的每个新API。Ie通过使用反射或使用。如果不这样做,您的应用程序将崩溃并烧毁,因为它找不到您尝试使用的API 您还需要阅读关于已更改API的每一行文档(即.onStartCommand(..),以便能够以向后兼容的方式正确处理它获得的每一条数据 关于常量,它们很可能作为字符串/整数编译到代码中,当旧版本获得未知值时,它会忽略它。然而,这是一个理论,所以在广泛使用它之前,你应该先测试一下 此外,据我所知,系统不会检查minSdkVersion或targetSdkVersion。只有安卓市场能做到这一点。因此,如果你掌握了一些不应该在你的设备上运行的应用程序,而你仍然试图使用它们,那么再次崩溃并烧掉它们