Projektübersicht

Ein Projekt in Android Studio enthält alles, was den Arbeitsbereich für eine App definiert, vom Quellcode und Assets bis hin zu Testcode und Build-Konfigurationen.

Wenn Sie ein neues Projekt starten, erstellt Android Studio die erforderliche Struktur für alle Ihre Dateien und macht sie im Fenster Projekt in Android Studio sichtbar. Wählen Sie zum Öffnen des Fensters View > Tool Windows > Project (Ansicht > Toolfenster > Projekt) aus.

Diese Seite bietet einen Überblick über die Hauptkomponenten Ihres Projekts.

Module

Ein Modul ist eine Sammlung von Quelldateien und Build-Einstellungen, mit denen Sie Ihr Projekt in separate Funktionseinheiten unterteilen können. Ihr Projekt kann ein oder mehrere Module enthalten und ein Modul kann ein anderes Modul als Abhängigkeit verwenden. Sie können jedes Modul unabhängig erstellen, testen und debuggen.

Zusätzliche Module sind nützlich, wenn Sie Codebibliotheken in Ihrem eigenen Projekt erstellen oder unterschiedliche Code- und Ressourcensätze für verschiedene Gerätetypen wie Smartphones und Wearables erstellen möchten, aber alle Dateien innerhalb desselben Projekts bleiben und Code gemeinsam nutzen möchten.

Klicken Sie auf File > New > New Module, um Ihrem Projekt ein neues Modul hinzuzufügen.

Android Studio bietet verschiedene Arten von Modulen:

Android-App-Modul
Bietet einen Container für den Quellcode Ihrer App, die Ressourcendateien und die Einstellungen auf App-Ebene, z. B. die Build-Datei auf Modulebene und die Android-Manifestdatei. Wenn Sie ein neues Projekt erstellen, heißt das Standard-App-Modul „app“.

Android Studio bietet die folgenden Arten von App-Modulen:

  • Smartphone und Tablet
  • Automotive
  • Wear OS
  • TV
  • Baseline-Profilgenerator
  • Benchmark

Jedes Modul enthält wichtige Dateien und einige Codevorlagen, die für die entsprechende App oder den entsprechenden Gerätetyp geeignet sind.

Weitere Informationen zum Hinzufügen eines Moduls finden Sie unter Modul für ein neues Gerät hinzufügen.

Funktionsmodul
Stellt eine modularisierte Funktion Ihrer App dar, die die Vorteile von Play Feature Delivery nutzen kann. Mit Funktionsmodulen kannst du deinen Nutzern beispielsweise bestimmte Funktionen deiner App on demand oder als Instant-Funktion über Google Play Instant zur Verfügung stellen.

Android Studio bietet die folgenden Arten von Funktionsmodulen:

  • Modul für dynamische Funktionen
  • Instant Dynamic Feature Library-Modul

Weitere Informationen findest du unter Play Feature Delivery.

Bibliotheksmodul
Stellt einen Container für Ihren wiederverwendbaren Code bereit, den Sie als Abhängigkeit in anderen App-Modulen verwenden oder in andere Projekte importieren können. Ein Bibliotheksmodul ist dasselbe wie ein App-Modul. Wenn es jedoch erstellt wird, wird statt eines APK eine Codearchivdatei erstellt, sodass es nicht auf einem Gerät installiert werden kann.

Im Fenster Neues Modul erstellen bietet Android Studio die folgenden Arten von Bibliotheksmodulen:

  • Android-Bibliothek:Enthält alle Dateitypen, die in einem Android-Projekt unterstützt werden, mit Ausnahme von nativem C++-Code, einschließlich Java- und Kotlin-Quellcode, Ressourcen und Manifestdateien. Das Build-Ergebnis ist eine Android Archive-Datei (AAR), die Sie als Abhängigkeit für Ihre Android-App-Module hinzufügen können.
  • Native Bibliothek von Android:Enthält alle in einem Android-Projekt unterstützten Dateitypen, ähnlich wie bei einer Android-Bibliothek. Native Android-Bibliotheken können jedoch auch nativen C++-Quellcode enthalten. Das Build-Ergebnis ist eine Android Archive-Datei (AAR), die Sie als Abhängigkeit für Ihre Android-App-Module hinzufügen können.
  • Java- oder Kotlin-Bibliothek:Enthält nur Kotlin- oder Java-Quelldateien. Das Build-Ergebnis ist eine Java-Archivdatei (JAR), die Sie als Abhängigkeit für Ihre Android-App-Module oder andere Kotlin- oder Java-Projekte hinzufügen können.

