【问题标题】:Why we use xml?为什么我们使用xml?
【发布时间】:2012-06-28 16:00:59
【问题描述】:

在开发 Android 应用程序时,我们正在为单个应用程序创建许多 XML 文件;当然是android的主旋律。对于应用程序的每个屏幕,我们都在创建一个带有一些布局(静态实现)的 XML。在执行中,每次都会读取 XML 文件以获取它想要显示我们设计的屏幕的所有资源。

同样的设计可以通过在java代码本身中添加几行来实现(动态实现)。例如,我们可以扩展 ListActivity 而不是创建 XML 文件。那么为什么要使用XML,因为应用程序需要从手机内存中读取文件,这可能会导致访问速度变慢并导致应用程序变慢?

所以,动态的实现总是比静态的好。

如果我错了,请纠正我。

【问题讨论】:

  • 我找不到它的来源,但我认为 XML 资源文件在编译时被解析为优化的数据结构(类似于 AST),可以由系统快速加载和解释.我不认为加载这些预处理的 XML 文件是一个很大的开销。您是否对 onCreate() 和 onGlobalLayout() 之间的时间进行了基准测试?其他事情通常是性能问题。像 HTTP 请求、过于复杂(嵌套)的布局、不重用可重用的对象等。
  • @NobuGames :您是对的 - XML 布局文件在构建时进行了预处理。我从未见过 UI 呈现缓慢的情况,如果 OP 出现延迟,那么正如您所建议的,这可能是由于代码中的其他内容减慢了主线程的速度。
  • so, android:text="@string/mytext" 和 textview.setText("Hello");在性能方面没有太大区别,对。请注意,XML (main.xml) 再次读取另一个 XML 文件 (string.xml)。

标签: android xml android-xml


【解决方案1】:

它有助于很好地组织和可视化布局。它为 gui 提供了一个主干,允许用更少的代码支持多个设备。

【讨论】:

    【解决方案2】:

    强烈建议使用 XML 文件,因为它使您的应用程序更紧密地遵循模型-视图-控制器编程策略。将每个部分尽可能地分开可以更容易地开发和维护您的整个程序。性能差异似乎很小,尽管其他人说 XML 是经过预处理的。

    【讨论】:

      【解决方案3】:

      是的,如果您显示的内容是动态的,最好选择 java 代码。

      在某些情况下显示的内容可能不是动态的,在这种情况下 XML 会很有帮助。

      XML 的另一个优点是,它将表示与逻辑分开。阅读此link 了解更多信息。

      在 XML 中声明 UI 的优点是它使您能够 更好地将应用程序的呈现与代码分开 控制它的行为。您的 UI 描述在您的外部 应用程序代码,这意味着您可以修改或调整它而无需 必须修改源代码并重新编译

      【讨论】:

        【解决方案4】:

        来自 Android 开发者文档:

        http://developer.android.com/guide/topics/ui/declaring-layout.html

        在 XML 中声明 UI 的优势在于,它使您能够更好地将应用程序的表示与控制其行为的代码分开。您的 UI 描述在您的应用程序代码之外,这意味着您可以修改或调整它,而无需修改源代码并重新编译。例如,您可以为不同的屏幕方向、不同的设备屏幕尺寸和不同的语言创建 XML 布局。此外,在 XML 中声明布局可以更轻松地可视化 UI 的结构,从而更容易调试问题。因此,本文档的重点是教您如何在 XML 中声明布局

        这两种方法(XML 和运行时编程)各有利弊。这取决于你想要实现什么。例如,如果您想根据屏幕尺寸、屏幕密度、语言等来区分您的演示文稿布局。XML 方式是最好的解决方案。

        【讨论】:

          【解决方案5】:

          使用 XML 也有很大帮助,因为您可以准确地看到每个布局的作用,或者至少它的含义包含什么。而如果您的 XML 只是一个空的 LinearLayout 并且所有内容都是以编程方式添加的,那么当您查看该 XML 文件时,您将不知道它的用途,并且必须查找使用它的代码。

          【讨论】:

            【解决方案6】:

            这是我读到的关于 XML 的内容

            Android 针对内存和功能有限的移动设备进行了优化,因此您可能会觉得奇怪的是,它如此普遍地使用 XML。

            虽然您在编写程序时会看到 XML,但 Eclipse 插件会调用 Android 资源编译器 aapt,将 XML 预处理为压缩的二进制格式。存储在设备。 选择 XML 的原因主要是因为它的熟悉度和原生支持它的 IDE 工具的数量。例如,开发人员可以选择 JSON 并将其编译为二进制文件。自动生成的 R.java 文件是 IDE 的帮助程序,因此您可以在想要访问资源时获得自动完成的好处。

            【讨论】:

              猜你喜欢
              • 2020-11-11
              • 2011-04-02
              • 1970-01-01
              • 1970-01-01
              • 2016-05-31
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多