実行 / デバッグ構成の作成と編集

コードを実行、デバッグ、またはテストする際、Android Studio は実行 / デバッグ構成によってオペレーションの実行方法を決定します。通常、アプリの実行またはデバッグを行うには、最初に作成される構成で十分です。ただし、このページで説明するように、構成を変更することも新しい構成を作成することも可能です。また、開発プロセスに合わせて構成テンプレートを変更することもできます。

詳細については、次の IntelliJ ドキュメントもご覧ください。

実行 / デバッグ構成の概要

実行 / デバッグ構成は、アプリのインストール、起動、テスト オプションなどの詳細を指定します。1 回限りの使用のために構成を定義することも、構成を保存して繰り返し使用することもできます。 構成を保存した場合は、ツールバーの [Select Run/Debug Configuration] プルダウン リストで構成を選択できます。Android Studio は、構成をプロジェクトの一部として保存します。

最初に作成される実行 / デバッグ構成

初めてプロジェクトを作成したとき、Android Studio は Android App テンプレートに基づいて、メイン アクティビティに対する実行 / デバッグ構成を作成します。プロジェクトを実行またはデバッグするには、必ず 1 つ以上の実行 / デバッグ構成が定義されていることが必要です。このため、最初に作成される構成は削除しないことをおすすめします。

プロジェクト スコープとバージョン管理

実行 / デバッグ構成とテンプレートの変更は、現在のプロジェクトにのみ反映されます。 実行 / デバッグ構成は、バージョン管理システムを介して共有できます(テンプレートは共有できません)。構成を共有する方法の詳細については、名前構成オプションと共有構成オプションをご覧ください。

[Run/Debug Configurations] ダイアログを開く

[Run/Debug Configurations] ダイアログを開くには、[Run] > [Edit Configurations] を選択します。図 1 に示すように、[Run/Debug Configurations] ダイアログが表示されます。

図 1. [Run/Debug Configurations] ダイアログ

ダイアログの左側のパネルでは、定義済みの構成がテンプレート タイプ別にグループ化されて表示されます。また、下部にある構成テンプレートを編集できます。選択した構成は右側のパネルで編集できます。ダイアログのサイズを変更すると、隠れている項目を表示できます。

このダイアログでは、次の操作が可能です。

新しい実行 / デバッグ構成を作成する

新しい実行 / デバッグ構成は、[Run/Debug Configurations] ダイアログ、[Project] ウィンドウ、またはコードエディタで定義できます。新しい構成は、構成テンプレートに基づいて作成する必要があります。

[Run/Debug Configurations] ダイアログには、実行 / デバッグ構成と使用可能な構成テンプレートが表示されます。新しい構成を定義する作業は、テンプレートから直接始めるか、または別の構成のコピーから始めます。その後、必要に応じてフィールドの値を変更できます。

または、[Project] ウィンドウでアイテムを右クリックして、そのアイテムに固有の構成を自動的に作成することもできます。たとえば、特定のアクティビティを実行したい場合、そのアクティビティの Java ファイルを右クリックして [Run] を選択します。Android Studio は、アイテムに応じて、Android AppAndroid Instrumented TestsJUnit のいずれかの構成テンプレートを使用し、構成を作成します。

コードエディタでは、クラスまたはメソッドに対して、テスト構成および実行 / デバッグ構成を簡単に作成して実行できます。

[Run/Debug Configurations] ダイアログ以外で作成した構成は、保存しない限り、一時的なものとなります。デフォルトでは、プロジェクトには最大 5 つの一時的な構成を保存でき、それを超えると Android Studio により削除されます。このデフォルトを変更するには、Android Studio の設定を開き、[Advanced Settings] > [Run/Debug] > [Temporary configurations limit] を変更します。一時的な構成の詳細については、一時的な実行 / デバッグ構成の作成と保存をご覧ください。

テンプレートに基づいて構成を定義する

テンプレートに基づいて実行 / デバッグ構成を定義するには、次の手順を行います。

  1. [Run/Debug Configurations] ダイアログを開きます
  2. [Add New Configuration] をクリックします。
  3. 構成テンプレートを選択します。
  4. [Name] に名前を入力します。
  5. 必要に応じて構成を変更します。
  6. ダイアログの下部にエラーが表示されたら、すべて修正してください。

  7. [Apply] または [OK] をクリックします。

コピーに基づいて構成を定義する

別の構成のコピーに基づいて実行 / デバッグ構成を定義するには、次の手順に従います。

  1. [Run/Debug Configurations] ダイアログを開きます
  2. 左ペインで、既存の実行 / デバッグ構成を 1 つ選択します。
  3. [Copy Configuration] をクリックします。
  4. [Name] に名前を入力します。
  5. 必要に応じて構成を変更します。
  6. ダイアログの下部にエラーが表示されたら、すべて修正してください。

  7. [Apply] または [OK] をクリックします。

プロジェクト内のアイテム用の構成を定義する

Android Studio では、[Project] ウィンドウに表示された一部のアイテムに対して実行 / デバッグ構成を作成できます。構成は、次の構成テンプレートに基づいて作成されます。

