본문 바로가기
프로그래밍/안드로이드

6. 개발 및 테스트 도구로서의 ADB 활용

by 완소루피 2024. 11. 12.
728x90
반응형

안드로이드 디버그 브리지(ADB)는 안드로이드 개발과 테스트를 위한 필수 도구입니다. 이를 통해 개발자는 앱의 설치, 디버깅, 테스트를 포함해 다양한 작업을 자동화하고 효과적으로 수행할 수 있습니다. 이 글에서는 ADB를 활용해 안드로이드 개발 및 테스트 환경에서 어떻게 활용할 수 있는지 살펴보고, 몇 가지 실용적인 예제를 소개합니다.

 


 

1. 앱 디버깅 및 설치 자동화

앱을 테스트할 때 새로운 빌드가 나올 때마다 APK 파일을 기기에 설치하는 작업은 번거로울 수 있습니다. ADB를 사용하면 간단히 adb install 명령어를 이용해 자동으로 앱을 설치하거나 업데이트할 수 있습니다.

예제 코드:

adb install -r /path/to/your_app.apk

 

위 명령어에서 -r 옵션은 기존 앱을 유지하면서 업데이트하는 역할을 합니다. 따라서 개발 중 빠르게 새로운 APK를 설치하고 기존 데이터를 유지하며 테스트할 수 있습니다.

 

2. 인텐트(Intent) 전송 및 테스팅

인텐트는 안드로이드 컴포넌트 간의 메시지 교환 수단입니다. ADB를 통해 인텐트를 직접 전송하여 특정 액티비티나 기능을 테스트할 수 있습니다.

인텐트 전송 예제 앱의 특정 액티비티를 열고자 할 때 ADB 명령어로 인텐트를 전송할 수 있습니다.

adb shell am start -n com.example.myapp/.MainActivity

이 명령어는 com.example.myapp의 MainActivity를 실행합니다. 인텐트를 통해 데이터를 전달하는 것도 가능합니다.

데이터 전달 예제

adb shell am start -n com.example.myapp/.MainActivity -e "key" "value"

 

위 명령어는 key라는 이름으로 value 값을 인텐트를 통해 MainActivity에 전달합니다.

 

 

 

3. Android Device Emulator 제어

에뮬레이터는 다양한 기기 환경을 테스트할 수 있는 편리한 도구입니다. ADB 명령어를 사용하여 에뮬레이터를 제어하고, 여러 가상 디바이스를 실행할 수 있습니다.

에뮬레이터 연결 예제 에뮬레이터에 연결하려면 먼저 에뮬레이터의 포트를 확인하고 연결합니다. 일반적으로 에뮬레이터는 5554부터 포트를 할당받습니다.

adb connect localhost:5554

 

에뮬레이터 종료 에뮬레이터를 종료하려면 다음 명령어를 사용합니다.

adb -s emulator-5554 emu kill

 

위치 설정 예제 앱 테스트 시 가상의 위치를 설정하여 위치 기반 기능을 테스트할 수 있습니다.

adb emu geo fix 37.7749 -122.4194

이 명령어는 에뮬레이터의 위치를 샌프란시스코 좌표(위도 37.7749, 경도 -122.4194)로 설정합니다.

 

4. UI 테스트 자동화

ADB를 통해 UI 테스트를 자동화하는 방법도 있습니다. 안드로이드의 UI Automator나 Espresso 같은 UI 테스트 프레임워크와 연동할 수 있으며, 기본적인 터치나 스크롤 이벤트는 ADB 명령어만으로도 구현 가능합니다.

예제 코드:

# 화면에서 특정 좌표 터치
adb shell input tap 300 400

# 특정 시간 동안 스와이프
adb shell input swipe 300 1000 300 500 1000

 

위 코드는 터치와 스와이프 동작을 통해 UI 상호작용을 자동화하는 예제입니다. 좌표는 기기에 따라 다를 수 있으니 직접 확인하여 테스트에 맞게 설정해야 합니다.

 

5. 로그 분석을 통한 오류 파악

디버깅 과정에서 로그는 필수적입니다. adb logcat 명령어를 통해 실시간 로그를 확인할 수 있습니다. 이 로그는 시스템, 앱, 오류, 디버그 정보 등을 포함하고 있으며 필터링 옵션을 사용해 원하는 정보만 확인할 수 있습니다.

예제 코드:

# 특정 태그의 로그만 보기
adb logcat -s "MyAppTag"

 

위 명령은 "MyAppTag" 태그를 가진 로그만 출력합니다. 앱 내 특정 부분에서 발생하는 오류나 중요한 정보를 빠르게 확인하고 싶을 때 유용합니다.

 

6. 화면 캡처 및 녹화

테스트 중 발견된 문제를 기록하거나 화면 상태를 캡처하여 개발팀과 공유할 때 ADB를 통해 스크린샷을 찍거나 화면을 녹화할 수 있습니다.

예제 코드:

# 스크린샷
adb shell screencap -p /sdcard/screenshot.png
adb pull /sdcard/screenshot.png .

# 화면 녹화
adb shell screenrecord /sdcard/screenrecord.mp4
adb pull /sdcard/screenrecord.mp4 .

adb pull 명령어를 통해 로컬 시스템으로 파일을 다운로드할 수 있습니다. 이를 통해 문제 상황을 공유하는 데 유용합니다.

 

요약 및 다음 단계

ADB는 안드로이드 개발과 테스트에 있어 강력한 도구입니다. 앱 설치, 디버깅, UI 테스트, 로그 확인, 스크린샷 등 다양한 기능을 제공하여 개발자의 효율성을 높여줍니다. 이 글에서 소개한 예제와 함께 ADB 명령어를 연습해보며, 더 나아가 자동화 스크립트를 작성하여 일상적인 개발 작업을 자동화하는 방법을 탐구해보세요.

728x90
반응형