Android仪表板显示只有一半的设备具有Android 5.0及更高版本,但我们的客户数据集的数字看起来不同 - 超过93%的用户.因此,我们决定放弃对Android版本低于5.0且minSdkVersion
从15 更改为21的设备的支持.
此升级要求我们审查所有过时的功能并清理我们应用于支持旧版本的一些hacky变通方法.我们现在可以应用的主要功能之一是替换android.support.v4.app.Fragment
为android.app.Fragment
.这听起来不错,特别是当我们知道片段API已被审查和改进时.
只是为了确保我走正确的道路并且android.app.fragment
不会让我感到惊讶我想从这个stackoverflow线程中解释一下问题- 你是否正在使用支持库中的片段,即使它们已经可用,在为Android 5开发时?片段API中是否存在Android 5.0及更高版本中出现的错误并在支持库中修复?
更新
在Android-KTX发布后,Jake Wharton在其中一个PR中发表了以下声明:
感谢您花时间制作PR(带有测试!),但我们想鼓励开发人员只使用支持库片段.下一版本的Android将弃用作为平台一部分的片段版本.因此,我们不会在此项目中添加任何扩展来支持它们.
因此,使用支持库中的片段是正确的做法.
我建议最后使用支持库片段,原因如下:
未来的功能可能会被添加并向后移植,然后您需要重写才能使用它们
一致性.支持库的工作原理是确保支持片段始终保持相同.而本机片段可能在版本之间存在细微差别.
支持库可以包含对平台的错误修复,并且可以更频繁地更新.
编辑:自2018年起,不推荐使用操作系统级别Fragment.从技术上讲,谷歌的前进道路是在操作系统库中做得更少,而且还需要更多.因此对于Fragment来说这绝对是现在的支持库,并且可能会以更多项目的方式进行.