プロジェクト内のアイテムに対して実行 / デバッグ構成を作成するには、次の手順を行います。

  1. [Android] ビューまたは [Project] ビューで、プロジェクトを開きます。
  2. [Project] ウィンドウでテスト可能なアイテムを右クリックし、[Run filename] または [Debug filename] のいずれかを選択します。Android Studio により一時的な実行 / デバッグ構成が作成され、アプリが起動されます。
  3. ツールバーの [Select Run/Debug Configuration] プルダウン リストを開きます。
  4. 保存する構成の横にあるオプションから [Save Configuration] を選択します。

    図 2. 構成を保存する

注: 同じアイテム(アクティビティを除く)を右クリックして実行またはデバッグすると、Android Studio によって新しい構成が作成されます。

クラスまたはメソッド用のテスト構成を定義する

Android Studio では、クラスまたはメソッドに対してテスト実行構成を定義して、テストを実行できます。たとえば、新しいクラスを作成したら、そのクラスに対するテストを作成して実行できます。テストが成功したら、プロジェクトの残りの部分に対してテストを実行し、新しいコードが他の箇所に悪影響を及ぼしていないかを確認します。

Android Studio は、ソースセットに応じて、Android Instrumented Tests テンプレートまたは Android JUnit テンプレートを使用します。ローカル単体テストは、オプションとして、コード カバレッジで実行できます。

Java コード内のクラスまたはメソッドに対して実行 / デバッグ構成を作成するには、次の手順を行います。

  1. [Android] ビューまたは [Project] ビューで、プロジェクトを開きます。
  2. コードエディタで Java ファイルを開きます。
  3. コード内のクラスまたはメソッドを選択して、Control+Shift+T キー(Command+Shift+T キー)を押します。
  4. 表示されたメニューから [Create New Test] を選択します。
  5. [Create Test] ダイアログで、必要に応じて値を変更または設定し、[OK] をクリックします。
  6. [Choose Destination Directory] ダイアログで、Android Studio がテストを配置するプロジェクト内の場所を選択します。ディレクトリ構造を使用するか、隣接するクラスを選択して、場所を指定できます。
  7. [OK] をクリックします。

    [Project] ウィンドウの、対応するテスト ソースセットに新しいテストが表示されます。

  8. テストを実行するには、以下のいずれかの操作を行います。
    • [Project] ウィンドウでテストを右クリックして、[Run] または [Debug] を選択します。
    • コードエディタで、テストファイル内のクラス定義またはメソッド名を右クリックし、[Run] または [Debug] を選択して、クラス内のすべてのメソッドをテストします。
  9. ツールバーの [Select Run/Debug Configuration] プルダウン リストを開きます。
  10. 保存する構成の横にあるオプションから [Save Configuration] を選択します。

    図 3. 構成を保存する

保存した構成を使用してアプリの実行やデバッグを行う

実行/デバッグ構成を保存した場合は、アプリを実行またはデバッグする前にその構成を選択できます。

保存した実行 / デバッグ構成を使用するには、次の手順を行います。

  1. ツールバーの [Select Run/Debug Configuration] プルダウン リストで、実行 / デバッグ構成を選択します。
  2. プルダウン リストは、[Run] および [Debug] の左にあります(例: )。

  3. [Run] > [Run] または [Run] > [Debug] を選択します。
  4. または、実行アイコン またはデバッグ アイコン をクリックします。

実行 / デバッグ構成を編集する

実行/デバッグ構成を編集する手順は次のとおりです。

  1. [Run/Debug Configurations] ダイアログを開きます
  2. 左ペインで構成を選択します。
  3. 必要に応じて構成を変更します。
  4. ダイアログの下部にエラーが表示されたら、すべて修正してください。

  5. [Apply] または [OK] をクリックします。

実行 / デバッグ構成テンプレートを編集する

Android Studio に用意されている構成テンプレートを開発プロセスに合わせて編集できます。テンプレートを編集しても、そのテンプレートを使用している既存の構成には影響しません。したがって、たとえば特定のタイプの構成を複数作成する必要がある場合、テンプレートを編集して、作成が終了したら元に戻すことができます。

新しいテンプレートを作成することはできませんが、構成を作成してテンプレートと同様に使用することはできます。構成をコピーして編集することにより、新しい構成を作成できます。

テンプレートを編集するには、次の手順を行います。

  1. [Run/Debug Configurations] ダイアログを開きます
  2. [Edit configuration templates...] をクリックします。
  3. 構成テンプレートを選択します。
  4. 必要に応じて構成を変更します。
  5. ダイアログの下部にエラーが表示されたら、すべて修正してください。

  6. [Apply] または [OK] をクリックします。

構成の並べ替えやグループ化を行う

[Run/Debug Configurations] ダイアログでは、構成を並べ替えて見つけやすくすることができます。フォルダ内のアイテムをアルファベット順に並べ替えることが可能です。新規フォルダを作成して、構成をグループ化することもできます。

構成をアルファベット順に並べ替えるには、次の手順を行います。

  1. [Run/Debug Configurations] ダイアログを開きます
  2. 構成を含むフォルダを選択します。
  3. [Sort Configurations] をクリックします。
  4. [OK] をクリックしてダイアログを閉じます。

