R.java文件实际上做了什么以及如何

我一直在研究一个简单的android教程,同时浏览项目文件夹,我发现这个R.java文件在gen文件夹中…

当我打开的时候,我觉得好像一团糟

R是自动生成的,并作为其他文件的一些指针

R.java的问题

  • 它基本上是什么
  • 怎么运行的
  • 为什么
  • 值是hex的
  • 它在执行实际应用程序时执行了什么作用

Solutions Collecting From Web of "R.java文件实际上做了什么以及如何"

“作为一些指向其他文件的指针”其实是绝对正确的,现在的问题是指出它是如何完成的。

它包含什么?

R文件包含项目res文件夹中所有资源的ID,以及您自己定义的一些附加ID(例如在布局中)。 Android资源pipe理系统需要这些ID才能从APK中检索文件。 每个ID基本上是一个对应于资源pipe理系统中某个资源的数字。

文件本身是必需的,所以您可以通过将资源的ID提供给资源pipe理器来访问或引用代码中的资源。 说,如果你想在活动中设置视图,你打电话

 setContentView(R.layout.main); 

R文件中main包含Android资源pipe理系统所理解的编号为main的布局文件。

为什么比简单的文件名称更好?

生成的字段很难弄错。 如果你写错了字段名称,你的程序将无法编译,你会知道有一个错误立即。 但是,如果你写了一个不正确的string,应用程序不会失败,直到它被启动。

如果您想了解更多关于此主题的信息,请查看Android文档,尤其是访问资源部分。

这持有你的资源ID。 所以当你做类似的事情

 TextView tv = (TextView) findViewById(R.id.mytextview); 

它在这里查找你的ID为这个Viewlayout等…这样的应用程序有一个简单的方法来查找您的ID,而你可以使用容易记住的名字。 任何时候你创build一个resource它会自动为它创build一个id并存储在这里。 这就是为什么你永远不想尝试自己编辑这个文件。

想想R.java是多么有价值的一种方法,想象没有它的世界。 它令人惊奇的如何Android带来的XML和Java世界在一起,以帮助避免完全手动编写UI。 使用java语言的传统java构buildUI是一个痛苦。 无价。

使用Android,您不仅可以使用xml构build您的UI,还可以在构build时查看它。 无价。

xml中的每个元素都可以在java代码中被引用,而不需要写一行代码来parsingxml :)。 只是R.id.nameOfElement。 无价。

在android中快速开发是完美的。 试想一下,如果iPhone将有5000个屏幕来适应这一块代码,他们将崩溃在他们的XCode。 Google用R.java做了很棒的工作。 无价。