was R.java Datei tatsächlich macht und wie

9

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 ...

  • first R selbst ist ein class .
  • es hatte 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

  • was es im Grunde für
  • ist
  • wie es funktioniert
  • warum
  • Werte sind in hex
  • welche Rolle hat es ausgeführt, während die Anwendung läuft?
Karan Mer 13.04.2013, 22:20
quelle

3 Antworten

3

"Funktioniert als irgendein Zeiger auf andere Dateien" ist eigentlich absolut korrekt, jetzt ist die Frage, auf welche Dateien es zeigt, wie es gemacht wird.

Was enthält es?

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.

Warum ist es besser als nur einfache Dateinamen?

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.

    
Malcolm 13.04.2013, 22:33
quelle
1

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.

    
codeMagic 13.04.2013 22:25
quelle
1

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.

    
Siddharth 22.04.2013 11:11
quelle

Tags und Links