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

android– 目标API和minSDK的目的是什么,第1张

概述有人可以向我解释项目目标和最小SDK之间的区别吗?我希望我的应用程序在Donut设备上运行,而我用7的目标构建的APK工作正常.当我在Android清单4(1.6)中设置一个明确的最小SDK时,编译器告诉我目标超过了最小值.我将目标重置为4只是为了看看会发生什么,现在我有编译器错误.一个例子是android.app.Service中的START_NOT_ST

有人可以向我解释项目目标和最小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才能做到这一点.因此,如果你掌握了一些不应该在你的设备上运行的应用程序,你仍然试图使用它们,那么再次崩溃和刻录.

总结

以上是内存溢出为你收集整理的android – 目标API和minSDK的目的是什么全部内容,希望文章能够帮你解决android – 目标API和minSDK的目的是什么所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1139644.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存