我想知道为什么我们使用 XML在Android中创建用户界面布局。我知道它将商务逻辑与设计分离,但除此之外XML的重要性是什么?
此外,我想知道自动生成R.java
文件的重要性。我只知道它是根据资源的变化生成的,它可以帮助我们通过id来访问小部件和资源。
如果有人能够就这两个方面给出明确的想法,那将会很棒。
答案 0 :(得分:29)
与大家所说的xml简单高效不同。这就是我从Ed Brunnette的Hello Android中读到的内容。
Android针对内存和功能有限的移动设备进行了优化,因此您可能会发现奇怪的是它如此普遍地使用XML。毕竟,XML是一种冗长的,人类可读的格式,因其简洁或高效而闻名,对吗?
虽然在编写程序时看到了XML,但Eclipse插件会调用Android资源编译器aapt,将XML预处理为压缩二进制格式。**这种格式,而不是原始XML文本,即存储在设备上。
这是我正在寻找的那种答案。(对不起,如果我的问题另有说法)。
选择XML的原因主要是因为它的熟悉程度和原生支持它的IDE工具的数量。开发人员可以选择JSON,但仍然将其编译为二进制文件。自动生成的R.java文件是IDE的帮助程序,以便在您想要访问资源时获得自动完成的好处。
答案 1 :(得分:14)
XML易于以编程方式进行解析和操作,它基本上是一种树结构,大多数UI创建工具已经使用它。它实际上与解耦业务逻辑无关,因为您也可以使用模型 - 视图 - 控制器模式在Android中定义Java代码。
自动生成的R.java文件是IDE的帮助程序,以便您在访问资源时可以获得自动完成的好处。它还可以阻止您犯下愚蠢的错误,因为如果您尝试访问未定义的资源,编译器会抱怨。如果您使用的是简单的属性文件,那么在运行时之前您将无法知道您正在使用的“密钥”。
答案 2 :(得分:3)
同样为什么Silverlight与xml的答案是简单的xml通过集成和可扩展性赋予权力。 R.java用于索引有组织的东西永远不会坏。 对不起我的英文
答案 3 :(得分:1)
一个可能的原因是你不需要在下面有任何工作的java,以便能够看到你正在使用的界面的可视布局。 xml ui元素/页面本质上是一个可以解析和显示的文档。如果这是一个源文件,你必须仔细解析它或编译并运行它(所有这些都比解析xml更复杂)
答案 4 :(得分:1)
Xml本身在人和机器上都具有良好的可读性。此外,它可扩展且易于开发。此外,您已经提到过去耦。
至于R.java--它只是访问小部件的方式。解决方案相当不错,因为它使用int而不是string来使用更少的内存,同时为开发的简单性提供了易读的名称。
答案 5 :(得分:0)
Android布局是具有某些强制规则的树状结构。 XML非常适合此目的。
JSON也具有树状结构,但是它们是面向数据的,而XML是面向文档的。**:
含义XML是基于文档具有结构化和 无需参考即可描述的其他语义元素 应该如何显示这些元素。
此类文档的实际显示可能会有所不同,具体取决于 输出媒体和样式首选项。
虽然JSON旨在 代表JavaScript,其主要目的是数据交换。它们非常适合面向数据的领域 由于其重量轻,简单易用,并且语法形式更接近于编程数据结构。