ハードウェア デバイス上でアプリを実行する

Android アプリをユーザー向けにリリースする前に、必ず実機でテストしてください。このページでは、Android Debug Bridge(adb)接続を介してデバッグやテストを実施するための開発環境と Android デバイスのセットアップ方法について説明します。

開発用デバイスのセットアップ

デバイスでデバッグを開始する前に、USB ケーブルと Wi-Fi のどちらを使用してデバイスに接続するかを決めます。その後、次の手順を行います。

  1. デバイスの設定アプリを開き、[開発者向けオプション] を選択して、[USB デバッグ] を有効にします(該当する場合)。

  2. デバイスを検出するようシステムをセットアップします。

    • ChromeOS: 追加の設定は必要ありません。
    • macOS: 追加の設定は必要ありません。
    • Windows: adb 用の USB ドライバをインストールします(該当する場合)。インストール ガイドと OEM ドライバへのリンクについては、OEM USB ドライバのインストールをご覧ください。
    • Ubuntu Linux: 次のとおりセットアップします。

      • adb を使用する各ユーザーは、plugdev グループに属している必要があります。plugdev グループに属していないことを示すエラー メッセージが表示された場合は、次のコマンドを使用してご自身を追加してください。
      sudo usermod -aG plugdev $LOGNAME
      

      グループはログイン時にのみ更新されるため、この変更を有効にするにはログアウトする必要があります。ログインし直したら、id を使用して plugdev グループに属していることを確認できます。

      • デバイスに対応する udev ルールがシステムにインストールされている必要があります。android-sdk-platform-tools-common パッケージには、コミュニティが管理している Android デバイス用の udev ルールのセットが含まれています。インストールするには、次のコマンドを使用します。
      apt-get install android-sdk-platform-tools-common
      

USB を使用してデバイスに接続する

セットアップして USB 経由で接続したら、Android Studio で実行アイコン をクリックし、デバイスでアプリをビルドして実行します。

次のように adb を使用してコマンドを発行することもできます。

  • android_sdk/platform-tools/ ディレクトリから adb devices コマンドを実行して、デバイスが接続されていることを確認します。接続されている場合、デバイスが一覧表示されます。
  • デバイスを対象にするには、-d フラグを指定して adb コマンドを発行します。

Wi-Fi を使用してデバイスに接続する

Android 11 以降では、Android Debug Bridge(adb)を介してワークステーションからアプリをワイヤレスでデプロイおよびデバッグできます。たとえば、USB 経由でデバイスを物理的に接続することなく、ドライバのインストールなどの USB 接続に一般的な問題に対処しなくても、デバッグ可能なアプリを複数のリモート デバイスにデプロイできます。

ワイヤレス デバッグを使用するには、ペア設定コードを使用してデバイスをワークステーションとペア設定する必要があります。まず、以下の手順を行います。

  1. ワークステーションとデバイスが同じワイヤレス ネットワークに接続されていることを確認します。
  2. デバイスに Android 11 以降が搭載されていることを確認します。詳しくは、Android のバージョンを確認して更新するをご覧ください。
  3. Android Studio の最新バージョンがインストールされていることを確認します。 こちらからダウンロードしてください。
  4. ワークステーションで SDK Platform-Tools を最新バージョンに更新します。

デバイスに接続する手順は次のとおりです。

  1. Android Studio を開き、実行構成メニューから [Pair Devices Using Wi-Fi] を選択します。
    実行構成のプルダウン
    図 1. 実行構成メニュー。

    図 2 に示すように、[Pair devices over Wi-Fi] ダイアログが表示されます。
    [Pair devices over Wi-Fi] ポップアップ ウィンドウのスクリーンショット
    図 2. QR コードまたはペア設定コードを使用してデバイスをペア設定するためのダイアログ
  2. デバイスの開発者向けオプションを有効にします。
  3. デバイスで Wi-Fi 経由のデバッグを有効にします。
    ワイヤレス デバッグ システムの設定を表示している Google Pixel のスクリーンショット。
    図 3. Google Pixel の [ワイヤレス デバッグ] 設定。
  4. [ワイヤレス デバッグ] をタップして、デバイスをペア設定します。
    1. デバイスを QR コードでペア設定するには、図 2 に示すように、[QR コードによるデバイスのペア設定] を選択して QR コードをスキャンします。
    2. デバイスをペア設定コードでペア設定するには、[Pair new devices over Wi-Fi] ダイアログで [Pair device with pairing code] を選択します。デバイスで [ペア設定コードによるデバイスのペア設定] を選択します。6 桁のコードが表示されます。デバイスが [Pair devices over Wi-Fi] ウィンドウに表示されたら、デバイスに表示された 6 桁のコードを入力して、[Pair] を選択します。
      ペア設定コード入力の例のスクリーンショット
      図 4. 6 桁のペア設定コード入力の例。
  5. ペア設定後、アプリをデバイスにデプロイできるようになります。