構成をフォルダ別にグループ化するには、次の操作を行います。

  1. [Run/Debug Configurations] ダイアログを開きます
  2. 構成を含むフォルダを選択します。
  3. [Create New Folder] をクリックします。
  4. [Folder Name] に名前を入力します。
  5. [Apply] をクリックして名前を保存します。
  • 同じテンプレート カテゴリのアイテムをフォルダにドラッグします。
  • 同じテンプレート カテゴリのフォルダと構成を目的の位置にドラッグして、並べ替えます。
  • [OK] をクリックしてダイアログを閉じます。
  • 起動前オペレーションを定義する

    実行 / デバッグ構成を適用する前に実行するタスクを指定できます。タスクは、リスト内の表示順に実行されます。

    注: 起動前タスクの定義は高度な機能です。この機能を使用する代わりに、build.gradle ファイルに準備ロジックをタスクとして組み込み、コマンドラインでビルドしたときに実行されるようにすることをおすすめします。

    タスクリストを作成するには、次の手順を行います。

    1. [Run/Debug Configurations] ダイアログの下部にある [Before launch](下へのスクロールが必要になることがあります)で、[Add] をクリックしてタスクのタイプを選択します。ダイアログが表示されたら、各フィールドに値を入力して [OK] をクリックします。
    2. 必要に応じて、さらにタスクを追加します。
    3. タスクを並べ替えるには、タスクをドラッグするか、タスクを選択して 「 または「 をクリックし、リスト内で上下に移動します。
    4. 実行 / デバッグ構成を適用前に表示するには、[Show this page] をオンにします。

      このオプションは、デフォルトではオフになっています。

    5. アプリを実行またはデバッグする際に [Run] または [Debug] ツール ウィンドウをアクティブにするには、[Active tool window] をオンにします。

      デフォルトではこのオプションが選択されています。

    リストからタスクを削除する手順は次のとおりです。

    1. タスクを選択します。
    2. [Remove] をクリックします。

    タスクを編集する手順は次のとおりです。

    1. タスクを選択します。
    2. [編集] をクリックします。
    3. 表示されたダイアログでタスクの設定を編集し、[OK] をクリックします。

    次の表に、追加できるタスクを示します。

    タスク 説明
    外部ツールの実行 Android Studio の外部アプリを実行します。[External Tools] ダイアログで、実行するアプリを 1 つ以上選択し、[OK] をクリックします。アプリがまだ Android Studio で定義されていない場合は、[Create Tools] ダイアログでアプリの定義を追加します。詳細については、サードパーティ ツールの構成外部ツールをご覧ください。
    別の構成を実行する 既存の実行 / デバッグ構成の 1 つを実行します。[Choose Configuration to Execute] ダイアログで、実行する構成を選択して [OK] をクリックします。
    Make プロジェクトまたはモジュールをコンパイルします。実行 / デバッグ構成で特定のモジュールが指定されている場合は、Make Module コマンドが実行されます。モジュールが指定されていない場合は、Make Project コマンドが実行されます。
    Make プロジェクト プロジェクトをコンパイルします。Android Studio により Make Project コマンドが実行されます。
    Make(エラーチェックなし) このオプションは Make と同じですが、コンパイルの結果に関係なく実行 / デバッグ構成が実行される点が異なります。
    ビルド アーティファクト Android Studio ではサポートされていません。
    Gradle タスクの実行 Gradle タスクを実行します。表示されたダイアログで、詳細を指定して [OK] をクリックします。詳細については、Gradle をご覧ください。
    Gradle 対応 Make プロジェクトをコンパイルして Gradle を実行します。
    App Engine Gradle ビルダー App Engine Gradle ビルダータスクが、プロジェクトを同期してからモジュールをビルドします。

    構成テンプレート

    Android Studio には、簡単に作業を開始できるように、構成テンプレートが用意されています。以下のセクションでは、Android Studio を使用した Android 開発に適用される次のテンプレートについて説明します。

    注: Android Studio 2.1.x 以下には Native Application テンプレートがありましたが、それより新しいバージョンにはありません。プロジェクトに Native Application テンプレートがある場合、プロジェクトを読み込んだときに、Android Studio によって Android App テンプレートに変換されます。[Convert Project] ダイアログの指示に従うと、この処理を完了できます。

    サポートされていないテンプレート

    以下のサポートされていないテンプレートは IntelliJ IDEA に由来するもので、Android Studio での Android 開発専用のテンプレートではありません。これらのテンプレートの使用方法については、リンク先の IntelliJ IDEA ドキュメントをご覧ください。

    一般的な構成オプション

    名前オプション、並列実行の許可オプション、プロジェクト ファイルとして格納オプションは、複数の構成テンプレートでよく使用されます。詳細については、一般的な設定をご覧ください。

    共有された実行 / デバッグ構成は、Android Studio により、project_directory/.idea/runConfigurations/ フォルダの個別の XML ファイルに格納されます。詳しくは、IntelliJ プロジェクトのドキュメントのディレクトリ ベースの形式をご覧ください。

    Android アプリ

    このテンプレートに基づく構成を使用すると、仮想デバイスまたはハードウェア デバイスで Android アプリとアクティビティを実行またはデバッグできます。

    [General] タブ

    [General] タブでは、インストール、起動、デプロイのオプションを指定できます。インストール オプションは、[Miscellaneous] タブにもあります。

    項目 説明
    Module この構成を適用するモジュールを選択します。
    インストール オプション: デプロイ

    次のいずれかのオプションを選択します。

    • [Default APK] - 現在選択されているバリアント用の APK をビルドしてデプロイします。
    • [APK from app bundle] - Android App Bundle からアプリをビルドしてデプロイします。つまり、Android Studio はまず、アプリ プロジェクトを、アプリのコンパイル済みコードとリソースをすべて含む App Bundle に変換します。次に、その App Bundle から、アプリをコネクテッド デバイスにデプロイするために必要な APK のみを生成します。App Bundle からデプロイすると全体のビルド時間が長くなるため、通常、このオプションは、Google Play にアップロードする予定の App Bundle をテストする場合にのみ使用してください。
    • [Custom Artifact] - Android Studio ではサポートされません。
    • [Nothing] - APK をデバイスにインストールしない場合に指定します。たとえば、手動で APK をインストールする場合、Android Studio で APK をインストールする必要はありません。
    Installation Options: Deploy as Instant App アプリがインスタント エクスペリエンスをサポートする場合(つまり、新しいプロジェクトを作成する際に Instant App のサポートを追加するか、インスタント対応の機能モジュールを 1 つ以上作成する場合)、インスタント対応モジュールをデプロイするには、[Deploy as instant app] の横にあるチェックボックスをオンにします。
    インストール オプション: デプロイする機能 アプリに機能モジュールが含まれている場合は、アプリのデプロイ時に組み込みたい機能のチェックボックスをオンにします。このオプションは、アプリに機能モジュールが含まれている場合にのみ表示されます。

    注: 機能モジュールのダウンロードとインストールをオンデマンドでテストする場合は、App Bundle を公開してから Play Console の内部テストトラックを使用してテストしてください。詳細については、App Bundle を Play Console にアップロードするをご覧ください。

    インストール オプション: フラグのインストール 使用する adb pm install オプションを入力します。コマンドラインで実行するときと同じ形式でオプションを指定します(ただし、パスは指定しません)。次に例を示します。

    -i foo.bar.baz -r /path/to/apk

    と、および

    -d -r

    デフォルト: オプションなし。

    Launch Options: Launch

    次のいずれかのオプションを選択します。

    • [Nothing] - [Run] または [Debug] を選択しても、何も起動しません。 ただし、アプリがすでに実行されている場合に [Debug] を選択すると、Android Studio によりアプリプロセスにデバッガがアタッチされます。
    • Default Activity - マニフェストで起動としてマークしたアクティビティを起動します。たとえば、
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
      
      です。
    • [Specified Activity] - モジュール内の特定アプリ アクティビティを起動します。 このオプションをオンにすると、その下に [Activity] フィールドが表示されます。このフィールドに起動するアクティビティの名前を入力するか、[More] をクリックしてリストからアクティビティを選択します。
    • [URL] - アプリのマニフェストのインテント フィルタに一致する URL を起動します。 このオプションをオンにすると、その下に [URL] フィールドが表示されます。このフィールドに URL を入力できます。

      Android Instant App を起動するには、このフィールドに値を入力する必要があります。これは、Android アプリリンクをテストする際にも使用できます。

    起動オプション: 起動フラグ 使用する adb am start オプションを入力します。コマンドラインで実行するときと同じ形式でオプションを指定します(ただし、インテントは指定しません)。例:

    -W

    [Launch] の値として [Nothing] を選択した場合、このオプションは表示されません。

    デフォルト: オプションなし。

    デプロイ ターゲットのオプション: ターゲット

    次のいずれかのオプションを選択します。

    • [Open Select Deployment Target Dialog] - [Select Deployment Target] ダイアログを開いて、仮想デバイスまたはハードウェア デバイスを選択します。
    • [USB Device] - USB ポートを介して開発用コンピュータに接続しているハードウェア デバイスを使用します。複数のデバイスが存在する場合、デバイスを選択するダイアログが表示されます。
    • [Emulator] - 仮想デバイスを使用します。構成内の AVD を選択できます。選択しなかった場合、リスト内の最初の AVD が使用されます。

    Deployment Target Options: Use same device for future launches

    このオプションはデフォルトではオフになっているため、アプリを実行するたびに [Select Deployment] ダイアログが表示され、デバイスの選択を求められます。このオプションをオンにしてアプリを実行すると、[Select Deployment] ダイアログが表示され、デバイスの選択を求められます。その後は、アプリを実行するたびに、選択したデバイスでアプリが起動され、[Select Deployment] ダイアログは表示されません。別のデバイスでアプリを実行するには、[Use same device for future launches] をオフにするか、[Run] > [Stop app] または [Stop] でアプリを停止してからもう一度起動します。そうすると、[Select Deployment] ダイアログが表示され、デバイスを選択できるようになります。
    Before Launch 起動前オペレーションを定義するをご覧ください。

    [Miscellaneous] タブ

    [Miscellaneous] タブでは、logcat、インストール、起動、デプロイのオプションを指定できます。インストール オプションは、[General] タブにもあります。

    項目名 説明
    Logcat: Show logcat automatically このオプションをオンにすると、この構成でアプリをデプロイして起動するたびに、[Logcat] ウィンドウが開きます。デフォルト: オン
    Logcat: Clear log before launch このオプションをオンにすると、アプリを起動する前に、以前のセッションのデータがログファイルから削除されます。デフォルト: オフ
    Installation Options: APK が変更されていない場合はインストールをスキップ。 このオプションをオンにすると、APK が変更がされていないことが Android Studio により検出された場合、APK は再デプロイされません。 変更がなくても APK が強制的にインストールされるようにするには、このオプションをオフにします。デフォルト: オン
    Installation Options: Force stop running application before launching activity

    このオプションをオンにすると、変更がないため APK の再インストールが不要であると Android Studio が判断した場合、強制的にアプリが停止されます。そのため、アプリはデフォルトのランチャー アクティビティから起動されます。このオプションをオフにすると、Android Studio はアプリを強制停止しません。

    このオプションは、APK をインストールするかどうかを制御する 1 つ前のオプションと連動しています。明示的に毎回インストールを強制する場合以外は、両方の [Installation Options] フィールドをデフォルトのままにしてください。

    ただし、場合によっては、このオプションをオフにする必要があります。たとえば、入力メソッド エンジン(IME)を作成している場合です。アプリが強制停止されると、現在のキーボードとして選択されている IME の選択が解除されますが、これは望ましくありません。

    デフォルト: オン

    Before Launch 起動前オペレーションを定義するをご覧ください。

    [Debugger] タブ

    [Debugger] タブでデバッグ オプションを指定します。

    C および C++ コードの場合、Android Studio では LLDB デバッガが使用されます。通常の Android Studio UI に加えて、デバッガ ウィンドウに [LLDB] タブが表示され、デバッグ中に LLDB コマンドを入力することが可能になります。Android Studio で情報を表示するために使用されるのと同じコマンドをデバッガ UI に入力して、追加の操作を実行できます。

    C および C++ プロジェクトでは、[Debugger] タブで、シンボル ディレクトリに加えて LLDB のスタートアップ コマンドとポストアタッチ コマンドを追加できます。そのためには、次のようなボタンを使用します。

    • [Add] - ディレクトリまたはコマンドを追加します。
    • [Remove] - ディレクトリまたはコマンドを選択してこのボタンをクリックすると、そのアイテムが削除されます。
    • [Up] - ディレクトリまたはコマンドを選択してこのボタンをクリックすると、リスト内でアイテムが上に移動します。
    • [Down] - ディレクトリまたはコマンドを選択してこのボタンをクリックすると、リスト内でアイテムが下に移動します。

    Android Studio を使用したデバッグの手順については、アプリをデバッグするをご覧ください。

    項目名 説明
    Debug type

    次のいずれかのオプションを選択します。

    • [Java only] - Java コードのみをデバッグします。
    • [Detect Automatically] - Android Studio により、プロジェクトに最適なデバッグタイプが選択されます。
    • [Native Only] - ネイティブ C または C++ コードをデバッグします。
    • [Dual (Java + Native)] - 2 つの独立したデバッグ セッションで、Java コードとネイティブ コードをデバッグします。

    推奨されるオプションは、プロジェクトに適したデバッグタイプが自動的に選択される [Detect Automatically] です。

    Symbol Directories

    シンボル ファイルを追加して、Android Studio の外部で生成された C または C++ の情報をデバッガに供給する場合は、このフィールドで 1 つ以上のディレクトリを追加できます。Android Studio では、これらのディレクトリ内のファイルが、Android Plugin for Gradle で生成されたファイルよりも優先されます。デバッガは、必要な情報が見つかるまでディレクトリを上から下に順次検索します。ディレクトリ内ではすべてのファイルが再帰的に検索されます。リストを最適化して検索時間を短縮するには、使用頻度の高いディレクトリをリストの上部に配置します。

    ツリーの上位階層にあるディレクトリを指定すると、すべてのサブディレクトリが検索されるため時間がかかります。特定のディレクトリを追加すると、検索時間を短縮できます。検索速度を短縮しつつデバッグに必要なすべてのファイルを検出するには、検索速度と検索範囲の適切なバランスを見出す必要があります。たとえば、各種の Android バイナリ インターフェース(ABI)用のサブディレクトリを含むディレクトリがある場合、特定の ABI 用のディレクトリを追加する方法とすべての ABI 用のディレクトリを追加する方法があります。上位レベルのディレクトリの検索には時間がかかりますが、別のデバイスでデバッグする場合は、その方がより確実でもあります。

    Gradle シンボル ファイルを含むディレクトリはデバッガによって自動的に使用されるため、追加する必要はありません。

    LLDB Startup Commands

    デバッガがプロセスにアタッチされる前に実行する LLDB コマンドを追加します。たとえば、次に示すコマンドでは、環境の設定を定義できます。

    settings set target.max-memory-read-size 2048

    LLDB は、コマンドを上から下に順次実行します。

    LLDB Post Attach Commands

    デバッガがプロセスにアタッチされた直後に実行する LLDB コマンドを追加します。次に例を示します。

    process handle SIGPIPE -n true -p true -s false

    LLDB は、コマンドを上から下に順次実行します。

    Host working directory LLDB の作業ディレクトリを指定します。
    Logging: Target channels

    LLDB のログオプションを指定します。Android Studio では、経験則に基づいて、低速になりすぎず、かつ、問題のトラブルシューティングに必要な情報が記録されるように、デフォルト オプションが設定されています。通常、ログは Android Studio バグレポートでリクエストされます。デフォルトは次のとおりです。

    lldb process:gdb-remote packets

    より多くの情報を収集するには、このデフォルト値を変更します。たとえば、次のログオプションでは、特定の platform に関する情報が収集されます。

    lldb process platform:gdb-remote packets

    すべてのログコマンドの一覧を表示するには、Android Studio の LLDB シェル ウィンドウで log list コマンドを入力します。

    Android Studio はデバイスログを次の場所に配置します。ここで、ApplicationId はビルドされた APK マニフェストで使用される一意のアプリケーション ID で、デバイスと Google Play ストアでアプリが識別されます。

    /data/data/ApplicationId/lldb/log

    複数のユーザーがデバイスにアクセスする場合、ログは下記の場所に格納されます。AndroidUserId は、デバイス上のユーザーを示す一意の ID です。

    /data/user/AndroidUserId/ApplicationId/lldb/log

    リモート デバッグで LLDB を使用する方法については、リモート デバッグをご覧ください。

    Before Launch 起動前オペレーションを定義するをご覧ください。

    [Profiling] タブ

    Android 7.1 以前を搭載しているデバイスの場合、Android Profiler の特定の機能を有効にするには、[Enable advanced profiling] オプションをオンにする必要があります。

    Android Tests

    使用する必要があるテスト テンプレートは、ソースセットによって異なります。Android Instrumented Tests は、インストゥルメンテーション テスト用のテンプレートです。Android JUnit は、ローカル単体テスト用のテンプレートです。

    注: Firebase Test Lab を使用してさまざまなデバイスをテストする場合は、Android JUnit テンプレートを使用してインストゥルメンテーション テストを定義します。詳細については、Firebase Test Lab でテストを実行するをご覧ください。

    下記のタブの説明は、Android Instrumented Tests テンプレートのタブとフィールドを対象としています。Android JUnit テスト テンプレートのタブとフィールドについては、IntelliJ の Run/Debug Configuration: JUnit ページをご覧ください。

    [General] タブ

    [General] タブでは、テストの場所、インストルメンテーション ランナー、adb シェル、デプロイのオプションを指定できます。

    項目 説明
    Module この構成を適用するモジュールを選択します。
    テスト

    この領域では、テストを実行する場所を指定します。

    • [All in module] - 選択したモジュールからすべてのテストを起動します。
    • [All in package] - [Package] フィールドで指定されたパッケージから、すべてのテストを起動します。名前を入力するか、または [More] をクリックしてダイアログでパッケージを選択します。
    • [Class] - [Class] フィールドで指定されたクラスのテストを起動します。名前を入力するか、または [More] をクリックしてダイアログでクラスを選択します。
    • [Method] - メソッドのテストを起動します。[Class] フィールドで、メソッドを含むクラスを指定します。[Method] フィールドで、メソッドを指定します。名前を入力するか、または [More] をクリックしてダイアログでクラスまたはメソッドを選択します。
    Specific instrumentation runner(省略可能) インストゥルメンテーション ランナーの場所を入力します。あるいは、[More] をクリックして、ダイアログを使用します。build.gradle ファイルでインストルメンテーション ランナーの場所が指定されていますが、ここで指定した値によりオーバーライドされます。デフォルトは、通常、AndroidX TestAndroidJUnitRunner クラスです。
    追加オプション

    使用する adb am instrument オプションを入力します。コンポーネントは入力しないでください。たとえば、AndroidX Test AndroidJUnitRunner を使用している場合、このフィールドを使用してランナーに追加のオプション(-e size small など)を渡すことができます。

    デフォルト: オプションなし

    デプロイ ターゲットのオプション: ターゲット

    次のいずれかのオプションを選択します。

    • [Open Select Deployment Target Dialog] - [Select Deployment Target] ダイアログを開いて、仮想デバイスまたはハードウェア デバイスを選択します。
    • [USB Device] - USB ポートを介して開発用コンピュータに接続しているハードウェア デバイスを使用します。複数のデバイスが存在する場合、デバイスを選択するダイアログが表示されます。
    • [Emulator] - 仮想デバイスを使用します。構成内の AVD を選択できます。選択しなかった場合、リスト内の最初の AVD が使用されます。
    • [Firebase Test Lab Device Matrix] - Firebase Test Lab を使用してテストを実行するをご覧ください。
    Deployment Target Options: Use same device for future launches [Select Deployment Target] ダイアログで選択したデバイスを今後も自動的に使用するには、このオプションをオンにします。選択されたデバイスが使用できない場合、ダイアログが表示されます。デフォルト: オフ
    Before Launch 起動前オペレーションを定義するをご覧ください。

    [Miscellaneous] タブ

    [Miscellaneous] タブには、logcat とインストールのオプションがあります。

    項目名 説明
    Logcat: Clear log before launch このオプションをオンにすると、アプリを起動する前に、以前のセッションのデータがログファイルから削除されます。デフォルト: オフ
    インストール オプション: APK が変更されていない場合はインストールをスキップ このオプションをオンにすると、APK が変更がされていないことが Android Studio により検出された場合、APK は再デプロイされません。変更がなくても APK が強制的にインストールされるようにするには、このオプションをオフにします。デフォルト: オン
    Installation Options: Force stop running application before launching activity

    このオプションをオンにすると、変更がないため APK の再インストールが不要であると Android Studio が判断した場合、強制的にアプリが停止されます。そのため、アプリはデフォルトのランチャー アクティビティから起動されます。このオプションをオフにすると、Android Studio はアプリを強制停止しません。

    このオプションは、APK をインストールするかどうかを制御する 1 つ前のオプションと連動しています。明示的に毎回インストールを強制する場合以外は、両方の [Installation Options] フィールドをデフォルトのままにしてください。

    ただし、場合によっては、このオプションをオフにする必要があります。たとえば、入力メソッド エンジン(IME)を作成している場合です。アプリが強制停止されると、現在のキーボードとして選択されている IME の選択が解除されますが、これは望ましくありません。

    デフォルト: オン

    Before Launch 起動前オペレーションを定義するをご覧ください。

    [Debugger] タブ

    [Debugger] タブでデバッグ オプションを指定します。

    C および C++ コードの場合、Android Studio では LLDB デバッガが使用されます。通常の Android Studio UI に加えて、デバッガ ウィンドウに [LLDB] タブが表示され、デバッグ中に LLDB コマンドを入力することが可能になります。Android Studio で情報を表示するために使用されるのと同じコマンドをデバッガ UI に入力して、追加の操作を実行できます。

    C および C++ プロジェクトでは、[Debugger] タブで、シンボル ディレクトリに加えて LLDB のスタートアップ コマンドとポストアタッチ コマンドを追加できます。そのためには、次のようなボタンを使用します。

    • [Add] - ディレクトリまたはコマンドを追加します。
    • [Remove] - ディレクトリまたはコマンドを選択してこのボタンをクリックすると、そのアイテムが削除されます。
    • [Up] - ディレクトリまたはコマンドを選択してこのボタンをクリックすると、リスト内でアイテムが上に移動します。
    • [Down] - ディレクトリまたはコマンドを選択してこのボタンをクリックすると、リスト内でアイテムが下に移動します。

    Android Studio を使用したデバッグの手順については、アプリをデバッグするをご覧ください。

    項目名 説明
    Debug type

    次のいずれかのオプションを選択します。

    • [Java only] - Java コードのみをデバッグします。
    • [Detect Automatically] - Android Studio により、プロジェクトに最適なデバッグタイプが選択されます。
    • [Native Only] - ネイティブ C または C++ コードをデバッグします。
    • [Dual (Java + Native)] - 2 つの独立したデバッグ セッションで、Java コードとネイティブ コードをデバッグします。

    推奨されるオプションは、プロジェクトに適したデバッグタイプが自動的に選択される [Detect Automatically] です。

    Symbol Directories

    シンボル ファイルを追加して、Android Studio の外部で生成された C または C++ の情報をデバッガに供給する場合は、このフィールドで 1 つ以上のディレクトリを追加できます。Android Studio では、これらのディレクトリ内のファイルが、Android Plugin for Gradle で生成されたファイルよりも優先されます。デバッガは、必要な情報が見つかるまでディレクトリを上から下に順次検索します。ディレクトリ内ではすべてのファイルが再帰的に検索されます。リストを最適化して検索時間を短縮するには、使用頻度の高いディレクトリをリストの上部に配置します。

    ツリーの上位階層にあるディレクトリを指定すると、すべてのサブディレクトリが検索されるため時間がかかります。特定のディレクトリを追加すると、検索時間を短縮できます。検索速度を短縮しつつデバッグに必要なすべてのファイルを検出するには、検索速度と検索範囲の適切なバランスを見出す必要があります。たとえば、各種の Android バイナリ インターフェース(ABI)用のサブディレクトリを含むディレクトリがある場合、特定の ABI 用のディレクトリを追加する方法とすべての ABI 用のディレクトリを追加する方法があります。上位レベルのディレクトリの検索には時間がかかりますが、別のデバイスでデバッグする場合は、その方がより確実でもあります。

    Gradle シンボル ファイルを含むディレクトリはデバッガによって自動的に使用されるため、追加する必要はありません。

    LLDB Startup Commands

    デバッガがプロセスにアタッチされる前に実行する LLDB コマンドを追加します。たとえば、次に示すコマンドでは、環境の設定を定義できます。

    settings set target.max-memory-read-size 2048

    LLDB は、コマンドを上から下に順次実行します。

    LLDB Post Attach Commands

    デバッガがプロセスにアタッチされた直後に実行する LLDB コマンドを追加します。次に例を示します。

    process handle SIGPIPE -n true -p true -s false

    LLDB は、コマンドを上から下に順次実行します。

    Host working directory LLDB の作業ディレクトリを指定します。
    Logging: Target channels

    LLDB のログオプションを指定します。Android Studio では、経験則に基づいて、低速になりすぎず、かつ、問題のトラブルシューティングに必要な情報が記録されるように、デフォルト オプションが設定されています。通常、ログは Android Studio バグレポートでリクエストされます。デフォルトは次のとおりです。

    lldb process:gdb-remote packets

    より多くの情報を収集するには、このデフォルト値を変更します。たとえば、次のログオプションでは、特定の platform に関する情報が収集されます。

    lldb process platform:gdb-remote packets

    すべてのログコマンドの一覧を表示するには、Android Studio の LLDB シェル ウィンドウで log list コマンドを入力します。

    Android Studio はデバイスログを次の場所に配置します。ここで、ApplicationId はビルドされた APK マニフェストで使用される一意のアプリケーション ID で、デバイスと Google Play ストアでアプリが識別されます。

    /data/data/ApplicationId/lldb/log

    複数のユーザーがデバイスにアクセスする場合、ログは下記の場所に格納されます。AndroidUserId は、デバイス上のユーザーを示す一意の ID です。

    /data/user/AndroidUserId/ApplicationId/lldb/log

    リモート デバッグで LLDB を使用する方法については、リモート デバッグをご覧ください。

    Before Launch 起動前オペレーションを定義するをご覧ください。

    App Engine DevAppServer

    この実行 / デバッグ構成は、Google Cloud Platform に適用されます。詳細については、バックエンドの実行、テスト、デプロイをご覧ください。このページに記載された手順でプロジェクトを build.gradle ファイルに同期すると、Android Studio によって App Engine DevAppServer 構成が作成されます。

    IntellJ IDEA の App Engine Server テンプレートは、これとは別のテンプレートであり、Android Studio では利用できないことにご注意ください。

    項目 説明
    単一インスタンスのみ 一度に実行する実行 / デバッグ構成のインスタンスを 1 つに制限するには、このオプションをオンにします。そうすると、同じ構成を同時に複数実行することができなくなります。デフォルト: オン
    Module この構成を適用するモジュールを選択します。
    build.gradle 構成との同期 App Engine モジュールを追加して build.gradle ファイルと同期すると、App Engine DevAppServer 構成の各フィールドが自動的に入力されます(推奨)。 また、[File] > [Sync Project with Gradle Files] を選択しても、プロジェクトが同期されます。デフォルト: オン
    App Engine SDK ローカルマシン上の Google App Engine SDK for Java のパスを入力します。または、[...] をクリックしてダイアログで選択します。
    War Path ローカル開発用サーバーにデプロイするアプリの Web Application Archive(WAR)ディレクトリのパスを入力します。または、[...] をクリックしてダイアログで選択します。
    VM 引数

    DevAppServer を起動するために VM に渡すコマンドライン オプションを指定します。オプションを指定する際には、以下の点に注意してください。

    • 複数の選択肢を区切るには、スペースを使用します。
    • オプションにスペースが含まれる場合は、スペースを引用符(" ")で囲みます。
    • オプションに引用符が含まれる場合は、引用符の前にバックスラッシュ(\")を追加します。

    VM オプションの詳細については、使用している J2SE バージョン(javaJDK 7javaJDK 8 など)のドキュメントをご覧ください。

    デフォルト: オプションなし

    Server Address サーバーに使用するホストアドレスを入力します。ネットワーク上の別のパソコンから開発用サーバーにアクセスできるようにするため、アドレスの指定が必要な場合があります。アドレスに 0.0.0.0 を指定すると、localhost アクセスと hostname アクセスの両方が可能になります。デフォルト: localhost
    Server Port サーバーに使用するポート番号を入力します。デフォルト
    Disable Check for App Engine SDK Updates 指定すると、開発用サーバーは SDK の新しいリリースが利用可能かどうかをチェックするために App Engine に接続しません。デフォルトでは、サーバーは起動時に新しいバージョンを確認し、利用可能な新しいバージョンがある場合はメッセージを出力します。
    Before Launch 起動前オペレーションを定義するをご覧ください。

    Wear OS の実行 / デバッグ構成

    Wear OS ウォッチフェイス追加機能、タイル、ウォッチフェイスのテンプレートでは、仮想デバイスまたはハードウェア デバイスで Wear OS アプリを実行またはデバッグできます。テンプレートのほとんどの構成オプションは、Android アプリのオプションと同じです。Wear OS の実行 / デバッグ構成に固有のオプションを以下に示します。

    • Wear の実行 / デバッグ構成のすべてにおいて、特定のウォッチフェイスの追加機能のデータソース、タイル、ウォッチフェイス(テンプレートによって異なります)を選択して、構成を適用する必要があります。通常、これらの各エンティティはコード内のクラスに対応しています。
    • Wear OS ウォッチフェイスの追加機能の実行 / デバッグ構成では、ウォッチフェイスの追加機能について、そのデータソースで提供されるデータを指定するスロットを選択する必要があります。ウォッチフェイスの上、右、下、左、背景に配置できます。
    • Wear OS ウォッチフェイスの追加機能の実行 / デバッグ構成では、ウォッチフェイスの追加機能について、そのデータソースで提供されるデータのタイプも選択する必要があります。選択できるタイプは、選択したウォッチフェイスの追加機能のデータソースによって提供されており、選択したスロットでサポートされているタイプに限られます。ウォッチフェイスの追加機能のデータタイプの一覧については、タイプと項目をご覧ください。

    または、次の画像に示すように、サーフェスの宣言の横にあるガターアイコンから、サーフェスを実行することもできます。

    WatchFaceService クラスの横にあるガターの実行ボタン。
    図 1. ガターアイコンを使用して、Wear OS サーフェスを直接実行します。