对于 API 级别最低为 21 的项目放弃 appcompat 是个好主意吗?
Posted
技术标签:
【中文标题】对于 API 级别最低为 21 的项目放弃 appcompat 是个好主意吗?【英文标题】:Is it a good idea to forgo appcompat for a project with minimum API level 21? 【发布时间】:2016-06-24 09:01:41 【问题描述】:我正在启动一个最低 API 级别为 21 的项目,试图找出实现 ActionBar 的正确方法。官方文档从使用 appcompat 库开始,列出的主要优点是它保留了 7 级的兼容性。我什至不想要预先安装 Lollipop。我应该使用 appcompat 吗?放弃 appcompat 库有什么好处或坏处吗?
【问题讨论】:
【参考方案1】:对于 API 级别最低为 21 的项目放弃 appcompat 是否是个好主意?
可能不会。
首先,即使您现在认为不会,您可能仍想稍后降级。
但即使不是这样,它仍然提供功能。想想如果将来能够在不修改代码的情况下升级到 24、25 或 26。
Appcompat 是关于兼容性的。 API 更改较少(可能),您可以使用接口而无需手动检查 API 版本。
我需要证据!
以getColor(int)
.它在版本 23 中已被弃用。因此,使用 21 您仍然可以使用它,使用 23 您将(应该)必须切换到getColor(int, Theme)
。支持库的ContextCompat
将为您处理此版本检查。
这只是一个示例。
【讨论】:
感谢@DavidMedenjak,完成答案,你能说使用appcompat库没有缺点吗? @TravisWellman 您的性能会降低一点。我想强调一点。我不知道任何实际的缺点。如果你想使用它不支持的功能,你仍然可以使用普通的 API 调用以上是关于对于 API 级别最低为 21 的项目放弃 appcompat 是个好主意吗?的主要内容,如果未能解决你的问题,请参考以下文章
android:Theme.Material.Light 需要 API 级别 21(当前最低为 8)
调用需要 API 级别 21(当前最低为 17):android.hardware.camera2.CameraDevice.StateCallback
调用需要 API 级别 23(当前最低为 14):android.app.Activity#requestPermissions,checkSelfPermission [重复]