理论上,导航库支持您可能想要使用的任何架构。开箱即用,它可以将活动和片段作为导航目的地处理,但您可以通过实现自己的导航器来插入自己的解决方案(例如,请参阅这篇文章)。
但是,引用/解释自Google I/O 关于导航的谈话:
我的活动实际上是做什么的?
现在,有些应用程序非常依赖 Activity,有些应用程序非常依赖 Fragment,或者完全在不同的系统中。我们正在走向一个模型,在这个模型中 Activity 更像是您的应用程序的入口点,而不是您的应用程序内容的所有者。它实际上只是存储全局状态,例如像导航抽屉或底栏这样的全局导航。
因此,Google 确实建议您的应用只使用几个活动,因为您只需要它们作为入口点。例如,您可以让一个从启动器打开,另一个通过深层链接打开。之后,当您的应用程序启动时,您可以使用 Fragments 在其中执行所有其他操作。
总结并直接回答您的两个问题:
导航架构组件本身并不是“旨在消除使用多个活动的需要”,但它是 Google 建议您在使用它时做的事情。
您绝对仍然可以将多个活动和多个片段混合在一起使用。如果您愿意,您甚至可以使用具有纯基于视图的导航的单个 Activity。全取决于你。如果您发现 Navigation 库与您构建应用程序的方式相结合很有用,请使用它。
该库的工具对于自定义目标可能不是那么好(例如,可视化编辑器可能暂时只支持活动和片段),但您可以从代码中随心所欲地使用它。