Meta QuestでADBを使う
Android Debug Bridge (ADB)は、
Android SDKに付属するコマンドラインツールです。これは、開発のあらゆる段階でMeta Questヘッドセットとやり取りをするために使うメインツールです。ADBは、アプリをインストールしたり、コンピューターからヘッドセットに他の重要なコマンドを発行したりするために必要となる、非常に多機能なツールです。
利用可能なコマンドとオプションのリストを見るには、ADBがインストールされていることを確認して、次を入力してください。
OSシェルから、USBで直接、またはWi-Fi接続を介してTCP/IPにより、Androidデバイスに接続して通信することが可能です。
デバイスをUSB経由で接続するには、互換性のあるUSBケーブルを使用してデバイスをPCにつなぎます。接続後、OSシェルを開き、次を入力します。
デバイスが正しく接続されている場合、ADBにデバイスのIDリストが次のように表示されます。
List of devices attached
ce0551e7 device
デバイスが検出されない場合、ADBは使用できません。ご使用のデバイスがリストにない場合、適切なUSBドライバーがインストールされていないことが考えられます(
Oculus ADBドライバーを参照)。Meta Horizonモバイルアプリで開発者モードがデバイスに対して有効になっていることもチェックします。USBケーブルやポートを変えることで接続の問題が解決されることもあります。
一般にはUSBでデバイスを接続するほうがTCP/IP接続よりも高速ですが、TCP/IP接続が必須の場合もあります。
TCP/IPを介して接続するには、まずデバイスがすでにUSBで接続されていることを確認してから、次のコマンドを使ってそのIPアドレスを調べます。
出力は次のようになります。
10.0.30.0/19 dev wlan0 proto kernel scope link src 10.0.32.101
src
の後にあるのがデバイスのIPアドレスです。このIPアドレスとポート(普通は5555)を使用して、次のコマンドを発行します。
adb tcpip <port>
adb connect <ipaddress>:<port>
以下はその例です。
> adb tcpip 5555
restarting in TCP mode port: 5555
> adb connect 10.0.32.101:5555
connected to 10.0.32.101:5555
ここで、デバイスをUSBポートから外すことができます。adb devices
に表示されるのが単一のデバイスである限り、すべてのADBコマンドはWi-Fi経由でそのデバイスに対して発行されます。
Wi-Fi接続の使用を停止するには、OSシェルから次のADBコマンドを発行します。
ADBを使用してモバイルデバイスにAPKをインストールするには、ターゲットデバイスに接続した後、上記の説明に従って、ADBデバイスを使用して接続を確認します。その後、次のコマンドによりAPKをインストールします。
ターゲットデバイスにすでにインストールされている同じ名前の既存のAPKを上書きするには、-r
オプションを使用します。以下はその例です。
adb install -r C:\Dev\Android\MyProject\VrApp.apk
この方法でインストールすると、通常のQuestのインストール経路を迂回することに注意してください。そうすると、クラウドバックアップはこのアプリをインストール済みとして登録しないので、バックアップは実行されません。
詳しくは、Androidの
Android Debug Bridgeガイドの
アプリをインストールするのセクションをご覧ください。
以下のセクションでは、ADBの一般的な接続の問題に対する解決策を示します。
コンピューターがヘッドセットを検出できない場合、さまざまな理由が考えられます。次のようにすることをおすすめします。
- モバイル機器のMeta Questコンパニオンアプリで、開発者モードがオンになっていることを確認します。
- USBケーブルに問題がないかチェックします。別のUSBケーブルを使用してデバイスを接続してください。別のUSBケーブルがない場合は、他のAndroidデバイスを接続して、問題がUSBケーブルにあるかどうかを確認してください。
- コンピューター側に、ヘッドセットにアクセスするために必要なアクセス許可がすべて付与されていることを確認します。通常、USBケーブルでデバイスをコンピューターに接続すると、コンピューターからそのデバイスにアクセスする許可を求めるプロンプトが表示されます。誤ってアクセス許可を拒否してしまった場合は、いったんUSBケーブルを抜き、デバイスを再起動した後、ケーブルをもう一度接続してください。アクセス許可を求められたら、[許可する]を選択します。
- 一部のデバイスでは、VRアプリの実行中やADBがデバイスを待機している状態で接続すると、デバイスが検出されないことがあります。その場合は、Ctrl-Cを使用することにより、アプリを終了しADBを停止してから、デバイスを接続し直してみてください。または、以下のコマンドを使ってADBサービスを停止することもできます。停止後に、
adb kill-server
コマンドが実行されると、ADBサービスが自動的に再開されます。
adb
コマンドが見つからないというエラーがターミナルから返される- まず、
adb
が正しくインストールされているかどうか確認します。/Android/SDK/platform-tools/
フォルダに移動し、adb
ツールがあるかどうか確認します。ツールがない場合はスタンドアローンのAndroid SDKプラットフォームツールパッケージをダウンロードしてください。 - 環境変数が正しく設定されているかどうか確認します。
- adbを実行するには、
/Android/SDK/platform-tools/
フォルダから、./
を先頭に付加してadb
コマンドを実行します。例えば、adb devices
ではなく、./adb devices
を使います。
一度に複数のデバイスを接続することもできます。これは、主にクライアント/サーバー型のアプリをデバッグする場合に有用です。同じデバイスがWi-FiとUSBで同時に接続されていると、ADBではそのデバイスが2つのデバイスとして表示されることに注意してください。デバイスが複数リストされている場合、-s
スイッチを使用して、ADBに対しどのデバイスがターゲットなのかを指定しなければなりません。例えば、adb devices
で次のように表示されたとします。
List of devices attached
ce0551e7 device
10.0.32.101:5555 device
リストされたデバイスは2つの別個のデバイスである可能性もありますが、1つのデバイスがWi-Fi経由とUSB差し込み(充電のためなど)の両方で接続されている可能性もあります。そのような場合、すべてのADBコマンドは次の形で指定する必要があります(<device id>はadb devices
で報告される識別情報)。
adb -s <device id> <command>
例えば、TCP/IPを介して接続されているデバイスにlogcatコマンドを発行するには、次のようにします。
adb -s 10.0.32.101:55555 logcat -c
USBで接続されているデバイスに同じコマンドを発行するには、次のようにします。
開発者ツールについて詳しくは、次の資料をご覧ください。