別のデバイスをペア設定する場合、またはワークステーションからこのデバイスを削除する場合:

  1. デバイスで [ワイヤレス デバッグ] に移動します。
  2. [ペア設定済みのデバイス] でワークステーション名をタップします。
  3. [削除] を選択します。

デバイスのミラーリング

Android Studio の [Running Devices] ウィンドウで実機をミラーリングできます。デバイスのディスプレイを Android Studio に直接ストリーミングすることで、アプリの起動や操作、画面の回転、スマートフォンの開閉、音量の変更などの一般的な操作を Studio IDE から直接実行できます。

デバイスのミラーリングは、USB デバッグまたはワイヤレス デバッグが有効になっているデバイスがパソコンに接続されている場合に常に利用できます。ミラーリングの開始と停止は、[Running Devices] ウィンドウまたはデバイス マネージャー[View] > [Tool Windows] > [Device Manager])で行えます。また、設定([Settings] > [Tools] > [Device Mirroring])でデバイスのミラーリングを有効にするタイミングをカスタマイズすることもできます。

実行中のデバイスの UI

音声をリダイレクトする

デバイスのミラーリングを使用している場合は、接続された物理デバイスからパソコンのスピーカーやヘッドフォンに音声をリダイレクトできます。音声リダイレクトを使用すると、ヘッドフォンをパソコンに接続したまま、パソコンと接続されたスマートフォンの両方で音声を聴くことができます。デバイスを 1 つずつ手動で再接続する必要はありません。音声リダイレクトを有効にするには、[File](macOS では [Android Studio])> [Settings] > [Tools] > [Device Mirroring] に移動し、[Redirect audio from local devices] を選択します。Android 12 以降を搭載した Firebase Test Lab デバイスでは、設定に関係なく、音声は常にリダイレクトされます。

既知の問題

デバイスによっては、デバイスのミラーリングをサポートするのに十分なビットレートでエンコードできないことがあります。このような場合、[Running Devices] ウィンドウにエラーが表示されるほか、次のようなログが表示されることがあります。

2023-06-01 15:32:22,675 [  56094]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - Too many video encoder errors:
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - encoder: c2.android.vp8.encoder
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - mime type: video/x-vnd.on2.vp8
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max resolution: 640x640
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - min resolution: 2x2
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - alignment: 2x2
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max frame rate: 960
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max frame rate for 288x640: 960
2023-06-01 15:32:22,870 [  56289]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max bitrate: 20000000
2023-06-01 15:32:22,871 [  56290]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - terminated with code 1

プライバシーに関するお知らせ

Android Studio は、デバイスのミラーリング設定に基づいて、接続されているペア設定されたデバイスのデバイス ミラーリングを自動的に開始できます。ミラーリング情報とコマンドは暗号化されていないチャネルを介して渡されるため、adb tcpip コマンドで接続されたデバイスの情報が公開される可能性があります。また、Android Studio は暗号化されていないチャネルを使用して adb サーバーと通信するため、ホストマシン上の他のユーザーによってミラーリング情報が傍受される可能性があります。

デバイスの接続のトラブルシューティング

デバイスが Android Studio に接続されない場合は、問題を解決するために以下の手順を試してください。

Connection Assistant を使用したトラブルシューティング

Connection Assistant では、ADB 接続を介してデバイスを設定、使用する場合に役立つ手順を確認できるようになりました。

このアシスタントを起動するには、[Tools] > [Troubleshoot Device Connections] を選択します。

Connection Assistant では、[Assistant] パネルの一連のページで、手順、状況に沿った操作、接続されているデバイスのリストを確認できます。必要に応じてページを操作するには、[Assistant] パネルの下部にある [Next] ボタンと [Previous] ボタンを使用します。

  • USB 経由でデバイスを接続する: Connection Assistant では、まず USB 経由でデバイスを接続するよう求められた後、接続済みのデバイスの新規スキャンを開始できる [Rescan USB devices] ボタンが表示されます。
  • USB デバッグを有効にする: 次に、デバイス上の開発者向けオプションに、USB デバッグを有効にする方法が示されます。
  • adb サーバーを再起動する: それでも利用可能なデバイスのリストにデバイスが表示されない場合は、Connection Assistant の最後のページにある [Restart ADB server] ボタンを使用します。adb サーバーを再起動すると、adb はデバイスを再度スキャンします。それでも利用可能なデバイスのリストにデバイスが表示されない場合は、次のセクションのトラブルシューティング手順を試してください。

