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 では、コードはプロジェクトごとに整理されます。プロジェクトには、アプリのソースコードからビルド構成とテストコードに至るまで、Android アプリを定義するすべてのものが含まれています。プロジェクトごとに個別の Android Studio ウィンドウが開きます。各プロジェクトには 1 つ以上のモジュールが含まれ、これによってプロジェクトを機能単位ごとに分割できます。モジュール単位で個別にビルド、テスト、デバッグを行うことができます。

Android Studio のプロジェクトとモジュールについて詳しくは、プロジェクトの概要をご覧ください。

Gradle ベースのビルドシステム

Android Studio のビルドシステムは Gradle をベースとしており、Groovy または Kotlin スクリプトで記述されたビルド構成ファイルを使用しているため、拡張とカスタマイズを容易に行えます。

Gradle ベースのプロジェクトには、Android 開発において重要な以下のような特長があります。

  • バイナリ ライブラリ(AAR)のサポート。これにより、ライブラリのソースをプロジェクトにコピーする必要がなくなります。依存関係を宣言すれば、ライブラリが自動的にダウンロードされてプロジェクトにマージされます。リソース、マニフェスト エントリ、ProGuard の除外ルール、カスタム lint ルールなどもビルド時に自動的にマージされます。
  • ビルド バリアントのサポート。これにより、同じプロジェクトからさまざまなバージョンのアプリ(無料バージョンやプロ向けバージョンなど)をビルドできます。
  • ビルドの構成とカスタマイズが容易。たとえば、ビルドプロセスの一環として Git タグからバージョン名とバージョン コードを取得できます。
  • Gradle は、IDE、コマンドライン、継続的インテグレーション サーバー(Jenkins など)から使用することが可能であり、場所と時間を問わず同じビルドを提供できます。

Gradle の使用方法と構成方法について詳しくは、ビルドを設定するをご覧ください。

依存関係

Android Studio のライブラリ依存関係では、Gradle の依存関係の宣言を使用します。Maven 座標を持つよく利用されるローカルソースとバイナリ ライブラリについては、Maven の依存関係を使用します。詳しくは、依存関係の宣言をご覧ください。

IntelliJ からの移行

IntelliJ プロジェクトで Gradle ビルドシステムを使用している場合は、Android Studio にプロジェクトを直接インポートできます。IntelliJ プロジェクトで Maven または別のビルドシステムを使用している場合は、Gradle を使用するように設定してから Android Studio に移行する必要があります。

Gradle ベースの IntelliJ プロジェクトのインポート

IntelliJ プロジェクトですでに Gradle を使用している場合は、以下の手順に沿って Android Studio でプロジェクトを開きます。

  1. [File] > [New] > [Import Project] をクリックします。
  2. IntelliJ プロジェクト ディレクトリを選択して [OK] をクリックします。Android Studio でプロジェクトが開きます。

Gradle を使用していない IntelliJ プロジェクトのインポート

IntelliJ プロジェクトで Gradle ビルドシステムをまだ使用していない場合、プロジェクトを Android Studio にインポートする方法は 2 つあります。詳しくは、以降のセクションで説明します。

空のプロジェクトを新たに作成して移行する

空のプロジェクトを新たに作成し、ソースファイルを新しいディレクトリにコピーしてプロジェクトを 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 ビルドファイルを作成して移行する

既存のソースファイルを指定する Gradle ビルドファイルを新たに作成して、プロジェクトを Android Studio に移行するには、次の手順を行います。

  1. 移行を開始する前に、プロジェクト ファイルを別の場所にバックアップします。これは、移行プロセスによって、所定の場所にあるプロジェクトの内容が変更されるためです。
  2. Groovy を使用している場合は build.gradle、Kotlin スクリプトを使用している場合は build.gradle.kts という名前のファイルをプロジェクト ディレクトリに作成します。このファイルには、Gradle がビルドを実行するために必要なすべての情報が格納されます。

    Android Studio では、デフォルトでプロジェクトは図 1 のような構造になっていると想定されます。

    図 1. Android アプリ モジュールのデフォルトのプロジェクト構造

    settings.gradle(Groovy の場合)または settings.gradle.kts(Kotlin スクリプトの場合)で、プラグインと依存関係を見つけるために使用されるリポジトリを pluginManagement ブロックと dependencyResolutionManagement ブロックにそれぞれ設定します。

    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 ビルドファイルのセットアップとカスタマイズについて詳しくは、ビルドを設定するをご覧ください。

  3. 次に、使用するライブラリ プロジェクトを特定します。

    Gradle を使用すると、それらのライブラリをソースコード プロジェクトとして追加する必要がなくなります。代わりに、ビルドファイルの dependencies{} ブロックでそれらを参照できます。これにより、ライブラリに対する処理(ライブラリのダウンロード、リソースへのマージ、マニフェスト エントリのマージなど)がビルドシステムによって行われます。次の例では、ビルドファイルの dependencies{} ブロックに多数の AndroidX ライブラリの宣言ステートメントを追加しています。

    Groovy

    ...
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
    
        // AndroidX libraries
        implementation 'androidx.core:core-ktx:1.13.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.7.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.13.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.7.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.gradle または build.gradle.kts ファイルを選択し、[OK] をクリックしてプロジェクトをインポートします。
  7. [Build] > [Make Project] をクリックし、プロジェクトをビルドすることによりビルドファイルをテストして、見つかったすべてのエラーを解決します。

次のステップ

Android Studio へのプロジェクトの移行が完了したら、アプリをビルドして実行するを読み、Gradle を使用したビルドと Android Studio でのアプリの実行に関する詳細を確認します。

また、プロジェクトとワークフローに応じて、バージョン管理、依存関係の管理、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.gradle または build.gradle.kts ファイルにリリース署名設定を追加するか、[Build] > [Generate Signed APK] メニュー オプションを使用して、署名済み APK 生成ウィザードを起動します。アプリへの署名について詳しくは、アプリへの署名をご覧ください。

Android Studio の最大ヒープサイズを調整する

Android Studio のデフォルトの最大ヒープサイズは 1,280 MB です。大規模なプロジェクトで作業する場合や、システムに大量の RAM が搭載されている場合は、最大ヒープサイズを増やすことでパフォーマンスを改善できます。

ソフトウェア更新

Android Studio は、Gradle プラグイン、ビルドツール、SDK ツールとは別に更新されます。Android Studio で使用するバージョンを指定できます。

デフォルトでは、Android Studio は新しい安定版がリリースされると自動的に更新されます。ただし、更新頻度を上げてプレビュー版またはベータ版を受け取ることもできます。

Android Studio の更新と、プレビュー版およびベータ版の使用について詳しくは、更新をご覧ください。