Sprawdzone metody

Gemini w Android Studio to Twój asystent kodowania, który przyspiesza proces tworzenia aplikacji, generując kod, podsumowując złożone tematy, znajdując konkretne zasoby i nie tylko. Skuteczna komunikacja jest kluczem do pełnego wykorzystania potencjału Gemini.

Ten przewodnik zawiera strategie konfigurowania środowiska programistycznego i pisania promptów, które generują przydatne i wiarygodne odpowiedzi. W przypadku wielu strategii podaliśmy przykładowe prompty dla różnych zastosowań. Więcej przykładowych promptów znajdziesz w galerii promptów.

Korzystanie z trybu agenta

Tryb agenta Gemini w Android Studio oferuje więcej możliwości niż zwykły czat z Gemini. Możesz podać agentowi ogólny cel, a on podzieli problem na mniejsze części i utworzy plan jego rozwiązania. Agent wywołuje narzędzia, edytuje wiele plików i na bieżąco poprawia błędy. Tryb agenta pomaga wydajniej wykonywać złożone zadania, co przyspiesza cały proces tworzenia.

Unikaj ogólników

Gemini w Android Studio działa najlepiej, gdy instrukcje są jasne i szczegółowe. Jeśli chcesz użyć określonych bibliotek, interfejsów API lub podejść, uwzględnij je w swoim pytaniu lub w pliku AGENTS.md w katalogu głównym projektu, aby zachować je w kolejnych interakcjach. Pomyśl o tym jak o zgłoszeniu błędu: im więcej informacji podasz, tym szybciej i skuteczniej problem zostanie rozwiązany.

Wdrażanie nowych funkcji:

Jak dodać obsługę aparatu do aplikacji za pomocą CameraX? Pamiętaj, aby uwzględnić wszystkie zależności i uprawnienia, których potrzebuję do korzystania z biblioteki.
Jak dodać obsługę kamery do aplikacji?

Generowanie kodu:

Napisz funkcję zawieszającą w języku Kotlin, która korzysta z biblioteki Coil do pobierania obrazu z podanego ciągu znaków URL.

Funkcja powinna mieć nazwę fetchImageAsBitmap. Powinna przyjmować adres URL ContextString jako argumenty oraz zwracać wartość Bitmap dopuszczającą wartość null. Jeśli wystąpi błąd sieci lub dekodowania, funkcja powinna przechwycić wyjątek, zarejestrować go i zwrócić wartość null.

Napisz funkcję pobierania obrazu.

Wyjaśnianie pojęcia:

Tworzę aplikację do odtwarzania muzyki i chcę, aby odtwarzanie było kontynuowane, gdy aplikacja działa w tle.

Jakie mam możliwości utrzymania działania aplikacji, gdy użytkownik wykonuje inne czynności na urządzeniu? Jakie są wymagania dotyczące poziomu interfejsu API i wpływ na żywotność baterii w przypadku każdego z tych podejść?

Wyjaśnij, czym są usługi Androida.

Opisz strukturę odpowiedzi

Domyślnie Gemini udziela odpowiedzi w formie konwersacyjnej, w postaci akapitów. Chociaż jest to często przydatne w przypadku wyjaśnień, możesz uzyskać skuteczniejsze i od razu przydatne wyniki, jeśli powiesz mu, jak ma sformatować odpowiedź. Określenie formatu wyjściowego powoduje, że model porządkuje informacje w jasny i przewidywalny sposób, dzięki czemu nie musisz samodzielnie zmieniać ich formatu.

Jeśli chcesz wstawić do aplikacji kod wygenerowany przez Gemini i potrzebujesz go w określonym formacie, aby móc go od razu użyć, podaj Gemini jasne instrukcje dotyczące generowania i formatowania kodu.

Struktura odpowiedzi:

Utwórz obiekt Room dla profilu użytkownika. Powinien zawierać pola id, userName, email i memberSince. Pole id powinno być generowane automatycznie. Pole memberSince powinno zawierać sygnaturę czasową.

Utwórz obiekt Room dla profilu użytkownika.

Jeśli zadajesz pytanie otwarte, poproś o x opcji.

Ograniczanie odpowiedzi:

Jakie narzędzia są dostępne do optymalizacji skuteczności aplikacji? Podaj mi listę 3 najlepszych.
Jakie narzędzia są dostępne do optymalizacji skuteczności aplikacji?

Podział złożonych próśb na mniejsze zadania