USB 接続の問題を解決する

Connection Assistant が USB 経由でデバイスを検出できない場合は、問題を解決するために以下のトラブルシューティング手順を試してください。

Android Studio が Android Emulator に接続されることを確認する

Android Studio と Android Emulator 間の接続が問題の原因であるかどうかを確認するには、次の手順を行います。

  1. デバイス マネージャーを開きます
  2. まだ作成していない場合は、新しい AVD を作成します。
  3. AVD を使用してエミュレータを実行します。
  4. 次のいずれかを行います。
    • Android Studio がエミュレータに接続できない場合は、最新の SDK Platform-Tools をダウンロードしてからもう一度試します。
    • エミュレータが正常に起動する場合は、次のセクションの説明に沿って USB ケーブルを確認します。

USB ケーブルを確認する

問題の原因が USB ケーブルの欠陥にあるかどうかを確認するには、このセクションの手順を実施します。

別の USB ケーブルがある場合:

  1. 別のケーブルを使用してデバイスを接続します。
  2. Connection Assistant がデバイスを検出できるかどうかを確認します。
  3. デバイスが検出されない場合は、最初のケーブルをもう一度試してください。
  4. それでもデバイスが検出されない場合は、問題がデバイスにあると想定し、次のセクションで説明するようにデバイスが開発用にセットアップされているかどうかを確認します。

別の USB ケーブルはないが、別の Android デバイスはある場合:

  1. 2 つ目のデバイスをコンピュータに接続します。
  2. Connection Assistant が 2 つ目のデバイスを検出できる場合、問題は最初のデバイスにあると想定し、デバイスが開発用にセットアップされているかどうかを確認します。

    2 つ目のデバイスが検出されない場合、問題は USB ケーブルにある可能性があります。

デバイスが開発用にセットアップされているかどうかを確認する

問題がデバイスの設定によって引き起こされているかどうかを確認するには、次の手順を行います。

  1. 開発用デバイスのセットアップの手順に沿ってセットアップします。
  2. これで問題が解決しない場合は、デバイスの OEM のカスタマー サポートに問い合わせてください。カスタマー サポート担当者に、デバイスが adb を通じて Android Studio に接続できないことを伝えます。

ワイヤレス接続の問題を解決する

デバイスへのワイヤレス接続で問題が発生した場合は、問題を解決するために以下のトラブルシューティング手順を試してください。

ワークステーションとデバイスが前提条件を満たしているかどうかを確認する

ワイヤレス デバッグの前提条件を満たすには、次のことを確認します。

  • ワークステーションとデバイスが同じワイヤレス ネットワークに接続されていること。
  • デバイスに Android 11 以降が搭載されていること。詳しくは、Android のバージョンを確認して更新するをご覧ください。
  • Android Studio の最新バージョンがインストールされていること。Android Studio のメインページからダウンロードできます。
  • ワークステーションに最新バージョンの SDK Platform Tools がインストールされていること。

その他の既知の問題を確認する

Android Studio のワイヤレス デバッグに関する現在判明している問題と、その解決方法を以下に示します。

  • Wi-Fi に接続されない: 一部の Wi-Fi ネットワーク(企業の Wi-Fi ネットワークなど)では、P2P 接続がブロックされて Wi-Fi で接続できない場合があります。ケーブルを使用して接続するか、別の Wi-Fi ネットワークに接続してみてください。
  • Wi-Fi 経由の ADB が自動的にオフになることがある: デバイスが Wi-Fi ネットワークを切り替えた場合、またはネットワークから切断された場合に発生することがあります。

RSA セキュリティ キー

Android 4.2.2(API レベル 17)以降のデバイスをコンピュータに接続すると、このコンピュータ経由のデバッグを許可するための RSA 鍵を受け入れるかどうかを尋ねるダイアログが表示されます。RSA 鍵は、ユーザー デバイスを保護するセキュリティ メカニズムです。デバイスのロックを解除してこのダイアログで許可しない限り、USB デバッグや他の adb コマンドを実行できません。