Миграция ваших проектов в Android Studio требует адаптации к новой структуре проекта, системе сборки и функциональности IDE.
Если вы переходите с IntelliJ и ваш проект уже использует Gradle, вы можете открыть существующий проект из Android Studio. Если вы используете IntelliJ, но ваш проект еще не использует Gradle, вам необходимо вручную подготовить проект, прежде чем вы сможете импортировать его в Android Studio. Дополнительную информацию см. в разделе «Миграция с IntelliJ» .
Основы Android Studio
Вот некоторые ключевые различия, о которых следует знать при подготовке к переходу на Android Studio.
Организация проектов и модулей
Android Studio основана на IntelliJ IDEA IDE. Чтобы ознакомиться с основами IDE, такими как навигация, завершение кода и сочетания клавиш, см. раздел Знакомство с Android Studio .
Android Studio организует код в проекты, которые содержат все, что определяет ваше приложение Android, от исходного кода приложения до конфигураций сборки и тестового кода. Проекты открываются в отдельных окнах Android Studio. Каждый проект содержит один или несколько модулей, которые позволяют разделить проект на отдельные функциональные единицы. Модули можно создавать, тестировать и отлаживать независимо.
Дополнительную информацию о проектах и модулях Android Studio см. в обзоре проектов .
Система сборки на основе Gradle
Система сборки Android Studio основана на Gradle и использует файлы конфигурации сборки, написанные на языке Groovy или Kotlin, для простоты расширения и настройки.
Проекты на основе Gradle предлагают важные возможности для разработки под Android, в том числе следующие:
- Поддержка бинарных библиотек (AAR). Вам больше не нужно копировать исходники библиотеки в свои собственные проекты; вы можете объявить зависимость , и библиотека будет автоматически загружена и объединена с вашим проектом. Сюда входит автоматическое объединение ресурсов, записей манифеста, правил исключения Proguard, пользовательских правил проверки и т. д. во время сборки.
- Поддержка вариантов сборки , которые позволяют создавать разные версии вашего приложения (например, бесплатную версию и профессиональную версию) из одного проекта.
- Простая конфигурация и настройка сборки . Например, вы можете получить имена и коды версий из тегов Git в рамках сборки.
- Gradle можно использовать из IDE, из командной строки и с серверов непрерывной интеграции, таких как Jenkins, обеспечивая одну и ту же сборку везде и всегда.
Дополнительные сведения об использовании и настройке Gradle см. в разделе Настройка сборки .
Зависимости
Зависимости библиотек в Android Studio используют объявления зависимостей Gradle и зависимости Maven для известных локальных исходных и двоичных библиотек с координатами Maven. Дополнительные сведения см. в разделе Объявление зависимостей .
Миграция с IntelliJ
Если ваш проект IntelliJ использует систему сборки Gradle, вы можете импортировать свой проект непосредственно в Android Studio. Если ваш проект IntelliJ использует Maven или другую систему сборки, вам необходимо настроить его для работы с Gradle, прежде чем вы сможете перейти на Android Studio.
Импортируйте проект IntelliJ на основе Gradle.
Если вы уже используете Gradle со своим проектом IntelliJ, откройте его в Android Studio, выполнив следующие действия:
- Нажмите «Файл» > «Создать» > «Импортировать проект» .
- Выберите каталог проекта IntelliJ и нажмите «ОК» . Ваш проект откроется в Android Studio.
Импортируйте проект IntelliJ, отличный от Gradle.
Если ваш проект IntelliJ еще не использует систему сборки Gradle, у вас есть два варианта импорта проекта в Android Studio, которые описаны в следующих разделах:
- Создайте новый пустой проект Android Studio и скопируйте существующий исходный код в каталоги, связанные с новым проектом. Дополнительную информацию см. в разделе о миграции путем создания нового пустого проекта .
- Создайте новый файл сборки Gradle для своего проекта, а затем импортируйте проект и новый файл сборки в Android Studio. Дополнительные сведения см. в разделе о миграции путем создания пользовательского файла сборки Gradle .
Выполните миграцию, создав новый пустой проект.
Чтобы перенести проект в Android Studio путем создания нового пустого проекта и копирования исходных файлов в новые каталоги, выполните следующие действия:
- Откройте Android Studio и нажмите «Файл» > «Создать» > «Новый проект» .
- Введите имя проекта приложения и укажите место, где его следует создать, затем нажмите «Далее» .
- Выберите форм-факторы, на которых работает ваше приложение, затем нажмите «Далее» .
- Нажмите «Добавить активность» , затем нажмите «Готово» .
- В окне инструмента «Проект» щелкните стрелку, чтобы открыть меню просмотра, и выберите представление «Проект», чтобы увидеть и изучить организацию вашего нового проекта Android Studio. Дополнительные сведения об изменении представлений и о том, как структурирует проекты Android Studio, см. в разделе Файлы проектов .
- Перейдите в место, выбранное вами для нового проекта, и переместите код, модульные тесты, инструментальные тесты и ресурсы из каталогов старого проекта в правильные места в новой структуре проекта.
- В Android Studio нажмите «Файл» > «Структура проекта» , чтобы открыть диалоговое окно «Структура проекта» . Убедитесь, что модуль вашего приложения выбран на левой панели.
- Внесите все необходимые изменения на вкладке «Свойства» вашего проекта (например, изменив
minSdk
илиtargetSdk
). - Нажмите «Зависимости» и добавьте любые библиотеки, от которых зависит ваш проект, в качестве зависимостей Gradle. Чтобы добавить новую зависимость, нажмите «Добавить». , затем выберите тип зависимости, которую вы хотите добавить, и следуйте инструкциям.
- Нажмите ОК , чтобы сохранить изменения.
- Нажмите «Сборка» > «Создать проект» , чтобы протестировать сборку проекта и при необходимости устранить оставшиеся ошибки.
Выполните миграцию, создав собственный файл сборки Gradle.
Чтобы перенести проект в Android Studio путем создания нового файла сборки Gradle, указывающего на существующие исходные файлы, выполните следующие действия:
- Прежде чем начать, создайте резервную копию файлов проекта в отдельном месте, поскольку процесс миграции изменяет содержимое вашего проекта на месте.
- Создайте в каталоге проекта файл с именем
build.gradle
, если вы используете Groovy, илиbuild.gradle.kts
, если вы используете скрипт Kotlin. Этот файл содержит всю информацию, необходимую Gradle для запуска вашей сборки.По умолчанию Android Studio ожидает, что ваш проект будет организован, как показано на рисунке 1.
В
settings.gradle
для Groovy илиsettings.gradle.kts
для сценария Kotlin вы устанавливаете репозитории, которые используются для поиска плагинов и зависимостей в блокахpluginManagement
иdependencyResolutionManagement
соответственно:классный
pluginManagement { repositories { google() mavenCentral() gradlePluginPortal() } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } } rootProject.name = "Test App" include ':app'
Котлин
pluginManagement { repositories { google() mavenCentral() gradlePluginPortal() } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } } rootProject.name = "Test App" include(":app")
Предупреждение: 31 марта 2021 г. репозиторий JCenter стал доступен только для чтения. Дополнительную информацию см. в разделе Обновление службы JCenter .
Плагин Android Gradle применяет к проекту некоторые исходные наборы по умолчанию. Эти исходные наборы определяют каталоги, используемые для хранения различных типов исходных файлов . Gradle использует эти исходные наборы для определения местоположения файлов определенных типов. Если ваш существующий проект не соответствует настройкам по умолчанию, вы можете либо переместить файлы туда, где они должны быть, либо изменить исходные наборы по умолчанию , чтобы Gradle знал, где их найти.
Дополнительные сведения о настройке и настройке файла сборки Gradle см. в статье Настройка сборки.
Затем определите, какие библиотечные проекты вы используете.
Благодаря Gradle вам больше не нужно добавлять эти библиотеки в качестве проектов исходного кода. Вместо этого вы можете обратиться к ним в блоке
dependencies{}
вашего файла сборки. Затем система сборки обрабатывает эти библиотеки за вас, включая загрузку библиотек, объединение ресурсов и объединение записей манифеста. В следующем примере в блокdependencies{}
файла сборки добавляются операторы объявления для ряда библиотек AndroidX.Чтобы получить помощь в определении правильных операторов объявления для ваших библиотек, выполните поиск в репозитории Google Maven или Maven Central .классный
... dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) // AndroidX libraries implementation 'androidx.core:core-ktx:1.15.0' implementation 'androidx.appcompat:appcompat:1.7.0' implementation 'androidx.cardview:cardview:1.0.0' implementation 'com.google.android.material:material:1.7.0' implementation 'androidx.gridlayout:gridlayout:1.0.0' implementation 'androidx.leanback:leanback:1.1.0-rc02' implementation 'androidx.mediarouter:mediarouter:1.7.0' implementation 'androidx.palette:palette-ktx:1.0.0' implementation 'androidx.recyclerview:recyclerview:1.3.2' implementation 'androidx.annotation:annotation:1.9.1' // Note: these libraries require that the Google repository has been declared // in the pluginManagement section of the top-level build.gradle file. }
Котлин
... dependencies { implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar")))) // AndroidX libraries implementation("androidx.core:core-ktx:1.15.0") implementation("androidx.appcompat:appcompat:1.7.0") implementation("androidx.cardview:cardview:1.0.0") implementation("com.google.android.material:material:1.7.0") implementation("androidx.gridlayout:gridlayout:1.0.0") implementation("androidx.leanback:leanback:1.1.0-rc02") implementation("androidx.mediarouter:mediarouter:1.7.0") implementation("androidx.palette:palette-ktx:1.0.0") implementation("androidx.recyclerview:recyclerview:1.3.2") implementation("androidx.annotation:annotation:1.9.1") // Note: these libraries require that the Google repository has been declared // in the pluginManagement section of the top-level build.gradle.kts file. }
- Сохраните файл
build.gradle
, затем закройте проект в IntelliJ. Перейдите в каталог вашего проекта и удалите каталог.idea
и все файлы IML в вашем проекте. - Запустите Android Studio и нажмите «Файл» > «Создать» > «Импортировать проект» .
- Найдите каталог своего проекта, выберите созданный вами файл
build.gradle
илиbuild.gradle.kts
, а затем нажмите «ОК» , чтобы импортировать проект. - Нажмите «Сборка» > «Создать проект», чтобы протестировать файл сборки путем сборки проекта и устранить все обнаруженные ошибки.
Следующие шаги
После переноса проекта в Android Studio узнайте больше о сборке с помощью Gradle и запуске приложения в Android Studio, прочитав статью «Создание и запуск приложения» .
В зависимости от вашего проекта и рабочего процесса вам также может потребоваться узнать больше о контроле версий, управлении зависимостями и настройке Android Studio. Чтобы начать использовать Android Studio, прочтите Знакомство с Android Studio .
Настроить контроль версий
Android Studio поддерживает различные системы контроля версий, включая Git, Mercurial и Subversion. Другие системы контроля версий можно добавить через плагины.
Если ваше приложение уже находится под контролем исходного кода, вам может потребоваться включить его в Android Studio. В меню VCS нажмите «Включить интеграцию контроля версий» и выберите соответствующую систему контроля версий.
Если ваше приложение не находится под контролем исходного кода, вы можете настроить его после импорта приложения в Android Studio. Используйте параметры меню Android Studio VCS, чтобы включить поддержку VCS для нужной системы контроля версий, создать репозиторий, импортировать новые файлы в систему контроля версий и выполнить другие операции контроля версий:
- В меню Android Studio VCS выберите «Включить интеграцию контроля версий» .
- В меню выберите систему контроля версий, которую нужно связать с корнем проекта, затем нажмите «ОК» . В меню VCS теперь отображается ряд параметров управления версиями в зависимости от выбранной вами системы.
Примечание. Вы также можете использовать пункт меню «Файл» > «Настройки» > «Контроль версий» , чтобы настроить и изменить контроль версий.
Дополнительные сведения о работе с контролем версий см. в справочнике по управлению версиями IntelliJ .
Подписание приложения
Если ранее использовался сертификат отладки, он может быть обнаружен в процессе импорта. В этом случае Android Studio продолжает ссылаться на этот сертификат. В противном случае конфигурация отладки использует хранилище ключей отладки, созданное Android Studio, с использованием известного пароля и ключа по умолчанию с известным паролем, расположенного в $HOME/.android/debug.keystore
. Тип сборки отладки настроен на автоматическое использование этой конфигурации отладки при запуске или отладке проекта из Android Studio.
Аналогично, процесс импорта может обнаружить существующий сертификат выпуска. Если сертификат выпуска не был определен ранее, добавьте конфигурацию подписи выпуска в файл build.gradle
или build.gradle.kts
или воспользуйтесь пунктом меню «Сборка» > «Создать подписанный APK» , чтобы открыть мастер создания подписанного APK . Дополнительные сведения о подписании приложения см. в разделе Подписание приложения .
Отрегулируйте максимальный размер кучи Android Studio
По умолчанию Android Studio имеет максимальный размер кучи 1280 МБ. Если вы работаете над большим проектом или в вашей системе много оперативной памяти, вы можете повысить производительность, увеличив максимальный размер кучи .
Обновления программного обеспечения
Android Studio обновляется отдельно от плагина Gradle, инструментов сборки и инструментов SDK. Вы можете указать, какие версии вы хотите использовать с Android Studio.
По умолчанию Android Studio предоставляет автоматические обновления при каждом выпуске новой стабильной версии, но вы можете обновляться чаще и получать предварительные или бета-версии.
Для получения дополнительной информации об обновлении Android Studio и использовании предварительных и бета-версий читайте об обновлениях .