W przypadku złożonych żądań wieloetapowych wypróbuj tryb agenta. Jeśli jednak podejście agenta nie spełnia Twoich oczekiwań, może pomóc poprowadzenie Gemini przez serię mniejszych, kolejnych promptów zamiast proszenia o wszystko naraz. Takie podejście daje większą kontrolę i umożliwia weryfikację każdego kroku przed przejściem do następnego.

Stosowanie promptów sekwencyjnych:

Prompt 1. Model danych
Najpierw utwórz klasę danych Kotlin o nazwie User. Powinien on mieć 3 właściwości: id (liczba całkowita), name (ciąg znaków) i email (ciąg znaków).

Prompt 2: Warstwa sieci
Teraz utwórz interfejs Retrofit API o nazwie ApiService. Wymaga pojedynczej funkcji suspend fun o nazwie getUsers(), która zwraca wartość List<User>.

Prompt 3: The state management
Next, write a UsersViewModel that takes the ApiService as a dependency. UsersViewModel powinien udostępniać StateFlow zapieczętowanej klasy UiState, która może reprezentować stany Loading, Success(users: List)Error(message: String). Utwórz funkcję w ViewModel, aby pobrać użytkowników i zaktualizować stan. napisać testy jednostkowe nowych funkcji,

Prompt 4. Warstwa interfejsu
Na koniec napisz funkcję Jetpack Compose o nazwie UserListScreen, która przyjmuje UiState jako parametr. Użyj instrukcji when, aby wyświetlić CircularProgressIndicator w stanie wczytywania, LazyColumn z nazwami użytkowników w stanie powodzenia i element Text z komunikatem o błędzie w stanie błędu. Dodaj testy, które weryfikują nową funkcję.

Utwórz ekran Jetpack Compose, który pobiera listę użytkowników z interfejsu JSON API i wyświetla ją w postaci listy. Powinien on zawierać ViewModel, który korzysta z Retrofit i korutyn, repozytorium do obsługi logiki danych, klasę danych User oraz musi wyświetlać stany ładowania i błędu.

Zarządzanie kontekstem

Współpraca z Gemini w Android Studio w dużej mierze polega na dostarczaniu odpowiedniego kontekstu. Aby uzyskać jak najbardziej pomocne odpowiedzi, podaj odpowiednie fragmenty kodu, zawartość plików i informacje o strukturze projektu. Może być konieczne wielokrotne powtarzanie tego procesu, aby znaleźć odpowiednią równowagę: zbyt duża ilość informacji może wprowadzić Gemini w błąd, a zbyt mała nie zapewni wystarczającego kontekstu, aby mógł Ci pomóc. Skorzystaj z dostępnych funkcji, aby przyznać Gemini dostęp do niezbędnego kontekstu:

  • Dołącz obrazy, aby przedstawić interfejs użytkownika, który chcesz stworzyć, lub architekturę aplikacji, którą próbujesz zrozumieć.
  • Załącz pliki, aby wyróżnić odpowiednie części bazy kodu.
  • Używaj .aiexclude plików, aby Gemini ignorował określone części bazy kodu.
  • Używaj plików AGENTS.md, aby przekazywać instrukcje dotyczące konkretnych projektów i udostępniać je zespołowi. W przypadku plików AGENTS.md używaj nagłówków i formatowania Markdown, aby instrukcje były jasne.
  • W trybie agenta skonfiguruj serwery MCP, aby rozszerzyć wiedzę i możliwości Gemini o środowisko zewnętrzne.

Prośba o wyjaśnienia

Jeśli nie rozumiesz odpowiedzi Gemini w Android Studio, poproś o wyjaśnienie. To świetny sposób na zdobycie wiedzy i sprawdzenie, czy proponowane rozwiązanie jest odpowiednie w Twoim przypadku. Jeśli odpowiedź nie spełnia Twoich oczekiwań, może to oznaczać, że Gemini się myli. Poproś o wyjaśnienie, aby dać Gemini możliwość poprawienia się.

Ulepszaj instrukcje

Podobnie jak w przypadku współpracy ze współpracownikiem, praca z Gemini w Android Studio czasami wymaga wymiany informacji, aby uzyskać jasność co do zadania i oczekiwanego wyniku. Jeśli pierwsza odpowiedź Gemini jest niewystarczająca, odpowiedz na nią, podając opinię i sugestie dotyczące ulepszeń. Jeśli jego odpowiedź ulegnie poprawie dzięki Twoim sugestiom, uwzględnij je w oryginalnym prompcie, aktualizując wpis w Bibliotece promptów lub pliki AGENTS.md.