Рекомендации

Gemini в Android Studio выступает в роли вашего помощника в написании кода, ускоряя процесс разработки за счёт генерации кода, обобщения сложных тем, поиска необходимых ресурсов и многого другого. Эффективное общение — ключ к раскрытию полного потенциала Gemini.

В этом руководстве описаны стратегии настройки среды разработки и написания подсказок, которые дают полезные и надёжные ответы. Для различных стратегий мы привели примеры подсказок для различных вариантов использования. Дополнительные примеры подсказок см. в галерее подсказок .

Использовать режим агента

Режим агента Gemini в Android Studio выходит за рамки простого общения с Gemini. Вы можете поставить агенту общую цель, и он разберёт проблему по частям и создаст план её решения. Агент использует инструменты , редактирует несколько файлов и исправляет ошибки по ходу дела. Режим агента помогает эффективнее справляться со сложными задачами, ускоряя весь процесс разработки.

Будьте конкретны

Gemini в Android Studio работает лучше всего с чёткими и конкретными инструкциями. Если вы хотите использовать определённые библиотеки, API или подходы, укажите их в своём вопросе или в корневом файле AGENTS.md вашего проекта, чтобы они сохранялись при каждом взаимодействии. Это можно сравнить с отправкой отчёта об ошибке: чем больше информации вы предоставите, тем быстрее и эффективнее можно будет решить проблему.

Реализация нового функционала:

Как добавить поддержку камеры в моё приложение с помощью CameraX? Убедитесь, что включены все зависимости и разрешения, необходимые для использования библиотеки.
Как добавить поддержку камеры в мое приложение?

Генерация кода:

Напишите функцию приостановки Kotlin, которая использует библиотеку Coil для загрузки изображения из заданной строки URL.

Функция должна называться fetchImageAsBitmap . Она должна принимать в качестве аргументов Context и String URL-адрес и возвращать Bitmap , допускающий значение NULL. В случае сетевой ошибки или ошибки декодирования функция должна перехватывать исключение, регистрировать его и возвращать null .

Напишите функцию для загрузки изображения.

Объяснение концепции:

Я создаю приложение музыкального проигрывателя и мне нужно, чтобы воспроизведение продолжалось, когда приложение находится в фоновом режиме.

Какие есть варианты поддержки работы приложения, пока пользователь выполняет другие действия на устройстве? Каковы требования к уровню API и влияние каждого из подходов на время работы батареи?

Объясните, что такое службы Android.

Опишите структуру ответа.

По умолчанию Gemini выдаёт ответы в формате диалогового представления, состоящем из абзацев. Хотя это часто полезно для пояснений, вы можете получить более эффективные и готовые к использованию результаты, указав, как структурировать ответ. Указание формата вывода заставляет модель структурировать информацию понятным и предсказуемым образом, экономя время на её самостоятельное форматирование.

Если вы хотите вставить код, сгенерированный Gemini, в свое приложение и вам нужен код в определенном формате, чтобы вы могли использовать его мгновенно, дайте Gemini четкие инструкции по генерации и форматированию кода.

Структурирование ответа:

Создайте объект Room для профиля пользователя. Он должен содержать поля id , userName , email и memberSince . Поле id должно быть сгенерировано автоматически. Поле memberSince должно содержать временную метку.

Создайте объект Room для профиля пользователя.

Если вы задаете более открытый вопрос, задайте x вариантов ответа.

Ограничение ответа:

Какие инструменты доступны для оптимизации производительности приложений? Перечислите три лучших.
Какие инструменты доступны для оптимизации производительности приложений?

Разбивайте сложные запросы на более мелкие задачи

Для сложных многоэтапных запросов обязательно попробуйте режим агента . Однако, если подход агента не соответствует вашим ожиданиям, может быть полезно провести Gemini через серию небольших последовательных запросов, вместо того чтобы спрашивать обо всём сразу. Такой подход даёт вам больше контроля и позволяет проверять каждый шаг, прежде чем переходить к следующему.

Применение последовательных подсказок:

Подсказка 1: Модель данных
Сначала создайте класс данных Kotlin с именем User . Он должен иметь три свойства: id (целое число), name (строка) и email (строка).

Подсказка 2: Сетевой уровень
Теперь создадим интерфейс Retrofit API под названием ApiService . Ему потребуется одна suspend fun под названием getUsers() , которая возвращает List<User> .

Подсказка 3: Государственное управление
Затем напишите UsersViewModel , принимающую ApiService в качестве зависимости. UsersViewModel должна предоставлять StateFlow запечатанного класса UiState , который может представлять Loading, Success(users: List ) и состояния Error(message: String) . Создайте функцию в ViewModel для получения пользователей и обновления состояния. Напишите модульные тесты для новых функций.

Подсказка 4: Уровень пользовательского интерфейса
Наконец, напишите функцию Jetpack Compose с именем UserListScreen , которая принимает UiState в качестве параметра. Используйте оператор when для отображения CircularProgressIndicator для состояния загрузки, LazyColumn с именами пользователей для состояния успешного выполнения и элемента Text с сообщением об ошибке для состояния ошибки. Добавьте тесты для проверки новой функциональности.

Создайте экран Jetpack Compose, который извлекает список пользователей из JSON API и отображает их в виде списка. Он должен включать ViewModel , использующую Retrofit и сопрограммы, репозиторий для обработки логики данных, класс данных User , а также отображать состояния загрузки и ошибок.

Управление контекстом

Важнейшая часть работы с Gemini в Android Studio — предоставление правильного контекста. Предоставьте релевантные фрагменты кода, содержимое файлов и информацию о структуре проекта, чтобы получить максимально полезные ответы. Возможно, вам придётся итерировать, чтобы найти правильный баланс: слишком много информации может сбить Gemini с толку, а слишком мало — не обеспечить достаточного контекста для эффективной работы. Используйте доступные функции, чтобы предоставить Gemini доступ к необходимому контексту:

  • Прикрепляйте изображения , чтобы наглядно представить себе пользовательский интерфейс, который вы планируете, или архитектуру приложения, которую вы пытаетесь понять.
  • Прикрепите файлы , чтобы выделить важные части кодовой базы.
  • Используйте файлы .aiexclude , чтобы заставить Gemini игнорировать определенные части кодовой базы.
  • Используйте файлы AGENTS.md для предоставления инструкций, относящихся к конкретному проекту, и делитесь ими со своей командой. При использовании файлов AGENTS.md используйте заголовки и форматирование Markdown для ясности инструкций.
  • При использовании режима агента настройте серверы MCP для расширения знаний и возможностей Gemini во внешней среде.

Попросите объяснений

Если вы не понимаете ответ Gemini в Android Studio, попросите объяснений. Это отличный способ изучить и убедиться, что предложенное решение подходит для вашего случая. Если ответ не соответствует вашим ожиданиям, возможно, Gemini действительно не прав, и просьба о объяснениях даст Gemini возможность исправиться.

Повторяйте ваши инструкции

Как и при работе с коллегой, работа с Gemini в Android Studio иногда требует обмена информацией для прояснения задачи и ожидаемого результата. Если первоначального ответа Gemini недостаточно, отправьте отзыв и предложения по улучшению. Если ответ улучшится благодаря вашим предложениям, включите это предложение в исходный запрос, обновив запись в библиотеке запросов или обновив файлы AGENTS.md .