迁移至 Android Studio

将项目迁移至 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 将代码分成各个项目,其中包含从应用源代码到 build 配置和测试代码等定义 Android 应用的所有信息。各个项目会在单独的 Android Studio 窗口中打开。每个项目包含一个或多个模块,您可以将项目划分为独立的功能单元。模块可以单独构建、测试和调试。

如需详细了解 Android Studio 项目和模块,请参阅项目概览

基于 Gradle 的构建系统

Android Studio 的构建系统基于 Gradle,并使用以 Groovy 或 Kotlin 脚本编写的 build 配置文件,以便于扩展和自定义。

基于 Gradle 的项目提供适用于 Android 开发的重要功能,包括:

  • 支持二进制文件库 (AAR)。您无需再将库源代码复制到您自己的项目中,而是只需声明依赖项,即可自动下载库并将其合并到您的项目中。这包括在构建时自动合并资源、清单条目、Proguard 排除规则和自定义 lint 规则等。
  • 支持 build 变体,可让您从同一项目构建应用的不同版本(如免费版和专业版)。
  • 可轻松自定义和配置 build。例如,您可以在构建时从 Git 标记中提取版本名称和版本代码。
  • 您可以通过该 IDE、命令行以及 Jenkins 等持续集成服务器使用 Gradle,随时随地获得相同的 build。

如需详细了解如何使用和配置 Gradle,请参阅配置 build

依赖项

Android Studio 中的库依赖项使用 Gradle 依赖项声明,并针对具有 Maven 坐标的已知本地源代码库和二进制文件库使用 Maven 依赖项。如需了解详情,请参阅声明依赖项

从 IntelliJ 迁移

如果您的 IntelliJ 项目使用 Gradle 构建系统,可以将项目直接导入到 Android Studio 中。如果您的 IntelliJ 项目使用 Maven 或其他构建系统,则需要先将其设置为使用 Gradle,然后才能迁移至 Android Studio。

导入基于 Gradle 的 IntelliJ 项目

如果您已经将 Gradle 与 IntelliJ 项目配合使用,则可按照以下步骤在 Android Studio 中将其打开:

  1. 依次点击 File > New > Import Project
  2. 选择 IntelliJ 项目目录,然后点击 OK。您的项目会在 Android Studio 中打开。

导入非 Gradle IntelliJ 项目

如果您的 IntelliJ 项目尚未使用 Gradle 构建系统,您可从两种方式中选择其一,以将项目导入到 Android Studio 中,后续部分将进行详述:

通过新建空项目进行迁移

如需通过新建空项目将源文件复制到新目录,从而将项目迁移至 Android Studio,请继续执行以下操作:

  1. 打开 Android Studio,然后依次点击 File > New > New Project
  2. 为应用项目输入名称,指定应该创建项目的位置,然后点击 Next
  3. 选择运行应用的设备类型,然后点击 Next
  4. 点击 Add No Activity,然后点击 Finish
  5. Project 工具窗口中,点击箭头以打开视图菜单,然后选择 Project 视图以查看并探索新 Android Studio 项目的结构。如需详细了解如何更改视图以及 Android Studio 如何构建项目,请参阅项目文件
  6. 转到为新项目选择的位置,然后将代码、单元测试、插桩测试和资源从旧的项目目录移至新项目结构中的正确位置。
  7. 在 Android Studio 中,依次点击 File > Project Structure 以打开 Project Structure 对话框。确保已在左侧窗格中选定应用的模块。
  8. 在项目的 Properties 标签页中进行必要的修改(例如,修改 minSdktargetSdk)。
  9. 点击 Dependencies 并将项目依赖的任何库添加为 Gradle 依赖项。如需添加新的依赖项,请点击 Add 图标 ,然后选择需添加的依赖项类型并按提示操作。
  10. 点击 OK 以保存所做的修改。
  11. 依次点击 Build > Make Project 以测试项目构建,并根据需要解决任何未解决的错误。

通过创建自定义 Gradle build 文件进行迁移

