Best Practices

Gemini in Android Studio ist Ihr Programmierassistent, der Ihren Entwicklungsablauf beschleunigt, indem er Code generiert, komplexe Themen zusammenfasst und bestimmte Ressourcen findet. Effektive Kommunikation ist der Schlüssel, um das volle Potenzial von Gemini auszuschöpfen.

In diesem Leitfaden werden Strategien zum Einrichten Ihrer Entwicklungsumgebung und zum Schreiben von Prompts beschrieben, die nützliche und zuverlässige Antworten liefern. Für mehrere Strategien haben wir Beispiel-Prompts für verschiedene Anwendungsfälle bereitgestellt. Weitere Beispiel-Prompts finden Sie in der Prompt-Galerie.

KI-Agentenmodus verwenden

Der Agent-Modus von Gemini in Android Studio bietet mehr als nur das Chatten mit Gemini. Sie können dem Agent ein übergeordnetes Ziel vorgeben. Der Agent zerlegt das Problem und erstellt einen Plan, um es zu lösen. Der Agent ruft Tools auf, bearbeitet mehrere Dateien und behebt Fehler. Der KI-Agentenmodus hilft Ihnen, komplexe Aufgaben effizienter zu erledigen und den gesamten Entwicklungsprozess zu beschleunigen.

Mach möglichst genaue Angaben

Gemini in Android Studio funktioniert am besten mit klaren, spezifischen Anweisungen. Wenn Sie bestimmte Bibliotheken, APIs oder Ansätze verwenden möchten, geben Sie sie in Ihrer Frage an oder fügen Sie sie der AGENTS.md-Datei im Stammverzeichnis Ihres Projekts hinzu, damit sie über Interaktionen hinweg beibehalten werden. Das ist wie bei einer Fehlerbeschreibung: Je mehr Informationen Sie angeben, desto schneller und effektiver kann das Problem behoben werden.

Neue Funktionen implementieren:

Wie füge ich meiner App mit CameraX Unterstützung für Kameras hinzu? Gib unbedingt alle Abhängigkeiten und Berechtigungen an, die ich für die Verwendung der Bibliothek benötige.
Wie füge ich meiner App Unterstützung für Kameras hinzu?

Code generieren:

Schreibe eine Kotlin-Suspend-Funktion, die die Coil-Bibliothek verwendet, um ein Bild von einem bestimmten URL-String herunterzuladen.

Die Funktion sollte den Namen fetchImageAsBitmap haben. Es sollte eine Context und eine String-URL als Argumente akzeptieren und ein nullable Bitmap zurückgeben. Bei Netzwerk- oder Decodierungsfehlern sollte die Ausnahme abgefangen, protokolliert und null zurückgegeben werden.

Funktion zum Herunterladen eines Bildes schreiben

Konzept erklären:

Ich entwickle eine Musik-Player-App und möchte die Wiedergabe fortsetzen, wenn die App im Hintergrund ausgeführt wird.

Welche Möglichkeiten habe ich, meine App im Hintergrund auszuführen, während der Nutzer andere Dinge auf dem Gerät tut? Welche API-Level-Anforderungen und Auswirkungen auf die Akkulaufzeit gelten für die einzelnen Ansätze?

Android-Dienste erklären

Struktur der Antwort beschreiben

Standardmäßig werden Antworten von Gemini in einem konversationellen, absatzbasierten Format bereitgestellt. Das ist oft nützlich für Erklärungen, aber Sie können effektivere und sofort nutzbare Ergebnisse erzielen, wenn Sie dem Modell mitteilen, wie es die Antwort strukturieren soll. Wenn Sie das Ausgabeformat angeben, wird das Modell angewiesen, die Informationen auf klare, vorhersehbare Weise zu organisieren. So sparen Sie Zeit, da Sie die Informationen nicht selbst neu formatieren müssen.

Wenn Sie von Gemini generierten Code in Ihre App einfügen möchten und der Code ein bestimmtes Format haben muss, damit Sie ihn sofort verwenden können, geben Sie Gemini klare Anweisungen zum Generieren und Formatieren des Codes.

Antwort strukturieren:

Erstelle eine Room-Entität für ein Nutzerprofil. Sie sollte die Felder id, userName, email und memberSince enthalten. Das Feld id sollte automatisch generiert werden. Das Feld memberSince sollte einen Zeitstempel enthalten.

Erstelle eine Room-Entität für ein Nutzerprofil.

Wenn Sie eine offenere Frage stellen, bitten Sie um x Optionen.

Antworten einschränken:

Welche Tools sind für die Optimierung der App-Leistung verfügbar? Gib mir eine Liste der drei besten.
Welche Tools sind für die Optimierung der App-Leistung verfügbar?

Komplexe Anfragen in kleinere Aufgaben aufteilen

