我的派对有点晚了,但这是我在这件事上的两分钱,我很幸运地回答了一个人的这个问题,他用70+屏幕和大量的业务逻辑编写了一个大型应用程序。下面是为什么编写一个纯Java/Kotlin Android应用程序是不可取的:

适当的职责分离--使用UI的程序最好在界面的外观和界面的行为之间有一个清晰的分离。虽然您可能无法从Java (或Kotlin)代码中排除100%的布局相关设置,但布局本身将由活动的XML文件定义。您可以在一个地方看到所有组件,如果需要,可以从活动的Java/Kotlin类访问它们,并以编程的方式对它们进行操作(例如绑定事件侦听器)。职责分离应该是在Android应用程序的活动中使用XML的一个令人信服的理由。开发速度- Android Studio和其他支持Android开发的现代IDE一样,允许您根据XML文件预览布局,而无需编译整个应用程序。如果您只在活动类中编写整个应用程序,那么每次要查看布局更改时,您可能都必须编译该应用程序,这远远超出了效率低下的问题。另外,可能有一些工具/插件只基于Java/Kotlin代码预览您的布局,但我不知道它们。您希望看到您的布局更改在分裂的秒,或等待一两分钟的AVD (Android虚拟设备)或您的调试设备,以使编译的应用程序启动和运行?它还在运行吗,或者你在某个地方有bug?用XML定义Android布局要快几个数量级。这也应该是一个令人信服的理由。代码可读性--如果你还没有被说服,并且作为一个单独的开发人员编写你的应用程序,那么你当然可以理解你自己的代码。您甚至可以将视图的构造分解为方法、创建漂亮的抽象、重用组件和具有最先进设计模式的代码。但是,当第二个开发人员进入画面时,会发生什么呢?他(她)不仅要理解你的代码,还要从行为代码中筛选视图代码(参见第1点),并试图进入你的头脑,并在构建代码时破译出你脑海中的想法。请记住,在Android中的布局代码可能会变得非常冗长,所以不管您的代码写得多么漂亮,没有人真的想在自己的项目中强制他们为每一个Android活动读取一个带有1000+代码行的类。在可读性方面,用XML编写应用程序的最大优点是XML是按层次结构构造的。元素之间的布局关系立即可见。如果您在没有XML的情况下构建Android应用程序,您将以编程方式将子应用追加到他们的父应用程序中。您不能将代码缩进以反映屏幕上的元素层次结构。在线材料-虽然这可能不是一个关键的点,但我仍然觉得它是一个很好的。对于XML+Java/Kotlin设置来说,在线材料更为突出,因为这是编写Android应用程序的一种鼓励方式。如果您在布局问题上陷入困境,您更有可能找到解决您的布局问题的人,而不是只使用代码的设置。您可能需要更经常地阅读手册(总是鼓励的)。当然,你可能会在网上找到一些咄咄逼人的开发人员,告诉你要阅读(.*)手册,但不要让他们愚弄你,因为他们也在谷歌上寻找答案。希望能帮上点忙。