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:
Dos
Don'ts
Code generieren:
Dos
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.
Don'ts
Konzept erklären:
Dos
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?
Don'ts
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:
Dos
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.
Don'ts
Wenn Sie eine offenere Frage stellen, bitten Sie um x Optionen.
Antworten einschränken:
Dos
Don'ts
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:
Dos
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.
Don'ts
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.