물에 살고싶은 개발자

ADB를 이용한 Wi-Fi 디버깅 자동화 스크립트 본문

Android

ADB를 이용한 Wi-Fi 디버깅 자동화 스크립트

돼지사랑 2023. 9. 20. 12:43

안녕하세요!

오늘은 ADB를 이용하여 Wi-Fi를 통한 안드로이드 디버깅을 자동화하는 방법에 대해 알아보겠습니다.

이 스크립트를 사용하면 디바이스와 한번의 연결로도 Wi-Fi를 통해 디바이스에 앱을 설치하거나 디버깅할 수 있습니다.

아래 내용은 이 포스팅에 있는 내용을 자동화 하는것입니다. 윈도우 기준이니 맥이나 리눅스는 조금 다를수있습니다.

 

먼저, 전체 스크립트 코드를 살펴보겠습니다.

@echo off
setlocal enabledelayedexpansion

:: 디바이스 연결 확인
adb devices

:: TCP/IP로 ADB 재시작
adb tcpip 5555

:: 잠시 대기
timeout /t 2

:: 디바이스 IP 주소 가져오기
for /f "tokens=2 delims=:" %%a in ('adb shell ifconfig wlan0 ^| find "inet addr"') do (
    set TEMP_IP=%%a
    for /f "tokens=1 delims= " %%b in ("!TEMP_IP!") do set DEVICE_IP=%%b
)

:: Wi-Fi 연결
adb connect !DEVICE_IP!:5555

:: 연결 상태 확인
adb devices

echo Work completed. check adb devices status. Now you can debug over Wi-Fi.
pause >nul

:: 연결 해제
:: adb disconnect !DEVICE_IP!:5555

이제 각 줄의 의미를 이해하기 쉽게 비유를 통해 설명해보겠습니다.

  1. @echo off: 컴퓨터가 우리에게 불필요한 말을 하지 않게 하는 마법의 주문입니다. 마치 친구에게 "잠깐 조용히 해줘!"라고 말하는 것과 같아요.
  2. setlocal enabledelayedexpansion: 이것은 컴퓨터에게 "우리가 할 일을 잘 기억하고 있어!"라고 말해주는 것입니다.
  3. adb devices: 컴퓨터에게 "지금 연결된 디바이스가 뭐야?"라고 물어보는 것입니다.
  4. adb tcpip 5555: 컴퓨터에게 "Wi-Fi로 디바이스와 이야기할 거야!"라고 알려주는 것입니다.
  5. timeout /t 2: "잠깐 2초만 기다려!"라고 말하는 것과 같아요.
  6. for /f ...: 이 부분은 컴퓨터에게 "디바이스의 주소를 알아내줘!"라고 부탁하는 부분입니다.
    1. for /f: 이 부분은 파일이나 문자열에서 특정 패턴을 가진 데이터를 추출하기 위한 명령입니다. 여기서는 문자열에서 데이터를 추출하려고 합니다.
    2. "tokens=2 delims=:": 이 부분은 추출할 데이터의 패턴을 지정합니다. **delims=:**는 데이터를 : 기호를 기준으로 나누라는 의미이고, **tokens=2**는 나눈 데이터 중 두 번째 부분을 선택하라는 의미입니다.
    3. %%a: 이것은 추출된 데이터를 저장할 변수의 이름입니다.
    4. adb shell ifconfig wlan0: 이 명령은 디바이스의 네트워크 정보를 가져옵니다. **wlan0**은 Wi-Fi 연결을 나타냅니다.
    5. ^| find "inet addr": 이 부분은 가져온 네트워크 정보 중에서 "inet addr"라는 텍스트를 포함하는 부분만을 선택하라는 의미입니다. "inet addr"는 IP 주소를 나타내는 부분입니다.
    6. 이후 코드는 추출된 IP 주소에서 불필요한 공백을 제거하는 작업을 수행합니다:
    7. set TEMP_IP=%%a: 추출된 IP 주소를 임시 변수 **TEMP_IP**에 저장합니다.
    8. for /f "tokens=1 delims= " %%b in ("!TEMP_IP!") do set DEVICE_IP=%%b: 임시 변수에서 IP 주소만을 선택하여 DEVICE_IP 변수에 저장합니다.
  7. adb connect !DEVICE_IP!:5555: 이제 컴퓨터에게 "그 주소로 디바이스에 연결해줘!"라고 지시하는 것입니다.
  8. adb devices: "잘 연결됐어?"라고 다시 한번 확인하는 것입니다.
  9. echo ...: 이제 컴퓨터가 우리에게 "Wi-Fi로 디버깅할 수 있어! 연결을 끊으려면 키를 눌러!"라고 말해주는 것입니다.
  10. :: adb disconnect ...: 이 부분은 주석 처리되어 있어서 실행되지 않아요. 필요하면 주석을 해제하여 사용할 수 있습니다.

이렇게 간단한 스크립트를 통해 Wi-Fi를 이용한 디버깅을 자동화할 수 있습니다. 편리하게 사용해보세요!

Comments