Bei komplexen Anfragen mit mehreren Schritten sollten Sie den Agent-Modus ausprobieren. Wenn der Ansatz des Agents jedoch nicht Ihren Erwartungen entspricht, kann es hilfreich sein, Gemini mit einer Reihe kleinerer, sequenzieller Prompts zu steuern, anstatt alles auf einmal zu fragen. So haben Sie mehr Kontrolle und können jeden Schritt überprüfen, bevor Sie mit dem nächsten fortfahren.

Sequenzielle Prompts anwenden:

Aufforderung 1: Das Datenmodell
Erstelle zuerst eine Kotlin-Datenklasse mit dem Namen User. Es sollte drei Attribute haben: id (eine Ganzzahl), name (ein String) und email (ein String).

Aufforderung 2: Die Netzwerkschicht
Erstelle nun eine Retrofit-API-Schnittstelle mit dem Namen ApiService. Dazu ist eine einzelne suspend fun mit dem Namen getUsers() erforderlich, die eine List<User> zurückgibt.

Prompt 3: Die Statusverwaltung
Schreiben Sie als Nächstes eine UsersViewModel, die ApiService als Abhängigkeit verwendet. Die UsersViewModel sollte eine StateFlow einer versiegelten UiState-Klasse verfügbar machen, die Loading, Success(users: List)- und Error(message: String)-Zustände darstellen kann. Erstellen Sie eine Funktion in ViewModel, um die Nutzer abzurufen und den Status zu aktualisieren. Unittests für die neuen Funktionen schreiben

Prompt 4: Die UI-Ebene
Schreiben Sie schließlich eine Jetpack Compose-Funktion namens UserListScreen, die UiState als Parameter akzeptiert. Verwenden Sie eine when-Anweisung, um ein CircularProgressIndicator für den Ladestatus, ein LazyColumn mit Nutzernamen für den Erfolgsstatus und ein Text-Element mit der Fehlermeldung für den Fehlerstatus anzuzeigen. Fügen Sie Tests hinzu, mit denen die neue Funktion überprüft wird.

Erstelle einen Jetpack Compose-Bildschirm, der eine Liste von Nutzern aus einer JSON API abruft und sie in einer Liste anzeigt. Es sollte ein ViewModel mit Retrofit und Coroutinen, ein Repository zur Verarbeitung der Datenlogik und eine User-Datenklasse enthalten. Außerdem müssen Lade- und Fehlerstatus angezeigt werden.

Kontext verwalten

Ein wichtiger Teil der Arbeit mit Gemini in Android Studio ist die Bereitstellung des richtigen Kontexts. Geben Sie relevante Code-Snippets, Dateiinhalte und Informationen zur Projektstruktur an, um die hilfreichsten Antworten zu erhalten. Möglicherweise müssen Sie den Prompt mehrmals anpassen, um das richtige Gleichgewicht zu finden: Zu viele Informationen können Gemini in die Irre führen, während zu wenige Informationen nicht genügend Kontext für eine hilfreiche Antwort liefern. Verwenden Sie die verfügbaren Funktionen, um Gemini Zugriff auf den erforderlichen Kontext zu gewähren:

  • Hängen Sie Bilder an, um eine visuelle Darstellung der Benutzeroberfläche zu geben, die Sie sich vorstellen, oder der App-Architektur, die Sie verstehen möchten.
  • Hängen Sie Dateien an, um relevante Teile der Codebasis hervorzuheben.
  • Mit .aiexclude-Dateien können Sie festlegen, dass Gemini bestimmte Teile der Codebasis ignoriert.
  • Verwenden Sie AGENTS.md-Dateien, um projektspezifische Anweisungen zu geben und sie mit Ihrem Team zu teilen. Verwenden Sie Markdown-Überschriften und -Formatierungen, um Ihre Anweisungen klar zu formulieren.
  • Wenn Sie den Agent-Modus verwenden, konfigurieren Sie MCP-Server, um das Wissen und die Funktionen von Gemini mit der externen Umgebung zu erweitern.

Erläuterungen anfordern

Wenn Sie die Antwort von Gemini in Android Studio nicht verstehen, können Sie um eine Erklärung bitten. So können Sie sich informieren und prüfen, ob die vorgeschlagene Lösung für Ihren Anwendungsfall geeignet ist. Wenn die Antwort nicht Ihren Erwartungen entspricht, kann es sein, dass Gemini falsch liegt. Wenn Sie nach einer Erklärung fragen, kann Gemini sich selbst korrigieren.

Anweisungen optimieren

Ähnlich wie bei der Zusammenarbeit mit einem Kollegen ist bei der Zusammenarbeit mit Gemini in Android Studio manchmal ein Hin und Her erforderlich, um Klarheit über die Aufgabe und das erwartete Ergebnis zu erhalten. Wenn die erste Antwort von Gemini nicht ausreicht, antworten Sie darauf mit Feedback und Vorschlägen zur Verbesserung. Wenn sich die Antwort durch Ihre Vorschläge verbessert, übernehmen Sie den Vorschlag in den ursprünglichen Prompt, indem Sie den Eintrag in der Prompt Library oder Ihre AGENTS.md-Dateien aktualisieren.