1

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

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

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

谢谢,香农

4

6 回答 6

1

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

于 2011-04-09T07:45:42.297 回答
1

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

于 2011-04-09T07:47:54.683 回答
1

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

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

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

于 2011-04-09T12:36:41.210 回答
0

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

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

于 2011-04-09T07:46:43.357 回答
0

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. It很不方便。

于 2011-04-09T09:10:20.790 回答
0

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

请参阅详细查看构建过程,并查看项目bin/文件夹。

于 2011-04-09T12:30:56.440 回答