Module werden manchmal als Unterprojekte bezeichnet, da sie in Gradle auch als Projekte bezeichnet werden.

Wenn Sie ein Bibliotheksmodul erstellen und es als Abhängigkeit zu Ihrem Android-App-Modul hinzufügen möchten, müssen Sie es so deklarieren:

Cool

dependencies {
    implementation project(':my-library-module')
}

Kotlin

dependencies {
    implementation(project(":my-library-module"))
}

Projektdateien

Standardmäßig zeigt Android Studio Ihre Projektdateien in der Ansicht Android an. Diese Ansicht spiegelt nicht die tatsächliche Dateihierarchie auf dem Laufwerk wider. Stattdessen ist es nach Modulen und Dateitypen organisiert, um die Navigation zwischen wichtigen Quelldateien Ihres Projekts zu vereinfachen und bestimmte Dateien oder Verzeichnisse, die nicht häufig verwendet werden, auszublenden.

Einige der strukturellen Unterschiede zwischen der Android-Ansicht und der Struktur auf dem Laufwerk bestehen in den folgenden strukturellen Unterschieden in der Android-Ansicht:

  • Zeigt alle build-bezogenen Konfigurationsdateien des Projekts in einer übergeordneten Gradle Script-Gruppe an.
  • Zeigt alle Manifestdateien für jedes Modul in einer Gruppe auf Modulebene an, wenn Sie verschiedene Manifestdateien für unterschiedliche Produkt-Flavor und Build-Typen haben.
  • Zeigt alle alternativen Ressourcendateien pro Ressourcenqualifizierer in einer einzelnen Gruppe statt in separaten Ordnern an. Beispielsweise sind alle Versionen deines Launcher-Symbols nebeneinander sichtbar.

Innerhalb der einzelnen Android-App-Module werden Dateien in die folgenden Gruppen eingeteilt:

Manifeste
Enthält die Datei AndroidManifest.xml.
Java
Enthält die Kotlin- und Java-Quellcodedateien, die nach Paketnamen getrennt sind, einschließlich JUnit-Testcode.
Auflösung
Enthält alle Nicht-Code-Ressourcen wie UI-Strings und Bitmapbilder, unterteilt in entsprechende Unterverzeichnisse. Weitere Informationen zu möglichen Ressourcentypen finden Sie unter App-Ressourcen – Übersicht.

Projektansicht

Wenn Sie die eigentliche Dateistruktur des Projekts einschließlich aller in der Android-Ansicht ausgeblendeten Dateien sehen möchten, wählen Sie oben im Fenster Projekt im Menü die Option Projekt aus.

Wenn Sie die Projektansicht auswählen, werden viel mehr Dateien und Verzeichnisse angezeigt, darunter:

