ADB(Android Debug Bridge)
ADB는 Android 에뮬레이터 및 연결된 디바이스와 상호 작용할 수 있기 때문에 개발자에게 중요한 도구입니다. ADB 설명서에 여러 가지 기능이 설명되어 있으며, 다음은 유용한 명령 중 일부입니다.
- adb kill-server 및 adb start-server – 필요한 경우 ADB 서비스를 중지하고 시작합니다.
- adb devices – 사용 가능한 디바이스(에뮬레이터와 컴퓨터에 연결된 휴대폰 또는 태블릿 포함)를 나열합니다.
- adb install – APK 파일을 설치합니다.
- adb shell – 다음 예제와 같이 Android 시스템에서 명령을 실행합니다.
- adb shell pm list packages - 설치된 모든 패키지를 나열합니다.
- adb shell pm path com.example.someapp – 지정된 패키지의 파일 시스템 경로를 가져옵니다.
- adb pull – 에뮬레이터 또는 디바이스에서 파일을 추출합니다.
앱 스패닝 시뮬레이션
ADB의 또 다른 용도는 Surface Duo에서 앱의 스패닝 자동화와 같은 입력 명령을 시뮬레이션하는 것입니다. 다음 스크린샷은 창 맨 아래에서 핸들을 잡은 다음, 스팬 표시기가 두 화면을 모두 덮을 때까지 힌지 쪽으로 끄는 과정을 보여줍니다.
다음 명령을 사용하여 ADB로 이 제스처를 시뮬레이션할 수 있습니다.
adb shell input touchscreen swipe 675 1780 1350 1500 3000
처음 4개 값은 끌기 제스처의 시작 및 끝 좌표이고, 최종 값은 경과 시간(밀리초)입니다. 너무 빠르게 끌면 앱이 스팬되지 않고 다른 화면에 "플링"되기 때문에 시간이 중요합니다. 3초가 적당합니다.
UI 테스트의 일부로 앱 스패닝 및 기타 제스처를 시뮬레이션할 수도 있습니다.
ADB 명령을 사용하여 디버그
ADB 명령을 사용하여 디버그하려면 다음 단계를 수행합니다.
에뮬레이터 디바이스 ID 찾기
C:\>adb devices
을 실행합니다.emulator-5554 device
디버그하려는 패키지를 찾습니다.
adb shell pm list packages
을 실행합니다.package:com.android.managedprovisioning package:com.android.smspush package:com.android.wallpaper.livepicker package:com.android.storagemanager package:com.android.bookmarkprovider package:com.android.settings package:com.android.calculator2 package:com.android.vpndialogs package:com.android.email package:com.android.music
시작할 때 디버그하도록 앱 설정(-w 주목)
adb shell am set-debug-app -w com.microsoft.device.display.samples.masterdetail
을 실행합니다.에뮬레이터에서 앱을 시작합니다.
앱이 디버그가 연결되기를 기다리고 있는 팝업이 표시됩니다. 설정된 디버그를 매번 다시 실행해야 합니다(또는 --persistent 옵션 사용).
Android Studio 디버거 연결
Android Studio 메뉴 옵션에서 연결 디버거 실행을 >선택합니다. 에뮬레이터 및 프로세스가 나열됩니다.
소스 코드를 가리키고 중단점을 설정합니다.