android – 目标API和minSDK的目的是什么

前端之家收集整理的这篇文章主要介绍了android – 目标API和minSDK的目的是什么前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

有人可以向我解释项目目标和最小SDK之间的区别吗?我希望我的应用程序在Donut设备上运行,而我用7的目标构建的APK工作正常.当我在Android清单4(1.6)中设置一个明确的最小SDK时,编译器告诉我目标超过了最小值.我将目标重置为4只是为了看看会发生什么,现在我有编译器错误.一个例子是android.app.Service中的START_NOT_STICKY常量.它在API级别4中不存在,但在API级别7中存在.对于Service.onStartCommand()也是如此.在API级别7中,您需要明确覆盖此方法,而在API级别4中则不需要.

那么为什么应用程序在1.6中工作呢? 1.6当相关的API级别不知道它时,1.6如何知道如何使用SERVICE_NOT_STICKY?

最佳答案
如果你想使用一些新的奇特功能,但也希望保持向后兼容性,即targetSdkVersion和minSdkVersion发挥作用.

为了保持向后兼容性,您需要小心处理minSdkVersion上方的每个新API.即通过使用反射或使用Build.VERSION.SDK_INT来仔细检查您是否可以访问它们.如果您不这样做,您的应用程序将崩溃并刻录,因为它无法找到您尝试使用的API.

您还想阅读有关已更改API的每一行文档(即Service.onStartCommand(..)),以便您可以正确地以向后兼容的方式处理每个数据.

关于常量,它们很可能被编译成你的代码作为字符串/整数,当旧版本变得未知时它只是忽略它.然而,这是一个理论,所以你应该在广泛使用它之前测试它.

另外,据我所知,系统不会检查minSdkVersion或targetSdkVersion.只有Android Market才能做到这一点.因此,如果你掌握了一些不应该在你的设备上运行的应用程序,你仍然试图使用它们,那么再次崩溃和刻录.

原文链接:https://www.f2er.com/android/430267.html

猜你在找的Android相关文章