【问题标题】:why does android create the R.java file为什么android会创建R.java文件
【发布时间】:2011-08-01 23:52:22
【问题描述】:

为什么不将数据(strings.xml, main.xml)留在 .xml 文件中?为什么要转换成 R.java?

似乎 android 可以读取 xml(例如 androidmanifest.xml)。那么为什么不直接将 strins.xml 数据和 main.xml 数据保留为 .xml 格式并将这些 xml 发送到 android 设备呢?

我是新人...也许我最终会发现,除了直接从那些 .xml 派生的静态变量之外,R.java 中还有更多内容。

谢谢, 香农

【问题讨论】:

  • 如果您对答案感到满意,最好接受您认为最好的答案。这是一种奖励形式,告诉人们问题已解决。要接受答案,请单击它旁边的勾号。这也会给您积分,因此您也将获得投票的特权(作为另一种形式的奖励)。

标签: android xml r.java-file


【解决方案1】:

以便您可以轻松引用您在布局、可绘制和字符串文件中创建的对象。这个类代表了所有可以在代码中实例化或可以在你的编码中使用的资源

【讨论】:

    【解决方案2】:

    我认为,这样您就可以使用 R 类对象轻松地从代码中引用您的资源 ID,从而避免编译错误

    【讨论】:

      【解决方案3】:

      如果您的程序中有错误,您希望尽早发现它。

      如果资源以 XML 形式保留,则在运行时会发现任何错误(测试驱动或用户驱动)。测试永远无法证明不存在所有缺陷,因此您的软件的用户可能会发现一些错误!

      但是,如果资源在R 中转换为源代码,那么编译器将检查对它们的所有引用。任何错误(与资源引用相关)都在这个更早的阶段被检测到,远在您的客户看到它们之前。

      【讨论】:

        【解决方案4】:

        将 XML 内容的 id 引用传输到代码中,可以在编码时轻松使用这些引用,并且在编译时可以看到正确的用法。因此避免了运行时异常。

        我不知道这是否是核心原因,但这对我来说很重要:-)。

        【讨论】:

          【解决方案5】:

          R.java 是所有资源的处理程序。

          您创建资源,R.java 会自动在您的代码和资源之间建立连接。您可以轻松地从 R 中获取各种资源,并且 android 提供了许多支持 R.java 及其处理程序(那些整数)的 API。你不要t need to manually open a stream to res files, do file reading, images decoding and etc. Its 非常方便。

          【讨论】:

            【解决方案6】:

            R.java 不包含任何数据。它是由aapt 在构建过程中生成的,它准备资源以将它们打包到 APK 中,包括以更易于阅读和解析的格式编译 XML 文件。 R.java 包含静态 int 成员,它们只是打包资源的索引。

            查看A Detailed Look at the Build Process,并查看项目的bin/ 文件夹。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2010-12-28
              • 2012-12-12
              • 2013-01-28
              • 1970-01-01
              • 1970-01-01
              • 2021-05-11
              • 1970-01-01
              相关资源
              最近更新 更多