Migrating your projects to Android Studio requires adapting to a new project structure, build system, and IDE functionality.

If you are migrating from IntelliJ and your project already uses Gradle, you can open your existing project from Android Studio. If you are using IntelliJ but your project doesn't already use Gradle, you need to manually prepare your project before you can import it into Android Studio. For more information, see the[Migrate from IntelliJ](https://developer.android.com/studio/intro/migrate#migrate-intellij)section.

## Android Studio basics

Here are some of the key differences to be aware of as you prepare to migrate to Android Studio.

### Project and module organization

Android Studio is based on the[IntelliJ IDEA](https://www.jetbrains.com/idea/)IDE. To familiarize yourself with the IDE basics, such as navigation, code completion, and keyboard shortcuts, see[Meet Android Studio](https://developer.android.com/studio/intro).

Android Studio organizes code into projects, which contain everything that defines your Android app, from app source code to build configurations and test code. Projects open in separate Android Studio windows. Each project contains one or more modules, which let you divide your project into discrete units of functionality. Modules can be independently built, tested, and debugged.

For more information about Android Studio projects and modules, see the[Projects overview](https://developer.android.com/tools/projects).

### Gradle-based build system

Android Studio's build system is based on[Gradle](http://gradle.org)and uses build configuration files written in either Groovy or Kotlin script for ease of extensibility and customization.

Gradle-based projects offer significant features for Android development, including the following:

- Support for binary libraries (AARs). You no longer need to copy library sources into your own projects; you can[declare a dependency](https://developer.android.com/studio/build/build-variants#dependencies)and the library is automatically downloaded and merged into your project. This includes automatically merging in resources, manifest entries, Proguard exclusion rules, custom lint rules, and so on at build time.
- Support for[build variants](https://developer.android.com/studio/build/build-variants), which let you build different versions of your app (such as a free version and a pro version) from the same project.
- Easy[build configuration](https://developer.android.com/studio/build)and customization. For example, you can pull version names and version codes from Git tags as part of the build.
- Gradle can be used from the IDE, from the[command line](https://developer.android.com/studio/build/building-cmdline), and from continuous integration servers like Jenkins, providing the same build everywhere, every time.

For more information about using and configuring Gradle, see[Configure your build](https://developer.android.com/tools/building/plugin-for-gradle).

### Dependencies

Library dependencies in Android Studio use Gradle dependency declarations and Maven dependencies for well-known local source and binary libraries with Maven coordinates. For more information, see[Declare dependencies](https://developer.android.com/tools/building/configuring-gradle#dependencies).

## Migrate from IntelliJ

If your IntelliJ project uses the Gradle build system, you can import your project directly into Android Studio. If your IntelliJ project uses Maven or another build system, you need to set it up to work with Gradle before you can migrate to Android Studio.

### Import a Gradle-based IntelliJ project

If you are already using Gradle with your IntelliJ project, open it in Android Studio using the following steps:

1. Click**File \> New \> Import Project**.
2. Select your IntelliJ project directory and click**OK**. Your project opens in Android Studio.

### Import a non-Gradle IntelliJ project

If your IntelliJ project doesn't already use the Gradle build system, you have two options for importing your project into Android Studio, which are described in the sections that follow:

- Create a new empty Android Studio project and copy your existing source code into the directories associated with the new project. For more information, see the section about[migrating by creating a new empty project](https://developer.android.com/studio/intro/migrate#empty-project).
- Create a new Gradle build file for your project and then import the project and new build file into Android Studio. For more information, see the section about[migrating by creating a custom Gradle build file](https://developer.android.com/studio/intro/migrate#custom-gradle).

<br />

#### Migrate by creating a new empty project

To migrate your project into Android Studio by creating a new empty project and copying your source files into the new directories, proceed as follows:

1. Open Android Studio and click**File \> New \> New Project**.
2. Enter a name for your app project and specify the location where it should be created, then click**Next**.
3. Select the form factors your app runs on, then click**Next**.
4. Click**Add No Activity** , then click**Finish**.
5. In the**Project** tool window, click the arrow to open the view menu and select the**Project** view to see and explore the organization of your new Android Studio project. To read more about changing views and how Android Studio structures projects, see[Project files](https://developer.android.com/studio/projects#ProjectFiles).
6. Navigate to the location you selected for your new project and move the code, unit tests, instrumentation tests, and resources from your old project directories into the correct locations in your new project structure.
7. In Android Studio, click**File \> Project Structure** to open theProject Structuredialog. Ensure that your app's module is selected in the left pane.
8. Make any necessary modifications in the**Properties** tab for your project (for example, modifying the`minSdk`or`targetSdk`).
9. Click**Dependencies** and add any libraries your project depends on as Gradle dependencies. To add a new dependency, click**Add** ![](https://developer.android.com/static/studio/images/buttons/ic_plus.png), then select the type of dependency you would like to add and follow the prompts.
10. Click**OK**to save your modifications.
11. Click**Build \> Make Project**to test building your project, and if necessary resolve any outstanding errors.

#### Migrate by creating a custom Gradle build file

To migrate your project into Android Studio by creating a new Gradle build file to point to your existing source files, proceed as follows:

1. Before you begin, back up your project files in a separate location, as the migration process modifies the contents of your project in place.
2. Create a file in your project directory called`build.gradle`, if you're using Groovy, or`build.gradle.kts`, if you're using Kotlin script. This file contains all the information required for Gradle to run your build.

   By default, Android Studio expects your project to be organized as shown in figure 1.
   ![](https://developer.android.com/static/images/tools/studio/project-structure_2x.png)**Figure 1.**The default project structure for an Android app module.

   In`settings.gradle`, for Groovy, or`settings.gradle.kts`, for Kotlin script, you set the repositories that are used to find plugins and dependencies in the`pluginManagement`and`dependencyResolutionManagement`blocks, respectively:  

   ### Groovy

   ```groovy
     pluginManagement {
         repositories {
             google()
             mavenCentral()
             gradlePluginPortal()
         }
     }
     dependencyResolutionManagement {
         repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
         repositories {
             google()
             mavenCentral()
         }
     }
     rootProject.name = "Test App"
     include ':app'
     
   ```

   ### Kotlin

   ```kotlin
     pluginManagement {
         repositories {
             google()
             mavenCentral()
             gradlePluginPortal()
         }
     }
     dependencyResolutionManagement {
         repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
         repositories {
             google()
             mavenCentral()
         }
     }
     rootProject.name = "Test App"
     include(":app")
     
   ```

   **Warning:** The JCenter repository became read-only on March 31, 2021. For more information, see[JCenter service update](https://developer.android.com/studio/build/jcenter-migration).

   The Android Gradle plugin applies some default[source sets](https://developer.android.com/studio/build#sourcesets)to the project. These source sets define the directories used to store[various types of source files](https://developer.android.com/studio/projects#ProjectView). Gradle uses these source sets to determine the locations of specific file types. If your existing project doesn't conform to the defaults, then you can either move files to where they should be or[change the default source sets](https://developer.android.com/studio/build/build-variants#configure-sourcesets)so Gradle knows where to find them.

   For more information about setting up and customizing a Gradle build file, read[Configure your build.](https://developer.android.com/studio/build)
3. Next, identify which library projects you are using.

   With Gradle, you no longer need to add these libraries as source code projects. You can instead refer to them in the`dependencies{}`block of your build file. The build system then handles these libraries for you, including downloading libraries, merging in resources, and merging manifest entries. The following example adds the declaration statements for a number of AndroidX libraries to the`dependencies{}`block of a build file.  

   ### Groovy

   ```groovy
   ...
   dependencies {
       implementation fileTree(dir: 'libs', include: ['*.jar'])

       // AndroidX libraries
       implementation 'androidx.core:core-ktx:1.17.0'
       implementation 'androidx.appcompat:appcompat:1.7.1'
       implementation 'androidx.cardview:cardview:1.0.0'
       implementation 'com.google.android.material:material:1.7.0'
       implementation 'androidx.gridlayout:gridlayout:1.1.0'
       implementation 'androidx.leanback:leanback:'
       implementation 'androidx.mediarouter:mediarouter:1.8.1'
       implementation 'androidx.palette:palette-ktx:1.0.0'
       implementation 'androidx.recyclerview:recyclerview:1.4.0'
       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.
   }
   ```

   ### Kotlin

   ```kotlin
   ...
   dependencies {
       implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))

       // AndroidX libraries
       implementation("androidx.core:core-ktx:1.17.0")
       implementation("androidx.appcompat:appcompat:1.7.1")
       implementation("androidx.cardview:cardview:1.0.0")
       implementation("com.google.android.material:material:1.7.0")
       implementation("androidx.gridlayout:gridlayout:1.1.0")
       implementation("androidx.leanback:leanback:")
       implementation("androidx.mediarouter:mediarouter:1.8.1")
       implementation("androidx.palette:palette-ktx:1.0.0")
       implementation("androidx.recyclerview:recyclerview:1.4.0")
       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.
   }
   ```
   For help determining the correct declaration statements for your libraries, search[the Google Maven repository](https://maven.google.com/)or[Maven Central](https://search.maven.org/).
4. Save your`build.gradle`file, then close the project in IntelliJ. Navigate to your project directory and delete the`.idea`directory and any IML files in your project.
5. Launch Android Studio and click**File \> New \> Import Project**.
6. Locate your project directory, select the`build.gradle`or`build.gradle.kts`file you created, and then click**OK**to import your project.
7. Click**Build \> Make Project**to test your build file by building your project, and address any errors you find.

## Next steps

Once you have migrated your project to Android Studio, learn more about building with Gradle and running your app in Android Studio by reading[Build and run your app](https://developer.android.com/studio/run).

Depending on your project and workflow, you may also want to learn more about version control, managing dependencies, and configuring Android Studio. To get started using Android Studio, read[Meet Android Studio](https://developer.android.com/studio/intro).

### Configure version control

Android Studio supports a variety of version control systems, including Git, Mercurial, and Subversion. Other version control systems can be added through plugins.

If your app is already under source control, you might need to enable it in Android Studio. From the VCS menu, click**Enable Version Control Integration**and select the appropriate version control system.

If your app is not under source control, you can configure it after importing your app into Android Studio. Use the Android Studio VCS menu options to enable VCS support for the desired version control system, create a repository, import the new files into version control, and perform other version control operations:

1. From the Android Studio VCS menu, click**Enable Version Control Integration**.
2. Select a version control system to associate with the project root from the menu, then click**OK**. The VCS menu now displays a number of version control options based on the system you selected.

**Note:** You can also use the**File \> Settings \> Version Control**menu option to set up and modify the version control.

For more information about working with version control, see[IntelliJ's Version control reference](https://www.jetbrains.com/help/idea/2025.2/version-control-integration.html).

### App signing

If a debug certificate was used previously, it might be detected during the import process. In this case, Android Studio continues to reference that certificate. Otherwise, the debug configuration uses the Android Studio-generated debug keystore, using a known password and a default key with a known password located in`$HOME/.android/debug.keystore`. The debug build type is set to use this debug configuration automatically when you run or debug your project from Android Studio.

Similarly, the import process might detect an existing release certificate. If no release certificate was defined previously, add the release signing configuration to the`build.gradle`or`build.gradle.kts`file or use the**Build \> Generate Signed APK** menu option to open the*Generate Signed APK Wizard* . For more information about signing your app, see[Sign your app](https://developer.android.com/studio/publish/app-signing).

### Adjust Android Studio's maximum heap size

By default, Android Studio has a maximum heap size of 1280MB. If you are working on a large project, or your system has a lot of RAM, you can improve performance by[increasing the maximum heap size](https://developer.android.com/studio/intro/studio-config#adjusting_heap_size).

### Software updates

Android Studio updates separately from the Gradle plugin, the build tools, and the SDK tools. You can specify which versions you would like to use with Android Studio.

By default, Android Studio provides automatic updates whenever a new stable version is released, but you can choose to update more frequently and receive canary or RC versions.

For more information about updating Android Studio and using canary and RC versions, read about[updates](https://developer.android.com/studio/intro/update).