如果最低 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 Components Fragment - 添加对用户封装的支持 与 Fragments 的接口和功能,使应用程序能够 提供可在小屏幕和大屏幕设备之间调整的布局。 NotificationCompat - 添加对丰富通知功能的支持。 Lo​​calBroadcastManager - 允许应用程序轻松注册和 在单个应用程序中接收意图而不广播它们 全球范围内。 用户界面 ViewPager - 添加一个 ViewGroup 来管理 子视图的布局,用户可以在它们之间滑动。 PagerTitleStrip - 添加非交互式标题条,可以 添加为 ViewPager 的子项。 PagerTabStrip - 添加用于在分页视图之间切换的导航小部件,也可以与 ViewPager 一起使用。

App Compat v7 (com.android.support:appcompat-v7:23.0.0)

以下是 v7 appcompat 中包含的一些关键类 图书馆

ActionBar - 提供操作栏用户的实现 界面模式。有关使用操作栏的更多信息,请参阅 Action Bar 开发者指南。 ActionBarActivity - 添加一个应用程序活动类,该类必须用作使用支持库操作栏实现的活动的基类。 ShareActionProvider - 添加对标准化共享操作的支持 (例如电子邮件或发布到社交应用程序)可以在操作栏中。

支持 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

为 Lollipop 使用 Android SDK 18 (Jelly Bean)

Android Studio 无法识别最低 SDK

SDK版本

Android lollipop 更新问题

Unity要求Android SDK为最低API级别21