定位api 21(Android 5.0)及以上

时间:2017-01-11 14:35:35

标签: android android-fragments android-support-library

Android dashboards表明只有一半的设备拥有Android 5.0及更高版本,但我们的客户数据集的数字看起来不同 - 超过93%的用户。因此,我们决定放弃对Android版本低于5.0的设备的支持,并将minSdkVersion从15更改为21。

此升级需要我们审核所有过时的功能并清除我们应用于支持旧版本的一些hacky变通方法。我们现在可以应用的主要功能之一是将android.support.v4.app.Fragment替换为android.app.Fragment。这听起来不错,特别是当我们知道fragment API had been reviewed and improved时。

只是为了确保我走正确的道路并且android.app.fragment不会让我感到惊讶我想从这个stackoverflow thread解释问题 - 您是否正在使用支持库中的片段,即使在为Android 5开发时,它们已经可用吗?片段API中是否存在Android 5.0及更高版本中出现的错误并在支持库中修复了?

更新

Android-KTX发布后,Jake Wharton made the following statement in one of PRs

  

感谢您花时间制作PR(带有测试!),但我们希望鼓励开发人员只使用支持库片段。 Android的下一个版本将弃用作为平台一部分的片段版本。因此,我们不会在此项目中添加任何扩展来支持它们。

因此,使用支持库中的片段是正确的。

2 个答案:

答案 0 :(得分:11)

无论如何,我建议使用支持库片段,原因如下:

  1. 未来的功能可能会被添加并向后移植,然后您需要重写才能使用它们
  2. 一致性。支持库的工作原理是确保支持片段始终保持相同。而原生片段可能在版本之间存在细微差别。
  3. 支持库可以包含对平台的错误修复,并且可以更频繁地更新。
  4. 编辑:自2018年起,不推荐使用操作系统级别Fragment。从技术上讲,谷歌的前进道路是在操作系统库中做得更少,而且还需要更多。因此对于Fragment来说,这绝对是现在的支持库,并且可能会采用这种方式来获取更多项目。

答案 1 :(得分:-2)

几个月前我们开始使用新的Android应用程序,我们也想知道同样的事情。

IMO,如果可能的话,你应该总是尝试使用 android.app.Fragment 。这样,您就可以确定Android开发人员可以优化,更新和支持此API,他们将为您提供高质量的产品。

目前,我们正在使用android.support.v4.view.ViewPager和其他类似的组件,这些组件在支持库中提供与普通API不同的功能。