Projektübersicht

Ein Projekt in Android Studio enthält alles, was Ihren Arbeitsbereich für eine App definiert, vom Quellcode und den 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 Project in Android Studio sichtbar. Wählen Sie zum Öffnen des Fensters View > Tool Windows > Project (Ansicht > Tool-Fenster > Projekt) aus.

Auf dieser Seite finden Sie eine Übersicht über die wichtigsten Komponenten in Ihrem Projekt.

Module

Ein Modul ist eine Sammlung von Quelldateien und Buildeinstellungen, mit denen Sie Ihr Projekt in separate Funktionseinheiten unterteilen können. Ihr Projekt kann ein oder mehrere Module haben und ein Modul kann ein anderes Modul als Abhängigkeit verwenden. Sie können jedes Modul unabhängig erstellen, testen und debuggen. In der Gradle-Dokumentation werden Module möglicherweise auch als „Projekte“ oder „Unterprojekte“ bezeichnet.

Zusätzliche Module sind nützlich, wenn Sie Codelibraries in Ihrem eigenen Projekt erstellen oder verschiedene Sets von Code und Ressourcen für verschiedene Gerätetypen wie Smartphones und Wearables erstellen möchten, aber alle Dateien im selben Projekt behalten und Code gemeinsam nutzen möchten.

Wenn Sie Ihrem Projekt ein neues Modul hinzufügen möchten, klicken Sie auf Datei > Neu > Neues Modul.

Android Studio bietet verschiedene Arten von Modulen:

Android-App-Modul

Bietet einen Container für den Quellcode, die Ressourcendateien und die Einstellungen auf App-Ebene Ihrer App, 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

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

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

Funktionsmodul
Stellt eine modularisierte Funktion Ihrer App dar, die Play Feature Delivery nutzen kann. Mit Funktionsmodulen können Sie Ihren Nutzern beispielsweise bestimmte Funktionen Ihrer App bei Bedarf oder als Instant-Apps über Google Play Instant zur Verfügung stellen.

Android Studio bietet die folgenden Arten von Funktionsmodulen:

  • Dynamisches Funktionsmodul
  • Instant Dynamic Feature Library-Modul

Weitere Informationen finden Sie unter Play Feature Delivery.

Bibliotheksmodul

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

Im Fenster Create New Module (Neues Modul erstellen) bietet Android Studio die folgenden Arten von Bibliotheksmodulen an:

  • Android-Bibliothek:Enthält alle in einem Android-Projekt unterstützten Dateitypen mit Ausnahme von nativem C++-Code, einschließlich Java- und Kotlin-Quellcode, Ressourcen und Manifestdateien. Das Buildergebnis ist eine AAR-Datei (Android Archive), die Sie als Abhängigkeit für Ihre Android-App-Module hinzufügen können.
  • Android Native Library:Enthält alle Dateitypen, die in einem Android-Projekt unterstützt werden, ähnlich wie eine Android-Bibliothek. Android Native Libraries können jedoch auch nativen C++-Quellcode enthalten. Das Buildergebnis ist eine AAR-Datei (Android Archive), 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 Buildergebnis ist eine JAR-Datei (Java Archive), die Sie als Abhängigkeit für Ihre Android-App-Module oder andere Kotlin- oder Java-Projekte hinzufügen können.
  • Benchmark > Microbenchmark:Enthält Dateien, die zum regelmäßigen Messen der Codeleistung und zum Ausgeben von Benchmarking-Ergebnissen erforderlich sind. Microbenchmark-Module sind besonders hilfreich, um die Leistung kleinerer Codeabschnitte zu messen, die wiederholt verwendet werden. Weitere Informationen finden Sie unter Informationen zu Microbenchmark.

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:

Groovy

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

Kotlin

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

Ihre Tests werden vom restlichen Code getrennt. Sie können das Testmodul so konfigurieren, dass es auf bestimmte Build-Varianten ausgerichtet ist.

Android Studio bietet die folgenden Arten von Testmodulen:

  • Baseline Profile Generator:Mit Baseline-Profilen werden Nutzerinteraktionen wie Navigation und Scrollen beim ersten Ausführen der App flüssiger. Erstellen Sie Baseline-Profile für Ihre kritischen Nutzeraktionen, um die App-Leistung und die Nutzerfreundlichkeit zu verbessern.
  • Benchmark > Macrobenchmark:Enthält Dateien, die zum regelmäßigen Messen der Codeleistung und zum Ausgeben von Benchmark-Ergebnissen erforderlich sind. Makrobenchmark-Module sind besonders hilfreich, um die Leistung größerer Anwendungsfälle Ihrer App zu messen, z. B. das Scrollen durch eine Liste oder andere UI-Manipulationen. Weitere Informationen finden Sie unter Makrobenchmark schreiben.

Projektdateien

Standardmäßig werden Ihre Projektdateien in Android Studio in der Ansicht Android angezeigt. Diese Ansicht spiegelt nicht die tatsächliche Dateihierarchie auf der Festplatte wider. Stattdessen ist sie nach Modulen und Dateitypen organisiert, um die Navigation zwischen den wichtigsten Quelldateien Ihres Projekts zu vereinfachen. Bestimmte Dateien oder Verzeichnisse, die nicht häufig verwendet werden, werden ausgeblendet.

