Dies ist eine alte Version des Dokuments!


Die Dateistruktur

Zur Dateistruktur des Projektes gibt es an dieser Stelle nur eine kurze Information bezüglich der wichtigsten Ordner und Dateien, da etliche Ordner und Dateien vorhanden sind oder sein können, die wenigsten davon uns jedoch wirklich interessieren, da sie weder von uns erstellt noch modifiziert oder beachtet werden müssen. Hier soll zuerst nur um die Grundlagen gehen.

Dateistruktur

  • src ⇒ beinhaltet die Pakete mit den Quellcodes zu den Klassen/Activities, also *.java
  • res ⇒ enthält alle Resourcen der App selbst. Bis auf wenige Ausnahmen sind dies alles *.xml Dateien
  • AndroidManifest ⇒ hier werden die Activities und Eigenschaften des Projektes und der App definiert.

Die Klassen aus src werden also faktisch direkt von uns erstellt und erweitert. Dabei werden aber immer wieder Ressourcen aus res benötigt. Diese sind wiederum, je nach Typ, verteilt in verschiedenen Unterverzeichnissen.

  • drawable ⇒ Enthält alle Grafiken wie Bilder, Logos, Shapes, Farbverläufe usw.
  • layout ⇒ Enthält alle Layouts zu den Activities und anderen Elementen die für die GUI zuständig sind
  • values ⇒ Enthält diverse Ressourcentypen, der wichtigste Typ ist hier wohl der string. Es existieren aber weitere Möglichkeiten auf die bei Gelegenheit eingegangen wird.
  • menu ⇒ Enthält die Menüs für die Navigation oder Parametrierung.

Dies sind schonmal die wichtigsten Verzeichnisse, welche auch direkt beim neu erstellten Projekt schon vorhanden sein sollten, Erwähnt soll hierbei sein dass für diese Ordner ebenso Abwandlungen eingesetz werden können bzw. sollen. So werden zB. für verschiedene Bildschirmauflösungen auch unterschiedliche drawable-Verzeichnisse benutzt um die Bilder in entsprechender Form bei gleichbleibenden Namen zur Verfügung zu stellen. Ausserdem ist es so möglich die string-Resource in verschiedenen Sprachen anzubieten. Wobei in der Ordner ohne postfix immer den Standard darstellt.

Für den Zugriff auf die entsprechende Resource wird immer die Klasse

R

benötigt, die entsprechende Resource wird Angehängt. Also zB.

R.drawable.ic_launcher

Zu beachten ist hier, dass alle im values-Ordner befindlichen Resourcen N I C H T mit

R.values....

aufgerufen werden, sondern direkt mit dem Dateinamen. Also

R.string.<MEINE_STRING_ID>

Die Id bzw. der Name wird in diesem Fall in der entsprechenden Datei vergeben.

Beispiel ../values/strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">InputButton</string>
    <string name="hello_world">Hello world!</string>
</resources>

Zugriff:

R.drawable.ic_launcher;
R.string.hello_world;

Da unter anderem auch in den Layouts auf die Strings zugegriffen werden muss, hier aber keine Klasse R zur verfügung steht, existiert eine weitere Möglichkeit des Zugriffs aus XML-Dateien wie zB. Layouts:

@drawable/ic_launcher
@string/hello_world

Ein etwas anderer Syntax, aber die gleiche Schematik. Wie sich zeigt wird jegliche Dateiendung wie png oder andere nicht benötigt, im Gegenteil, es führt sogar zu Fehlern wenn diese benutzt werden.