对于 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

非支持库 android 项目所需的最低 API 级别

调用需要 API 级别 23(当前最低为 14):android.app.Activity#requestPermissions,checkSelfPermission [重复]

Android NDK 多个 API 级别

调用需要 API 级别 26(当前最低为 23):java.time.Instant#now