본문으로 바로가기

2강 ADB 를 이용한 WSL 에서 Window Android Virtual Device 접속

category 개발환경 2025. 2. 25. 22:18
반응형

1. WSL 내에 안드로이드 스튜디오 환경설정

 

2. WSL 내에 React Native  환경설정

 

 


 

WSL 에 리눅스가 가상머신에서 수행되고 있기때문에 WSL 내에 Android Studio 에서는 Virtual Android 를 실행할수 없습니다.

 

포트포워딩을 이용해서 윈도우에 ADB 를 리눅스로 포워딩해서 사용하겠습니다.

 

기본적으로 윈도우 , 리눅스 양쪽에 같은 버전에 ADB 가 설치되어 있어야 합니다.

 

윈도우에서 실행

PS C:\Windows\system32> adb --version
Android Debug Bridge version 1.0.41
Version 34.0.5-10900879
Installed as C:\Users\q7889\AppData\Local\Android\Sdk\platform-tools\adb.exe
Running on Windows 10.0.19045

 

 

우분투 리눅스

whitefox@DESKTOP-RKO8TLI:~$ adb --version
Android Debug Bridge version 1.0.41
Version 34.0.5-10900879
Installed as /home/whitefox/Android/Sdk/platform-tools/adb
Running on Linux 5.15.133.1-microsoft-standard-WSL2 (x86_64)
whitefox@DESKTOP-RKO8TLI:~$

 

 

버전이 같음을 확인

 


윈도우 adb 서버를 kill 한다.

adb kill-server
adb -a nodaemon server start


안드로이드 리스트 조회

emulator -list-avds

Nexus_6_API_30
Pixel_3a_API_34_extension_level_7_x86_64

 

 

 

 

 

안드로이드 실행

emulator @Nexus_6_API_30
emulator @Pixel_3a_API_34_extension_level_7_x86_64

 

 

에뮬레이터가 실행되면 윈도우 adb 서버에 접속정보가 보인다.

 

 

adb 에 연결된 디바이스 리스트


C:\Windows\system32>adb devices -l
* daemon not running; starting now at tcp:5037
* daemon started successfully
List of devices attached
emulator-5554          offline transport_id:1

5554 port 로 연결됨.

 

리눅스 환경파일 내용

vi /etc/profile  에 아래내용이 있어야 한다.

export DISPLAY=$(grep nameserver /etc/resolv.conf | awk '{print $2}'):0
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export JRE_HOME=/usr/lib/jvm/java-11-openjdk-amd64

export ANDROID_SDK_ROOT=/home/whitefox/Android/Sdk
PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools


export WSL_HOST=$(grep nameserver /etc/resolv.conf | awk '{print $2}')
export ADB_SERVER_SOCKET=tcp:$WSL_HOST:5037

 

 

 

윈도우에서  TCP 5037 포트를 리눅스(우분투 IP 로 포워딩한다.)

 

sudo apt install socat

socat -d -d TCP-LISTEN:5037,reuseaddr,fork TCP:$(cat /etc/resolv.conf | tail -n1 | cut -d " " -f 2):5037

 

 

리눅스에서 안드로이드 실행시 에뮬레이터가 보인다.

 

 

안드로이드를 종료한다.

 

 

 

React 환경설정

리눅스 새창에서 아래를 실행

socat -d -d TCP-LISTEN:5554,reuseaddr,fork TCP:$(cat /etc/resolv.conf | tail -n1 | cut -d " " -f 2):5554

 

 

vscode 에서 react expo 실행

 

 

안드로이드에 접속 되는걸 확인할수있다. react expo 는 5554 포트를 사용하고 있다.


            


참고) WSL 운분투에서 ReactNative 실행

https://blog.cloudian.in.th/2023/05/26/working-with-reactnative-expo-on-wsl2/


참고) socat                            

https://flower0.tistory.com/778

 

[네트워크][linux][windows] 네트워크 통신 테스트에 유용한 툴 "socat" 소개

네트워크 통신 테스트할 때, 유용한 툴을 소개합니다. 프록시 서버로 사용할 수도 있고, 간단한 소켓으로 만들 수도 있습니다. 강추!! Socat 이란? Socat은 Gerhard Rieger가 개발한 오픈소스 소프트웨어

flower0.tistory.com

 

 

 

반응형