如果最低 SDK = 14,Lollipop 的 Appcompat、兼容性和支持库
Posted
技术标签:
【中文标题】如果最低 SDK = 14,Lollipop 的 Appcompat、兼容性和支持库【英文标题】:Appcompat, compatibility, and support libraries for Lollipop if minimum SDK = 14 【发布时间】:2015-05-16 23:28:59 【问题描述】:我们现有的 android 应用支持 API 级别 8 到 18。我们使用了兼容性库 19.1.0。现在我们正在更改/升级到:
-
最小 SDK = 14
目标 = android-22
现在考虑到不同版本的 v4、v7、v13 支持、兼容性和 appcompat 库,我不确定要包含哪些,哪些不包含。
我们使用maven进行依赖管理,使用Maven SDK deployer
【问题讨论】:
这不仅仅是 SDK 要求,它取决于功能。如果您首先不需要某个支持库中的某些内容,则没有理由包含它。看看支持库本身包含什么。 developer.android.com/tools/support-library/features.html 【参考方案1】:Android 支持库 v4、v7、v8、v13 和 v17 是完全不同的库。 v7 不是 v4 的较新版本,v8 不是 v7 的较新版本。在v4中找不到v7提供的组件,同理,在v7中也找不到v8提供的组件。
每个v的数字表示内部提供的库可以向后兼容的最低Android版本。例如,如果您使用 v8 组件。您的应用程序将能够在 API 级别 8 及以上的手机上运行。 如果您需要同时使用 v7 和 v8 中的组件,则必须将它们都包含到您的项目中。
由于您的 minSdkVersion 现在是 14,因此您可以安全地使用 v4、v7、v8 和 v13 中的任何一个。
请注意,Android 支持库的最新版本现在是 22.0.0。我建议你从 19.1.0 移动到 22.0.0。好多了。
【讨论】:
【参考方案2】:如果您使用的是 14 的 minSDK,那么从技术上讲,您不需要其中任何一个。然而,这里有一些事情需要考虑:
支持 v4 (com.android.support:support-v4:23.0.0
)
App Compat v7 (com.android.support:appcompat-v7:23.0.0
)
ActionBar - 提供操作栏用户的实现 界面模式。有关使用操作栏的更多信息,请参阅 Action Bar 开发者指南。 ActionBarActivity - 添加一个应用程序活动类,该类必须用作使用支持库操作栏实现的活动的基类。 ShareActionProvider - 添加对标准化共享操作的支持 (例如电子邮件或发布到社交应用程序)可以在操作栏中。以下是 v7 appcompat 中包含的一些关键类 图书馆
支持 v13 (com.android.support:support-v13:23.0.0
)
此库设计用于 Android 3.2(API 级别 13)和 更高。它增加了对 Fragment 用户界面模式的支持 (FragmentCompat) 类和附加的片段支持类。 有关 Fragment 的更多信息,请参阅 Fragments 开发人员 指导。有关 v13 支持库 API 的详细信息, 请参阅 API 参考中的 android.support.v13 包。
在此处查看他们的修订:http://developer.android.com/tools/support-library/index.html
查看此处列出的所有库:http://developer.android.com/tools/support-library/features.html
【讨论】:
任何时候,有这么多的格式选项:P 感谢您花时间为其他人发布内容。 有通用的最佳实践吗?说,通常最好使用不支持的库。还是说 v7 拥有丰富的库,因此通常建议拥有它? @Dynameyes 我会使用 AppCompat v7(它依赖于 Support v4),所以你会同时使用这两个。它包含了 Material Design 和 Android 最佳实践所需的一切。使用 AppCompat,您可以将 minSDK 设置为 7,目标为 22(最新)。 我无法在 Android 4.0.4 上使用 support-v13 运行一个非常简单的应用程序。我可以一遍又一遍地复制它。我有这个错误:***.com/questions/32803492/…以上是关于如果最低 SDK = 14,Lollipop 的 Appcompat、兼容性和支持库的主要内容,如果未能解决你的问题,请参考以下文章
Android TV 应用程序不支持 Amazon FireTV