如需通过新建指向现有源文件的 Gradle build 文件将项目迁移至 Android Studio,请按照以下步骤操作:

  1. 在开始前,请将项目文件备份到单独位置,因为迁移过程会在适当位置修改项目的内容。
  2. 在项目目录中创建一个名为 build.gradle(如果您使用 Groovy)或名为 build.gradle.kts(如果您使用 Kotlin 脚本)的文件。此文件包含 Gradle 运行 build 所需的所有信息。

    默认情况下,Android Studio 会认定项目的结构如图 1 所示。

    图 1. Android 应用模块的默认项目结构。

    settings.gradle(针对 Groovy)或 settings.gradle.kts(针对 Kotlin 脚本)中,您需设置仓库以分别用于在 pluginManagementdependencyResolutionManagement 块中查找插件和依赖项:

    Groovy

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

    Kotlin

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

    警告:JCenter 代码库已于 2021 年 3 月 31 日变为只读代码库。 如需了解详情,请参阅 JCenter 服务更新

    Android Gradle 插件会将一些默认源代码集应用于项目。这些源代码集定义了用于存储各种类型的源文件的目录。Gradle 使用这些源代码集来确定特定文件类型的位置。如果您的现有项目不符合默认设置,则可将相关文件移到其目标位置,或者更改默认源代码集,以便 Gradle 知道可在何处找到它们。

    如需详细了解如何设置和自定义 Gradle build 文件,请参阅配置 build

  3. 接下来,确定您需使用的库项目。

    有了 Gradle,您不再需要添加这些库作为源代码项目。您可改为在 build 文件的 dependencies{} 块中引用它们。然后,构建系统会为您处理这些库,包括下载库、合并到资源以及合并清单条目。以下示例将许多 AndroidX 库的声明语句添加到了 build 文件的 dependencies{} 块中。

    Groovy

    ...
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
    
        // AndroidX libraries
        implementation 'androidx.core:core-ktx:1.12.0'
        implementation 'androidx.appcompat:appcompat:1.6.1'
        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.6.0'
        implementation 'androidx.palette:palette-ktx:1.0.0'
        implementation 'androidx.recyclerview:recyclerview:1.3.2'
        implementation 'androidx.annotation:annotation:1.7.1'
    
        // Note: these libraries require that the Google repository has been declared
        // in the pluginManagement section of the top-level build.gradle file.
    }

    Kotlin

    ...
    dependencies {
        implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))
    
        // AndroidX libraries
        implementation("androidx.core:core-ktx:1.12.0")
        implementation("androidx.appcompat:appcompat:1.6.1")
        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.6.0")
        implementation("androidx.palette:palette-ktx:1.0.0")
        implementation("androidx.recyclerview:recyclerview:1.3.2")
        implementation("androidx.annotation:annotation:1.7.1")
    
        // Note: these libraries require that the Google repository has been declared
        // in the pluginManagement section of the top-level build.gradle.kts file.
    }
    如果不清楚如何确定库的正确声明语句,请搜索 Google Maven 制品库Maven Central 以获取相关帮助。
  4. 保存您的 build.gradle 文件,然后关闭 IntelliJ 中的项目。导航至您的项目目录,然后删除 .idea 目录以及项目中的所有 IML 文件。
  5. 启动 Android Studio,然后依次点击 File > New > Import Project
  6. 找到项目目录,选择您创建的 build.gradlebuild.gradle.kts 文件,然后点击 OK 导入项目。
  7. 依次点击 Build > Make Project 以通过构建项目并解决找到的任何错误来测试 build 文件。

后续步骤

将项目迁移至 Android Studio 后,请参阅构建和运行应用,详细了解如何在 Android Studio 中使用 Gradle 进行构建以及运行应用。

您可能还需要详细了解如何进行版本控制、管理依赖项以及配置 Android Studio,具体取决于您的项目和工作流程。如需开始使用 Android Studio,请参阅探索 Android Studio

配置版本控制

Android Studio 支持多个版本控制系统,包括 Git、Mercurial 和 Subversion。您可以通过插件添加其他版本控制系统。

如果您的应用已受源代码控制,您可能需要在 Android Studio 中启用它。在 VCS 菜单中,点击 Enable Version Control Integration,然后选择相应的版本控制系统。

如果您的应用未受源代码控制,您可在将应用导入 Android Studio 后对其进行配置。您可以使用 Android Studio VCS 菜单选项启用对所需版本控制系统的 VCS 支持、创建仓库、将新文件导入到版本控制系统中以及执行其他的版本控制操作:

  1. 在 Android Studio VCS 菜单中,点击 Enable Version Control Integration
  2. 从菜单中选择要与项目根目录关联的版本控制系统,然后点击 OK。此时,VCS 菜单将根据您选择的系统显示多个版本控制选项。

注意:您还可依次选择 File > Settings > Version Control 菜单选项,以设置和修改版本控制。

如需详细了解如何使用版本控制,请参阅 IntelliJ 的版本控制参考文档

应用签名

如果您之前使用过调试证书,在导入过程中可能会检测到它。这种情况下,Android Studio 会继续引用该证书。否则,调试配置会使用由 Android Studio 生成的调试密钥库,方法是使用一个已知密码和一个默认密钥,后者有一个位于 $HOME/.android/debug.keystore 中的已知密码。当您从 Android Studio 运行或调试项目时,调试 build 类型将自动使用此调试配置。

同样,导入过程可能会检测到现有的发布证书。 如果之前未定义过任何发布证书,请将版本签名配置添加到 build.gradlebuild.gradle.kts 文件中,或者使用 Build > Generate Signed APK 菜单选项打开“Generate Signed APK Wizard”。如需详细了解如何为您的应用签名,请参阅为应用签名

调整 Android Studio 的堆大小上限

默认情况下,Android Studio 的最大堆大小为 1280MB。如果您处理的是大型项目,或者您的系统有充足的 RAM,您可以通过增加最大堆大小来提高性能。

软件更新

Android Studio 与 Gradle 插件、构建工具和 SDK 工具分开更新。您可以指定想要与 Android Studio 配合使用的版本。

默认情况下,当有新的稳定版发布时,Android Studio 会自动更新,但您可选择更频繁地进行更新以及接收预览版或 Beta 版。

如需详细了解如何更新 Android Studio 以及如何使用预览版和 Beta 版,请参阅更新