ADB(Android Debug Bridge)

ADB는 Android 에뮬레이터 및 연결된 디바이스와 상호 작용할 수 있기 때문에 개발자에게 중요한 도구입니다. ADB 설명서에 여러 가지 기능이 설명되어 있으며, 다음은 유용한 명령 중 일부입니다.

  • adb kill-serveradb 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 명령을 사용하여 자동으로 앱을 스패닝하는 3단계

다음 명령을 사용하여 ADB로 이 제스처를 시뮬레이션할 수 있습니다.

adb shell input touchscreen swipe 675 1780 1350 1500 3000

처음 4개 값은 끌기 제스처의 시작 및 끝 좌표이고, 최종 값은 경과 시간(밀리초)입니다. 너무 빠르게 끌면 앱이 스팬되지 않고 다른 화면에 "플링"되기 때문에 시간이 중요합니다. 3초가 적당합니다.

UI 테스트의 일부로 앱 스패닝 및 기타 제스처를 시뮬레이션할 수도 있습니다.

ADB 명령을 사용하여 디버그

ADB 명령을 사용하여 디버그하려면 다음 단계를 수행합니다.

  1. 에뮬레이터 디바이스 ID 찾기

    C:\>adb devices을 실행합니다.

    emulator-5554   device
    
  2. 디버그하려는 패키지를 찾습니다.

    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
    
  3. 시작할 때 디버그하도록 앱 설정(-w 주목)

    adb shell am set-debug-app -w com.microsoft.device.display.samples.masterdetail을 실행합니다.

  4. 에뮬레이터에서 앱을 시작합니다.

    앱이 디버그가 연결되기를 기다리고 있는 팝업이 표시됩니다. 설정된 디버그를 매번 다시 실행해야 합니다(또는 --persistent 옵션 사용).

  5. Android Studio 디버거 연결

    Android Studio 메뉴 옵션에서 연결 디버거 실행을 >선택합니다. 에뮬레이터 및 프로세스가 나열됩니다.

  6. 소스 코드를 가리키고 중단점을 설정합니다.