module-name/
build/
Enthält Build-Ausgaben.
libs/
Enthält private Bibliotheken.
src/
Enthält alle Code- und Ressourcendateien für das Modul in den folgenden Unterverzeichnissen:
androidTest/
Enthält Code für Instrumentierungstests auf einem Android-Gerät. Weitere Informationen findest du unter In Android Studio testen.
cpp/
Enthält nativen C- oder C++-Code unter Verwendung der Java Native Interface (JNI). Weitere Informationen findest du in der Android NDK-Dokumentation.
main/
Enthält die "main"-Quelldateien des Quellsatzes: der Android-Code und die Ressourcen, die von allen Build-Varianten gemeinsam genutzt werden (Dateien für andere Build-Varianten befinden sich in gleichrangigen Verzeichnissen, z. B. src/debug/ für den Debug-Build-Typ):
AndroidManifest.xml
Hier werden die Eigenschaften der App und ihre einzelnen Komponenten beschrieben. Weitere Informationen findest du in der Übersicht zum App-Manifest.
java/
Enthält Kotlin- oder Java-Codequellen oder beide, wenn Ihre App sowohl Kotlin- als auch Java-Quellcode enthält.
kotlin/
Enthält nur Kotlin-Codequellen.
res/
Enthält Anwendungsressourcen wie Drawable-Dateien und UI-String-Dateien. Weitere Informationen finden Sie in der Übersicht über die Anwendungsressourcen.
assets/
Enthält Dateien, die unverändert in eine APK-Datei kompiliert werden sollen. Dies ist beispielsweise ein guter Speicherort für Texturen und Spieldaten. Sie können dieses Verzeichnis auf die gleiche Weise wie ein typisches Dateisystem aufrufen, indem Sie URIs verwenden und Dateien mit AssetManager als Bytestream lesen.
test/
Enthält Code für lokale Tests, die auf Ihrer Host-JVM ausgeführt werden.
build.gradle oder build.gradle.kts (Modul)
Definiert die modulspezifischen Build-Konfigurationen. build.gradle ist der richtige Dateiname, wenn Sie Groovy als Build-Skriptsprache verwenden, und build.gradle.kts, wenn Sie ein Kotlin-Skript verwenden.
build.gradle oder build.gradle.kts (Projekt)
Dies definiert Ihre Build-Konfiguration, die für alle Module gilt. build.gradle ist der korrekte Dateiname, wenn Sie Groovy als Build-Skriptsprache verwenden, und build.gradle.kts, wenn Sie ein Kotlin-Skript verwenden. Diese Datei ist ein wesentlicher Bestandteil des Projekts. Bewahren Sie sie daher zusammen mit dem anderen Quellcode zur Überarbeitungskontrolle auf.

Informationen zu anderen Build-Dateien finden Sie unter Build konfigurieren.

Einstellungen der Projektstruktur

Um verschiedene Einstellungen für Ihr Android Studio-Projekt zu ändern, öffnen Sie das Dialogfeld Project Structure (Projektstruktur), indem Sie auf File > Project Structure (Datei > Projektstruktur) klicken. Es enthält die folgenden Abschnitte:

  • Projekt:Legt die Version für Gradle und das Android-Gradle-Plug-in sowie den Speicherort des Repositorys fest.
  • SDK-Standort: Legt den Speicherort des JDK, des Android SDK und des Android-NDK fest, das Ihr Projekt verwendet.
  • Variablen:Ermöglicht die Bearbeitung von Variablen, die in Ihren Build-Skripts verwendet werden.
  • Module: Ermöglicht die Bearbeitung modulspezifischer Build-Konfigurationen, einschließlich des Ziel- und Mindest-SDKs, der App-Signatur und der Bibliotheksabhängigkeiten. Die Einstellungsseite jedes Moduls ist in die folgenden Tabs unterteilt:
    • Properties:Gibt die SDK-Versionen und Build-Tools an, die zum Kompilieren des Moduls verwendet werden sollen.
    • Signing:Gibt das Zertifikat an, mit dem die Anwendung signiert werden soll.
  • Abhängigkeiten: Listet die Bibliotheks-, Datei- und Modulabhängigkeiten für dieses Modul auf. In diesem Bereich können Sie Abhängigkeiten hinzufügen, ändern und löschen. Weitere Informationen zu Modulabhängigkeiten finden Sie unter Build-Varianten konfigurieren.

  • Build-Varianten:Hiermit können Sie verschiedene Varianten und Build-Typen für Ihr Projekt konfigurieren.

    • Flavors:Hiermit können Sie mehrere Build-Varianten erstellen, wobei für jede Version eine Reihe von Konfigurationseinstellungen angegeben wird, z. B. die Mindest- und Ziel-SDK-Version des Moduls sowie der Versionscode und Versionsname.

      Beispielsweise könnten Sie eine Variante mit mindestens 21 SDKs und eine SDK-Zielversion von 29 und eine andere Version mit mindestens 24 SDKs und eine Ziel-SDK-Version von 33 definieren.

    • Build-Typen: Hiermit können Sie Build-Konfigurationen erstellen und ändern, wie unter Build-Varianten konfigurieren beschrieben. Standardmäßig verfügt jedes Modul über den Build-Typ debug und release. Sie können bei Bedarf weitere definieren.