为什么不将数据(strings.xml,main.xml)留在 .xml 文件中?为什么将其转换为 R.java?
看来android可以读取xml(例如androidmanifest.xml)。那么为什么不将 strins.xml 数据和 main.xml 数据保留为 .xml 形式并将这些 xml 发送到 android 设备呢?
我是新人……也许我最终会看到,除了直接从那些 .xml 派生的静态变量之外,R.java 中还有更多内容。
谢谢,香农
为什么不将数据(strings.xml,main.xml)留在 .xml 文件中?为什么将其转换为 R.java?
看来android可以读取xml(例如androidmanifest.xml)。那么为什么不将 strins.xml 数据和 main.xml 数据保留为 .xml 形式并将这些 xml 发送到 android 设备呢?
我是新人……也许我最终会看到,除了直接从那些 .xml 派生的静态变量之外,R.java 中还有更多内容。
谢谢,香农
这样您就可以轻松地引用您在布局、可绘制和字符串文件中创建的对象。此类表示可以在代码中实例化或可以在您的编码中使用的所有资源
这样您就可以使用 R 类对象轻松地从代码中引用您的资源 ID,从而避免编译错误,我认为
如果您的程序中有错误,您希望尽早发现它。
如果资源以 XML 形式保留,则将在运行时发现任何错误(测试驱动或用户驱动)。测试永远无法证明不存在所有缺陷,因此您的软件用户可能会发现一些错误!
但是,如果资源被转换为源代码,R
那么编译器将检查对它们的所有引用。在这个更早的阶段检测到任何错误(与资源引用相关),早在您的客户看到它们之前。
将 XML 内容的 id 引用传输到代码中,可以在编码时轻松使用这些引用,并且在编译期间可以看到正确的用法。因此避免了运行时异常。
我不知道这是否是核心原因,但这对我来说很重要:-)。
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
很不方便。
R.java
不包含任何数据。它是aapt
在构建过程中生成的,它准备资源以将它们打包到 APK 中,包括以更易于阅读和解析的格式编译 XML 文件。R.java
包含静态 int 成员,它们只是打包资源的索引。
请参阅详细查看构建过程,并查看项目bin/
文件夹。