Best Practices

Gemini in Android Studio ist Ihr Coding-Assistent, der Ihren Entwicklungs-Workflow 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 Verfassen 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.

Agentenmodus verwenden

Der KI-Agentenmodus von Gemini in Android Studio bietet mehr als nur die Möglichkeit, mit Gemini zu chatten. 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.

Implementierung neuer Funktionen:

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. Sie sollte eine Context und eine String-URL als Argumente annehmen und einen nullable Bitmap zurückgeben. Bei Netzwerk- oder Decodierungsfehlern sollte die Ausnahme abgefangen, protokolliert und null zurückgegeben werden.

Funktion zum Herunterladen eines Bildes schreiben

Ein 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 liefert Gemini Antworten in einem konversationellen, absatzbasierten Format. 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 die Antwort strukturiert werden soll. Wenn Sie das Ausgabeformat angeben, wird das Modell angewiesen, die Informationen auf übersichtliche und 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 in einem bestimmten Format benötigt wird, 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 leiten, 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 namens 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. Es ist eine einzelne suspend fun namens getUsers() erforderlich, die eine List<User> zurückgibt.

Prompt 3: Die Statusverwaltung
Schreiben Sie als Nächstes einen UsersViewModel, der 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)-Status darstellen kann. Erstellen Sie eine Funktion in ViewModel, um die Nutzer abzurufen und den Status zu aktualisieren. Unittests für die neue Funktion 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 haben, das Retrofit und Coroutinen verwendet, ein Repository zur Verarbeitung der Datenlogik, eine User-Datenklasse und es 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, die Sie sich vorstellen, oder der App-Architektur, die Sie verstehen möchten, bereitzustellen.
  • Dateien anhängen, um relevante Teile der Codebasis hervorzuheben.
  • Mit .aiexclude-Dateien können Sie festlegen, dass Gemini bestimmte Teile des Codes nicht berücksichtigt.
  • 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 Agentenmodus 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 um eine Erklärung bitten, kann Gemini sich selbst korrigieren.

Anweisungen optimieren

Ähnlich wie bei der Zusammenarbeit mit einem Kollegen ist bei der Arbeit 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, können Sie darauf mit Feedback und Vorschlägen zur Verbesserung reagieren. 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.