Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

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

コードを実行、デバッグ、またはテストする際、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] ダイアログ

このダイアログでは、左パネルの Defaults フォルダの下にデフォルト テンプレートが表示され、Defaults フォルダの上には、定義済みの構成がテンプレート タイプ別にグループ化されて表示されます。ダイアログのサイズを変更すると、隠れている項目を表示できます。

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

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

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

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

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

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

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

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

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

  1. [Run/Debug Configurations] ダイアログを開きます
  2. [Add New Configuration] をクリックします。
  3. デフォルト テンプレートを 1 つ選択します。
  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] プルダウン リストで、[Save] を選択します。ツールバーが表示されない場合は、[View] > [Toolbar] をクリックします。

図 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] プルダウン リストで、[Save] を選択します。

図 3. 構成の保存

保存した構成を使用してアプリを実行またはデバッグする

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

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

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

  3. [Run] > [Run] または [Run] > [Debug] を選択します。
  4. または、[Run] または [Debug] をクリックします。

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

実行 / デバッグ構成を編集するには、次のステップを実行します。

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. [Run/Debug Configurations] ダイアログを開きます
  2. 構成を含むフォルダを選択します。
  3. [Create New Folder] をクリックします。
  4. [Folder Name] に名前を入力します。
  5. 同じテンプレート カテゴリのアイテムをフォルダにドラッグします。
  6. 同じテンプレート カテゴリのフォルダと構成を目的の位置にドラッグするか、[Move Up] と [Move Down] を使用して並べ替えます。
  7. [Apply] または [OK] をクリックします。

起動前オペレーションを定義する

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

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

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

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

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

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

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

タスクをリストから削除するには、次の手順を行います。

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

タスクを編集するには、次のステップを実行します。

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

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

タスク 説明
Run External tool Android Studio の外部アプリを実行します。[External Tools] ダイアログで、実行したいアプリを 1 つ以上選択して、[OK] をクリックします。アプリが Android Studio でまだ定義されていない場合は、[Create Tools] ダイアログで定義を追加します。詳細については、サードパーティ ツールの構成外部ツールをご覧ください。
Run Another Configuration 既存の実行 / デバッグ構成の 1 つを実行します。[Choose Configuration to Execute] ダイアログで、実行する構成を選択して [OK] をクリックします。
Make プロジェクトまたはモジュールをコンパイルします。実行 / デバッグ構成で特定のモジュールが指定されている場合は、Make Module コマンドが実行されます。モジュールが指定されていない場合は、Make Project コマンドが実行されます。
Make Project プロジェクトをコンパイルします。Android Studio により Make Project コマンドが実行されます。
Make, no error check このオプションは Make と同じですが、コンパイルの結果に関係なく実行 / デバッグ構成が実行される点が異なります。
Build Artifacts Android Studio ではサポートされません。
Run Gradle task Gradle タスクを実行します。表示されたダイアログで詳細を指定して、[OK] をクリックします。詳細については、Gradle をご覧ください。
Gradle-aware Make プロジェクトをコンパイルして Gradle を実行します。
App Engine Gradle builder 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 ドキュメントをご覧ください。

名前と共有の構成オプション

名前共有のオプションは構成にのみ適用されます。構成を作成するときは、名前を付けます。構成を共有したいときは、[Share] チェックボックスをオンにします。テンプレートは、名前を付けることも共有することもできません。

[Share] チェックボックスを使用すると、バージョン管理を介して、他のチームメンバーが実行 / デバッグ構成を利用できます。このオプションをオンにした場合、プロジェクトがバージョン管理システムにチェックインされると、プロジェクトがチェックアウトされたときに、実行 / デバッグ構成も一緒に組み込まれます。

Android Studio では、共有された実行 / デバッグ構成は、project_directory/.idea/runConfigurations/ フォルダの個々の XML ファイルに保存されます。詳細については、ディレクトリ ベースのプロジェクト形式をご覧ください。

Android App

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

[General] タブ

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

項目 説明
Module この構成を適用するモジュールを選択します。
Installation Options: Deploy

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

  • [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 アプリがインスタント エクスペリエンスをサポートする場合(つまり、新しいプロジェクトを作成する際にインスタント アプリのサポートを追加するか、インスタント対応の動的機能を 1 つ以上作成する場合)、インスタント対応モジュールをデプロイするには、[Deploy as instant app] の横にあるチェックボックスをオンにします。
Installation Options: Dynamic features to deploy 動的機能モジュールをアプリに組み込む場合は、アプリのデプロイ時に、必要な動的機能の横にあるチェックボックスをオンにします。このオプションは、アプリに動的機能が含まれている場合にのみ表示されます。

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

Installation Options: Install Flags 使用したい任意の 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 アプリリンクをテストする際にも使用できます。

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

-W

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

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

Deployment Target Options: Target

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

  • [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: Skip installation if APK has not changed. このオプションをオンにすると、APK が変更がされていないことが Android Studio により検出された場合、APK は再デプロイされません。変更がなくても APK が強制的にインストールされるようにするには、このオプションをオフにします。デフォルト: オン
Installation Options: Force stop running application before launching activity

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

このオプションは、APK をインストールするかどうかを制御する前のオプションと連動しています。明示的に毎回インストールを強制する場合以外は、両方の [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] - Java コードのみをデバッグします。
  • [Auto] - Android Studio により、プロジェクトに最適なデバッグタイプが選択されます。
  • [Native] - ネイティブ C または C++ コードをデバッグします。
  • [Dual] - 2 つの独立したデバッグ セッションで、Java コードとネイティブ コードをデバッグします。

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

Symbol Directories

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

ツリーの上位階層にあるディレクトリを指定すると、すべてのサブディレクトリを検索するのに時間がかかります。検索時間を短縮するには、特定のディレクトリを追加します。検索速度とデバッグに必要なファイルの検出の間で適切なバランスを見出す必要があります。たとえば、異なる Android Binary Interface(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 です。この 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 InstrumentedTests テンプレートはインストゥルメント化テスト用で、Android JUnit テンプレートはローカル単体テスト用です。

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

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

[General] タブ

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

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

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

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

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

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

Deployment Target Options: Target

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

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

[Miscellaneous] タブ

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

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

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

このオプションは、APK をインストールするかどうかを制御する前のオプションと連動しています。明示的に毎回インストールを強制する場合以外は、両方の [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] - Java コードのみをデバッグします。
  • [Auto] - Android Studio により、プロジェクトに最適なデバッグタイプが選択されます。
  • [Native] - ネイティブ C または C++ コードをデバッグします。
  • [Dual] - 2 つの独立したデバッグ セッションで、Java コードとネイティブ コードをデバッグします。

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

Symbol Directories

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

ツリーの上位階層にあるディレクトリを指定すると、すべてのサブディレクトリを検索するのに時間がかかります。検索時間を短縮するには、特定のディレクトリを追加します。検索速度とデバッグに必要なファイルの検出の間で適切なバランスを見出す必要があります。たとえば、異なる Android Binary Interface(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 です。この 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 では利用できません。

項目 説明
Single instance only 一度に実行する実行 / デバッグ構成のインスタンスを 1 つに制限するには、このオプションをオンにします。そうすると、同じ構成を同時に複数実行することができなくなります。デフォルト: オン
Module この構成を適用するモジュールを選択します。
Synchronize with build.gradle configuration 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 Args

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

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

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

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

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