😎

WSL2上でAndroid StudioでAndroidアプリケーションを、usbipd-winを使って快適に開発する

2023/09/03に公開

WSLにWindows Subsystem for Linux GUI(WSLg)の仕組みが追加されてから、WSL上でIDE等のGUIアプリケーションを動かしやすくなりました。

しかし、Androidアプリを開発する場合、USBで接続したAndroidの実機を使ってデバッグしたくなります。本記事ではusbipd-winを使ってWSL2上のUbuntu 22.04にAndroidデバイスを認識させ、WSL2で動作するAndroid Studioから直接アプリケーションをインストール・実行する方法を紹介します。

usbipd-winのインストール

usbipd-winをインストールするには、予めwingetをインストールしておきます。wingetをインストール後に以下のコマンドを実行して、PowerShell等でusbipd-winをインストールします。

PS C:\Users\horie-t> winget install usbipd

WSL上のUbuntuで以下のコマンドを実行して、ツール等をインストールします。

sudo apt install linux-tools-virtual hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip `ls /usr/lib/linux-tools/*/usbip | tail -n1` 20

以下はOS起動後に毎回必要そう。

sudo update-alternatives --install /usr/local/bin/usbip usbip `ls /usr/lib/linux-tools/*/usbip | tail -n1` 20

Android Studioのインストール・セットアップ

Android Studioのダウンロードサイトからアプリケーションをダウンロードし、インストール先ディレクトリで以下の例のように展開する。

tar xvf ~/Downloads/android-studio-2022.3.1.19-linux.tar.gz

Android デバイスに対応する udev ルールがシステムにインストールされている必要があるので、以下のコマンドを実行して、インストール・セットアップします。

sudo apt-get install -y android-sdk-platform-tools-common && sudo cp /lib/udev/rules.d/51-android.rules /etc/udev/rules.d/

adb を使用するユーザーは、plugdev グループに属している必要があるので、以下のコマンドを実行してグループに追加します。

sudo usermod -aG plugdev $LOGNAME

セットアップ完了後に一度WSLを停止して再起動する必要があるので、PowerShell等で以下のコマンドを実行します。

PS C:\Users\horie-t> wsl --shutdown

WSLにAndroidデバイスをアタッチして、Android Studioからアプリケーションを起動する

Android デバイスをPCにUSBで接続します。(Android側で開発者向けオプションを有効にしていない場合はこちらを参考に設定しておきます)

接続後、PowerShell等で以下のコマンドを実行してUSBデバイスをリストアップします。以下の例では BUSID1-3 でPixel 4aが認識されています。

PS C:\Users\horie-t> usbipd.exe wsl list
BUSID  VID:PID    DEVICE                                                        STATE
1-3    18d1:4ee7  Pixel 4a                                                      Not attached
1-5    27c6:639c  Goodix MOC Fingerprint                                        Not attached
1-6    0c45:6a1b  Integrated Webcam                                             Not attached
1-10   8087:0033  インテル(R) ワイヤレス Bluetooth(R)                           Not attached
2-1    0b95:1790  ASIX AX88179 USB 3.0 to Gigabit Ethernet Adapter #2           Not attached
4-2    04fe:000d  USB 入力デバイス                                              Not attached
4-3    056e:0101  USB 入力デバイス                                              Not attached
5-1    12d1:10b6  USB 入力デバイス, MateView GT                                 Not attached
5-2    10c4:92ca  USB 入力デバイス                                              Not attached

デバイスのBUSIDが確認できたら、以下のコマンド実行してデバイスをWSLにアタッチします。

usbipd.exe wsl attach --busid=<BUSID>

# 例
PS C:\Users\horie-t> usbipd.exe wsl attach --busid=1-3

WSL上でAndroid Studioのインストール先ディレクトリに移動して、Android Studioを以下のように起動します。

$ android-studio/bin/studio.sh

起動後に、以下のようにAndroid StudioのDevice ManagerにAndroidデバイスが認識されている事が分かります。

GitHubで編集を提案

Discussion