11 робочых пракцэсаў Gemini для Android Studio: тэсты, прадзіў, режым Агента і збоі.
Практычныя звычкі викорыстання Gemini ў Android Studio: AGENTS.md, карточкі завдань, стварэння прадзіў тэстаў і Compose, режым Агента, апдэйты залежнасцяў, прыватнасць і чэрніця перагляду.
Разработчикам Android рідко потрібен ще один список кмітливих запитів до штучного інтелекту. Корисно мати менше змін контексту, швидші цикли зворотного зв’язку та менше часу, витраченого на механічні обов’язки. Саме тут і знаходить своє застосування Gemini в Android Studio.
Не сприймайте його як колегу, який може виконати завдання за вас. Думайте про нього як про швидкого партнера-програміста всередині IDE. Він добре справляється з аналізом незнайомого коду, створенням повторюваних завдань, читанням помилок та об’єднанням кількох невеликих кроків у один оглядовий дифф.
Саме точність відрізняє ці два підходи. Запит на кшталт „створи цю функцію“ є занадто нечітким для виконання, тоді як прохання до Gemini слідувати певному алгоритму, пропонувати найменші варіанти виправлень, запускати відповідні тести та показувати результат у вигляді диффу є реальною інженерною роботою.
З сэптэбря 2026 года Gemini ў Android Studio працуе з файламі ў рэжыме Agent, запускае паралельныя кантакты, стварае тэсты на единіцы коду і прадзіум-версіі Compose, дапамагае з адліквідацыяй бягов і памылак у Logcat, аналізуе збоі, выявленыя пры прабах App Quality Insights, апдэйтуе залежнасці, і нават можа размесціць програму на падключаным прыстрое і взаімаць з яй. Це задокументаваныя можлівасці продукту, а не спекулятивныя дэманстрацыі, і ў апісацыі функцый Gemini яны пераказаны. Практычны вопыт — гэта як іх выкарыстоўваць так, каб не стварыць большай кантэнту для перагляду, чым яна заўсёды эканоміць.
Рабочыя процесы, пераказаны нижэй, ўсё чаща прадаюцься ў касовым выкарыстоўванні ў павсякдзенной работе з Android.
1. Адназначна даўце Gemini карта проекту
Найэфектывейшы запит часта не ёсць запітом. Це короткі файл AGENTS.md, які зберагаецца разам з кодам.
Gemini скачоўвае файлы AGENTS.md з рабочага каталогу і з кожнага яго верхнія каталога. Чырва гэта дазволяе размістіць загальныя правілы ў корні репазітарыю і дадаць болей спецыфічныя інструкцыі ў окремых модулях. Паколькі файл зберагаецца праза кодам, усі члэны команды отрымаюць адныя тыя ж інструкцыі через кантроль версій. У даследжэнні файлаў агентаў є дэталі.
# Android project guidance
- Kotlin only.
- Follow the existing Clean Architecture boundaries.
- Keep business logic out of Composables and Activities.
- Expose immutable UI state from ViewModels.
- Collect Flow with lifecycle awareness.
- Prefer the libraries already used in the target module.
- Make the smallest safe diff; do not reformat unrelated files.
- Add or update tests for changed behavior.
- Before finishing, run the narrowest relevant Gradle test task.
У мнагамодульным дапрыягу дадзіце локальныя файлы там, дзе разлічная правілы:
AGENTS.md
player/AGENTS.md
androidtv/AGENTS.md
billing/AGENTS.md
Тут важна стислість. Варто включити: рішення щодо архітектури, місце початку кожного модуля, бібліотеки тестування, які ви віддаєте перевагу, та області, до яких ніхто не повинен торкатися. Маніфест з 200 рядків просто стає застарілим контекстом.
Перевірте деталі версії. Документи Google AGENTS.md підтримуються в Android Studio Narwhal 4 Feature Drop Canary 4 та новіших версіях, тоді як Narwhal 3 Feature Drop вимагав окремого файлу AGENT.md. Перевірте версію свого IDE, перш ніж припускати, що файл має якийсь ефект.
2. Використовуйте чотирирядковий опис завдання
Довші інструкції не завжди кращі. Надійний короткий формат складається з чотирьох частин:
Goal: Add retry support to PlaybackRepository.
Context: Inspect PlaybackRepository, its interface, and existing tests.
Constraints: Preserve public APIs; use the existing coroutine/test stack; minimal diff.
Verification: Add failure-then-success tests and run the relevant module test task.
Ён працюе, таму што усуне чатыры распашчытныя супакоўкі: што трэба зменіць, дзе шукать, шта павінна застацца стабільным і што значыць «завершанне».
Для рызыкаваных задач дадзіце ўтолькі што адну яшчэ лінію:
Before editing, explain the likely root cause and propose a plan.
Для звичайних завдань пропустіть церемонію та вимагайте безпосередньо різницю. Розмір запиту має відповідати рівню ризику.
3. Зберігайте контекст обмеженим та окремими потоками
Надмірна кількість контексту може погіршити відповідь, якщо більша частина його не пов’язана з запитанням. Коли достатньо інформації для аналізу змін, додайте ViewModel, модель стану, контракт репозиторію та суміжні тести, залишивши решту частини додатку.
Використовуйте окремі потоки для різних завдань, наприклад:
- проблема з відтворенням
- міграція залежностей
- створення тестів
- робота з інтерфейсом користувача
Gemini запам’ячваў історыю размов. Google зазначае, што аддзельныя тэкставыя потокі можа падняць якасць адпаведзей, обмежыўшы контэкст тэкучай тэмай, а таксама што вычышэнне застарэлай історыі дапамагае, калі размова збілася з курсу. Пагляньце раздел «Размова з Gemini». Простая правіла: якщо ваш наступны запит трэбуе фразы «ігнораваць усё, што напісана вышэй», ачыніце новы тэкставы поток.
4. Дазвольце функцыі Next Edit Prediction выконваць нудныя додатковыя правкі
Функцыя автодаполнення працюе ў месцы курсора. Next Edit Prediction ідзе на крок даўжэй і спробуе здагадацца пра адпаведную зміну ў іншым месцы файла або проекта. Яна особліва корыстна пасля такіх змян:
- наведэння новай власнасці для стану UI
- перейменаванне кейса замкнутага класа
- зміна сігнатуры функцыі
- однай з галузей павтаральнага мапавання, якую вы ўжо апдэйтавалі
- той самы захоўны чэк, які патрэбен у суседнім месцы
Калі рэдагар паказае Tab to move, першы нажатыя Tab пераводзіце вас да запрошанай змены, а другія ўжо яе прыменяюць. Якщо прыпуск некоректны, нажміце Esc. Можна націснуць паузу на прыгадкі, а час адліку перед адправкай запиту можна налаштаваць у настройках рэдагара AI, пра што пісае стороніца Next Edit Prediction.
Автаматычна акцептаванне прыпускаў — гэта паслаблена прычына. Адна швайная, некоректная змена, копіюваная між файламі, таксама ўлучаецца ў регрэсію.
5. Задавайце запыты з паверхні адзінакоў
Калі синхронізацыя Gradle не выйшла або програма зламалася, IDE вялікі час вучыцца структураваны контэкст. У такім случае воспытайце дзеянне Ask Gemini прямо там, узамест таго каб клікаць у чат.
Усередзіне Logcat, Gemini можа прыjąць спакаваныя выклікі і адпаведзець статыстыкай на простай мове, вераглівымі прычынамі і практычнымі рашэннямі. Інструкцыі па інтеграцыі з Logcat адпаведна раскладзяюць гэта. Добра працуе таксама наступны запыт, у яком ставяцца пытанні да адпаведзення:
Trace this to the first frame owned by our app. Explain the state that makes it fail.
Propose the smallest fix, identify any behavior change, and add a regression test.
Do not hide the problem with a broad try/catch or a non-null assertion.
Гэтыя заключныя інструкцыі запобегаюць двум распашчатым наследкам — «будаванню зелёным способом, але з поганым виправленням».
У разе неудач будавання практыка Gemini — адначасова ідентыфікацыя фундаментальнай прычыны бяга і ланцуга наследкав, якія вона спрычыніла. Виправлення першай значущай прычыны зазвічай ведаецца швыльней, чым рашучы 40 наступных проблем.
6. Ствараць тэсты на адпрацоўку, а не на реалізацыю
Працяванне з класамі юніт-тэстаў на Kotlin чыта Java, укладанне коду налаштавання, моків і окремых кейсаў — усе гэта є пад контролем Gemini, якая прылагоджвае іх да вялікання проекта. Google яшчэ называе весь гэты процес прадзіркам і задокументавала яго для Android Studio Panda 4 Canary 3 чыта новейшых версый. На сторонцы стварэння юніт-тэстаў є деталі.
Слабы запит выглядае так:
Write tests for PlaybackViewModel.
Прыёмны ў такім выглядзе:
Generate unit tests for PlaybackViewModel.
Cover observable behavior:
- initial state;
- successful playback start;
- repository failure;
- duplicate play requests;
- cancellation when the ViewModel is cleared.
Use the test libraries and coroutine dispatcher pattern already present in this module.
Do not test private methods or reproduce the implementation in the assertions.
Use deterministic virtual time and verify emitted UI states in order.
Run the narrowest relevant test task after editing.
Перагляньце все, што ў напісаным. З’ясавайце, чы можа кожны тэст зазнаць невыпадку з правильной прычыны. Частыя проблемы — це слабкія макеты, тэзы, якія павтараюць настройкі, рэальныя затрымкі, відсутная падтрымка анулювання та тэсты, прычаепленыя да прыватных деталяў рэалізацыі.
Штучны інтэлект чырпаець у сабе здольнасці да усунення непрыемнасцэў, але ён не керуе вашай стратэгіяю тэставання.
7. Ствараць прадзірнікі Compose перад запускам эмулятора
Прадзірнікі — это дыявольска дешавы спосаб з’ясаваць адзінакі ў Compose, але стварэнне правдападобных дадзэнняў для прадзірнікаў — це нудная робота. Gemini стварыць прадзірнік для аднаго Composable або для кожнага падходячага ў файле, уключыўшы макетаваныя дадзеныя для параметраў прадзірніка. Вы бачыце выход як разлік, які можаце прыняць або адхіліць. Дакладней у раздзеле «Ствараць прадзірнікі Compose».
Толькі «шчаслівы» шлях мало чым дапамагае, таму запрашайце компактную матрыцу станоў:
Generate previews for compact phone, tablet, and Android TV widths.
Include loading, populated, empty, long-title, and error states.
Use the existing theme and PreviewParameterProvider pattern.
Do not call a ViewModel, network layer, or dependency injection from previews.
Прыглыды служаць недорогімі тэстамі дизайна. Падазры ў лейауте часта выклікаюць проблемы з вельмі дзяўгімі заглавямі, порожнім контэнтам, карыстоўваннем фокусу і вялікімі экранамі.
Для Android TV неабходна ясна прасіць версіі з фокусам і без яго. Лейаут, які чынна працуе праз касаванне, можа зламацца, калі хтось будзе кераваць ім за дапамогою D-pad на пультах.
8. Выкорыстоўваць режым Агента для адмежаванага верткага фрагмента
У режыме Агента Gemini можа стварыць план для багатыяруснай задачы, рэдагаваць кантэнт у калькі файлаў, запускать інструменты, ствараць проект і прабаваць знову, калі ў чымс не выйдзе. Таксама можліва паралельная робота з калькамі кантактаў, як описана ў дакументацыі режыма Агента.
Ідеальны варыянт — адмежаваны верткаг фрагмент, а не „модернізацыя прыкладнення“. Напрыклад:
Add a Saved Episodes filter to the Downloads screen.
First inspect the existing state, reducer/ViewModel, domain model, repository, and tests.
Reuse the current filter component and architecture.
Do not change persistence or navigation contracts.
Implement the smallest complete slice, add tests, build the module, and summarize every file changed.
Pause before any public API or database schema change.
Такая задача достаточна большая, кабы прынесла парадакты з працэю з рознымі файламі, але ў той жа час достаточна мала, каб яе можна было пераглянуць.
Паралельныя пераказы трэба выконваць толькі для незалежных задач, напрыклад, калі ў аднай ветках ствараюцца тэсты, а іншая ветка расследуе несувязаныя паведамленні пра будову. Два агента, які працуюць з перакрытымі файламі, можу стварыць суперсучасныя заступлення.
9. Змусіце агента падтвердзіць змяну UI на прыстрое
Разлік коду не падтверджае, што функцыя UI працюе.
Агент у Android Studio можа выкласты версію прыстроя на падключаны прыстрой, паглядзець на экран, зробіць скріншоты, прачытаць лог-даныя і кераваць прыстроем за дапамою інструментаў уводу. Пасля выправлення UI такі запит на парадакт заканчывае цыкл:
Build and run the app on the connected device.
Open the Downloads screen, apply the Saved filter, and verify the empty and populated states.
Capture a screenshot of the final state and check Logcat for new errors.
If verification fails, stop and report what you observed before making another broad change.
Залучайце адміністратара даўжэй у процэс затверджэння ўсіх дзеянь, якія стосуюцца входу, пакупак, разрушаючых дзеянь чыраў дадзэнняў рэальных корыстнікаў. Даступ да прыстрою робіць агента болей спроможным, але гэта не абавязкова значыць, што ён можа быць надзеяным.
10. Выводы з аналізу збоёў у працэсе вырабоцтва — гэта вачоўка для дальнейшых дзеянь
У рэшэнцы App Quality Insights вы можете прабачыць Gemini падсумаваць збой, паказаць файл, з якога ён пачаўся, описаць верагодную прычыну і прапрацаваць праект змены коду. У падрабнічным кераванні Google па аналізу збоёў паспакою паследаванне гэтых крокаў.
Хорашыя пытанні для дальнейшага аналізу включаюць:
What evidence in this stack trace supports that root cause?
Which assumptions are you making?
Could this be lifecycle-, concurrency-, process-death-, or device-specific?
What telemetry or test would distinguish the alternatives?
Выпавчыя прыгзі часта розкрываюць проблэмы з часовымям та станом, якія немаглыце адзягліць за дапамаю однаго тэксту зявлення. Адзеўкіяяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяеяе
Update only Kotlin coroutines and the related test artifact.
Do not update AGP, Kotlin, Compose, Gradle, or unrelated libraries.
Read the relevant migration notes first.
Build affected modules, run their unit tests, and report behavior or API changes.
Stop if the update requires a public API, minSdk, targetSdk, or build-system change.
Ўстраіцеся ад адна большая рэвізія з пунктам «адчыніць усё», якая аб’еднвае AGP, Kotlin, Compose, серыялізацыю, DI і дваццаць бібліятэкаў. Разлік можа з’явіцца за калькі хвілін, але хтось усё рава должен яго зрозумець.
Захавайце контэкст пры оптымізацыі запросаў
Калі увімкнута адменстрацыя контэкста проекта, файл .aiexclude вяршыць, што Gemini можа чытаць. Яго сынтаксі падабіцца да .gitignore, і кожная правіла прыменяецца да папкі, якая знаходзіцца ў файле, і да всьго, што знаходзіцца ў яе. Функцыі ШІ не можу бачыць нічога за межамі адкрытага проекта і яго прыўязаных кораноў VCS, але чулівыя файлы ў гэтых межах таксама трэба выключыць па імені. На сторонцы налаштавання .aiexclude є крокі для цього.
*.jks
*.keystore
local.properties
secrets/
**/production-config.json
**/customer-data/
Эті два файлы не можна взаўмна заменіць, таму не трэба ставіцца да іх так. З’ясавайце, што дозволяе ваша організацыя, перш чым власны код або даны для виробніцтва потрапляюць куды-небудзь. На індывідуальным рэвеніі у працяве Google про конфідэнцыяльнасць сказана, што запиты, рэзултаты, деталі викорыстоўвання і адгукі можна збіраць і чытаць учасніками перагляду, а таксама рекамендуецца не вводзіць конфідэнцыйных або персональных даных. Умовы догавораў з бізнесам магуць разлічвацца, таму прачытайце умовы, якія стосуюцца вашага акаунту.
Правіло 60 секунд для перагляду змян у AI
Перш чым прыйняць рэзультат Gemini, задайце шасць запытаў:
- Чы рэзультат обмежан там, што вы прасілі?
- Чы межы модуляў і архітектуры застаюцься недзейнарамі?
- Чы не створены новы API, залежнасць або правіла?
- Чы бягаванне справаў даслівна обробляецца, чы проста ігноруецца?
- Чы новыя тэсты зазнаюць невузяткаў, якщо бягаванне змінюецца?
Якщо адказы не прыходзяць быстра, змены занадта великія, таму іх трэба раздзеліць.
Процес работы, які складаецца з этапаў
Найкраща працюе простая петля:
Паспяшыць → спланаваць → вырэшыць → працаваць над тэстамі → запуск → аналіз → падсумаваць.
Gemini найбольш дапамагае, калі скорачвае гэтую петлю ў Android Studio. Ён мінімальна дапамагае, калі дае вялікі блок коду на Kotlin, які ніхто не зафіксав у рэпазітарыі і не запускаў.
Швэйцарское пісьмо — не галоўны фактар продуктывнасці. Доверлівасць прыходзіць раней: стэк-трэйс, які нарэшце стае зрозумелым, тэст, які компілюецца, прадзірнік Compose з рэалістычнымі дадзеннямі, скріншот з прыстроя і разлік, які лёгка ў чытанні.
Нехай Gemini абсарбуе механічны прыем между намерэннем і доказам таго, што ён працуе. Архітектура, компромісы і адказнасць застаюцца задачай інжынера.