Einige strukturelle Unterschiede zwischen der Android-Ansicht und der Struktur auf der Festplatte:

  • Zeigt alle buildbezogenen Konfigurationsdateien des Projekts in einer Gruppe der obersten Ebene namens Gradle Script an.
  • Zeigt alle Manifestdateien für jedes Modul in einer Gruppe auf Modulebene an, wenn Sie verschiedene Manifestdateien für verschiedene Produktvarianten und Build-Typen haben.
  • Alle alternativen Ressourcendateien werden in einer einzigen Gruppe angezeigt, anstatt in separaten Ordnern für jeden Ressourcenqualifizierer. So sind beispielsweise alle Dichteversionen Ihres Launcher-Symbols nebeneinander sichtbar.

Innerhalb jedes Android-App-Moduls werden Dateien in den folgenden Gruppen angezeigt:

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

Projektansicht

Wenn Sie die tatsächliche Dateistruktur des Projekts sehen möchten, einschließlich aller Dateien, die in der Ansicht Android ausgeblendet sind, wählen Sie im Menü oben im Fenster Project (Projekt) die Option Project aus.

Wenn Sie die Ansicht Projekt auswählen, sehen Sie viel mehr Dateien und Verzeichnisse, darunter die folgenden:

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, die auf einem Android-Gerät ausgeführt werden. Weitere Informationen finden Sie unter In Android Studio testen.
cpp/
Enthält nativen C- oder C++-Code, der Java Native Interface (JNI) verwendet. Weitere Informationen finden Sie in der Android NDK-Dokumentation.
main/
Enthält die Dateien des „main“-Quellsatzes: den Android-Code und die Ressourcen, die von allen Build-Varianten gemeinsam genutzt werden (Dateien für andere Build-Varianten befinden sich in gleichgeordneten Verzeichnissen, z. B. src/debug/ für den Debug-Build-Typ):
AndroidManifest.xml
Beschreibt die Art der Anwendung und ihrer einzelnen Komponenten. Weitere Informationen finden Sie in der Übersicht zum App-Manifest.
java/
Enthält Kotlin- oder Java-Codequellen oder beides, wenn Ihre App sowohl Kotlin- als auch Java-Quellcode hat.
kotlin/
Enthält nur Kotlin-Codequellen.
res/
Enthält Anwendungsressourcen wie Drawable-Dateien und Dateien mit UI-Strings. Weitere Informationen finden Sie in der Übersicht zu App-Ressourcen.
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 in diesem Verzeichnis auf dieselbe Weise wie in einem typischen Dateisystem navigieren. Verwenden Sie dazu URIs und lesen Sie Dateien als Byte-Stream mit AssetManager.
test/
Enthält Code für lokale Tests, die auf Ihrer Host-JVM ausgeführt werden.
build.gradle oder build.gradle.kts (Modul)
Hier werden die modulspezifischen Build-Konfigurationen definiert. build.gradle ist der richtige Dateiname, wenn Sie Groovy als Sprache für Ihr Build-Skript verwenden, und build.gradle.kts, wenn Sie Kotlin-Skript verwenden.
build.gradle oder build.gradle.kts (Projekt)
Damit wird die Build-Konfiguration definiert, die für alle Module gilt. build.gradle ist der richtige Dateiname, wenn Sie Groovy als Build-Script-Sprache verwenden, und build.gradle.kts, wenn Sie Kotlin-Script verwenden. Diese Datei ist ein integraler Bestandteil des Projekts. Sie sollte daher wie der gesamte andere Quellcode in der Versionsverwaltung geführt werden.

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

Einstellungen für die Projektstruktur

Wenn Sie verschiedene Einstellungen für Ihr Android Studio-Projekt ändern möchten, öffnen Sie das Dialogfeld Project Structure (Projektstruktur) über File > Project Structure (Datei > Projektstruktur). Es enthält die folgenden Abschnitte:

  • Project (Projekt): Legt die Version für Gradle und das Android-Gradle-Plug-in sowie den Namen des Repository-Standorts fest.
  • SDK-Speicherort:Legt den Speicherort des JDK, Android SDK und Android NDK fest, die von Ihrem Projekt verwendet werden.
  • Variablen:Hier können Sie Variablen bearbeiten, die in Ihren Build-Skripts verwendet werden.
  • Module:Hier können Sie modulspezifische Build-Konfigurationen bearbeiten, einschließlich des Ziel- und Mindest-SDK, der App-Signatur und der Bibliotheksabhängigkeiten. Die Einstellungsseite jedes Moduls ist in die folgenden Tabs unterteilt:
    • Attribute:Gibt die Versionen des SDK und der Build-Tools an, die zum Kompilieren des Moduls verwendet werden sollen.
    • Signierung:Gibt das Zertifikat an, das zum Signieren Ihrer App verwendet werden soll.
  • Abhängigkeiten:Hier werden die Bibliotheks-, Datei- und Modulabhängigkeiten für dieses Modul aufgeführt. 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:Hier können Sie verschiedene Produktvarianten und Build-Typen für Ihr Projekt konfigurieren.

    • Flavors:Damit können Sie mehrere Build-Varianten erstellen, wobei jede Variante eine Reihe von Konfigurationseinstellungen angibt, z. B. die Mindest- und Ziel-SDK-Version des Moduls sowie den Versionscode und den Versionsnamen.

      Sie können beispielsweise eine Variante mit einem Mindest-SDK von 21 und einem Ziel-SDK von 29 und eine andere Variante mit einem Mindest-SDK von 24 und einem Ziel-SDK von 33 definieren.

    • Build-Typen:Hier können Sie Build-Konfigurationen erstellen und ändern, wie unter Build-Varianten konfigurieren beschrieben. Standardmäßig hat jedes Modul die Build-Typen debug und release. Sie können bei Bedarf weitere definieren.