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

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

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

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

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

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

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

Внедрение нового функционала:

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

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

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

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

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

Объяснение понятия:

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

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

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

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

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

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

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

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

Создайте сущность «Комната» для профиля пользователя.

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

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

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

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

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

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

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

Задание 2: Сетевой уровень
Теперь создайте интерфейс API Retrofit под названием 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 .