Ich habe an einem einfachen Android Tutorial gearbeitet und beim Durchsuchen der Projektordner habe ich diese R.java
Datei in gen
Ordner gefunden ...
Als ich es öffnete, schien es mir ein Durcheinander ...
R
selbst ist ein class
. multiple Inner classes
definiert zB in drawable
, id
, layout
, etc. und diese inneren Klassen hatten eine Menge von Variablen, die wie folgt deklariert wurden und denen Hex-Werte zugewiesen wurden
public static final int Adr = 0x7f080003; ... ... und vieles mehr
R wird automatisch generiert und dient als Zeiger für andere Dateien
Fragen für R.java
"Funktioniert als irgendein Zeiger auf andere Dateien" ist eigentlich absolut korrekt, jetzt ist die Frage, auf welche Dateien es zeigt, wie es gemacht wird.
Die R-Datei enthält IDs für alle Ressourcen im Ordner res
Ihres Projekts sowie einige zusätzliche IDs, die Sie selbst definieren (z. B. in den Layouts). Die IDs werden für das Android-Ressourcenverwaltungssystem benötigt, um die Dateien aus dem APK abzurufen. Jede ID ist im Grunde eine Nummer, die einer Ressource im Ressourcenverwaltungssystem entspricht.
Die Datei selbst wird benötigt, damit Sie aus dem Code auf die Ressource zugreifen oder auf diese verweisen können, indem Sie dem Ressourcenmanager die ID der Ressource zuweisen. Wenn Sie beispielsweise die Ansicht in der Aktivität festlegen möchten, rufen Sie
auf %Vor% main
in der R-Datei enthält die Nummer, die das Android-Ressourcenverwaltungssystem als Layoutdatei mit dem Namen main versteht.
Es ist schwieriger, einen Fehler mit den generierten Feldern zu machen. Wenn Sie den Feldnamen falsch schreiben, kompiliert Ihr Programm nicht und Sie werden wissen, dass sofort ein Fehler auftritt. Wenn Sie jedoch eine falsche Zeichenfolge schreiben, schlägt die Anwendung erst nach dem Start fehl.
Wenn Sie mehr zu diesem Thema lesen möchten, sollten Sie die Android-Dokumentation überprüfen, insbesondere die Zugriff auf Ressourcen Teil.
Dies enthält Ihre Ressourcen-IDs. Also wenn du sowas wie
machst %Vor% es sucht Ihre ID hier nach dem View
, layout
, etc ... Auf diese Weise hat die App eine einfache Möglichkeit, Ihre IDs nachzuschlagen, während Sie einfach zu merkende Namen verwenden können. Immer wenn Sie ein resource
erstellen, erstellt es automatisch ein id
und speichert es hier. Deshalb möchten Sie diese Datei nie selbst bearbeiten.
Eine Möglichkeit, darüber nachzudenken, wie wertvoll R.java ist, stellen Sie sich eine Welt ohne sie vor. Es ist erstaunlich, wie Android die XML- und Java-Welt zusammenbringt, um zu vermeiden, die Benutzeroberfläche manuell komplett zu codieren. Mit Legacy Java Building UI mit der Java-Sprache war ein Schmerz. Unschätzbar.
Mit Android können Sie Ihre Benutzeroberfläche nicht nur mit XML erstellen, sondern auch während des Builds sehen. Unschätzbar.
Auf jedes Element in der XML-Datei kann im Java-Code verwiesen werden, OHNE dass eine einzelne Codezeile geschrieben wird, um die XML-Datei zu analysieren :). Nur R.id.nameOfElement. Unschätzbar.
Schnelle Entwicklung ist schön in Android gemacht. Stellen Sie sich vor, wenn das iPhone 5000 Bildschirme hätte, die zu diesem einen Code passen würden, würden sie auf ihrem XCode zerbröseln. Google hat mit R.java einen wunderbaren Job gemacht. Unschätzbar.
Tags und Links android