모바일 앱 개발
ADB 기본 명령어 및 명령어를 활용한 앱 설치 자동화
하나공신
2021. 8. 24. 20:23
ADB란
안드로이드 디버그 브리지의 약자로, 안드로이드 기기와 통신할 수 있는 여러 명령어를 제공한다.
앱의 설치 및 디버깅과 같은 다양한 기기 작업에 도움이 된다.
ADB는 데몬을 활용하며, 클라이언트 <> 서버간의 통신으로 동작이 이루어진다.
- 클라이언트 : 명령어를 전송하는 개발 머신
- 데몬 : 명령어를 실행하는 역할, 각 기기에서 백그라운드 프로세스로 실행 됨
- 서버 : 클라이언트와 데몬 간의 통신을 관리하며, 마찬가지로 백그라운드 프로세스로 실행 됨
기본적으로 컴퓨터와 기기가 USB로 연결되어 있어야 가능하나,
안드로이드 OS 버전 11이상의 기기는 무선으로도 연결 가능하다.
자세한 내용은 링크에서 확인 가능
명령어 활용 예시
- 연결된 디바이스 조회
adb devices -l
- 앱(APK) 설치
adb install path_to_apk
- 스크린샷, 영상 녹화
// 스크린샷
adb shell screencap /sdcard/screen.png`
// 영상 녹화
screenrecord \[options\] filename
adb shell screenrecord /sdcard/demo.mp4
ADB 명령어 + 쉘 스크립트 활용 : 여러 기기에 앱 설치 자동화
윈도우나 Linux에서 제공하는 쉘 스크립트를 활용해서 여러 곳에 자동화를 적용할 수 있다.
아래와 같이 배치 파일을 만들어서 컴퓨터에 연결된 모든 기기에 빌드 설치를 한번에 할 수 있다!
@echo off
setlocal EnableDelayedExpansion
@REM 동일 경로에 지정한 keyword가 포함된 APK파일을 찾아서 txt 파일로 추출한다.
dir _keyword_.apk /O:D/b > build-name.txt
@REM 앱 설치를 위해 추출한 파일명을 변수로 저장한다.
set /p FILE\_NAME=<build-name.txt
@REM 총 설치 성공 횟수를 카운트하기 위한 변수
set /a INSTALL\_SUCCEED\_COUNT=-1
@REM 추출한 파일명 길이가 10자 이상인 경우에만 PK파일이 있다는 의미이므로 설치 시작
if %strlen% GEQ 10 (
for /f "tokens=*" %%f in ('adb.exe devices') do (
set devicestr=%%f
set apk=%%p
if "!devicestr!"=="!devicestr:List=!" (
for /f "tokens=1" %%d in ("!devicestr!") do (
set deviceid=%%d
@REM 설치 진행 과정을 알 수 있게 중간중간 LOG메세지 기록
echo 설치 중인 기기 [deviceid] : !deviceid!
echo 설치 중인 APK파일 : %FILE_NAME%
adb.exe -s !deviceid! install -r %CD%\%FILE_NAME%
)
)
@REM 설치 완료시마다 LOG메세지 기록
set /a INSTALL_SUCCEED_COUNT+=1
echo 1대 설치 완료!
)
) else (
@REM txt파일이 없다면 APK파일이 없다는 의미이므로 에러LOG를 출력하고 실행 종료
echo apk파일 경로를 다시 확인해주세요...
echo %FILE\_NAME%
echo %CD%%FILE\_NAME%
)
echo 총 %INSTALL\_SUCCEED\_COUNT%대 설치 완료 ...
pause