Skip to content

Most visited

Recently visited

navigation

앱 디버깅

Android Studio에 포함된 디버그를 사용하면 Android 에뮬레이터나 연결된 Android 기기에서 실행 중인 앱을 디버깅할 수 있습니다. Android Studio 디버거를 사용하여 다음 작업을 수행할 수 있습니다.

디버깅을 시작하려면 툴바에서 Debug 를 클릭합니다. Android Studio가 APK를 빌드하고 디버그 키로 서명한 후 선택한 기기에 설치합니다. 그런 다음 이 APK를 실행하여 Debug 창에서 엽니다(그림 1 참조). C 및 C++ 코드를 프로젝트에 추가한 경우 Android Studio는 또한 LLDB 디버거Debug 창에서 실행하여 네이티브 코드를 디버깅합니다.

Debug를 클릭한 후에도 Select Deployment Target 창에 기기가 나타나지 않으면 기기를 연결하거나 Create New Emulator를 클릭하여 Android 에뮬레이터를 설정해야 합니다.

그림 1. 현재 스레드와 변수의 객체 트리를 보여주는 디버거 창.

연결된 기기나 에뮬레이터에서 앱이 이미 실행 중인 경우, 다음과 같이 디버깅을 시작할 수 있습니다.

  1. Attach debugger to Android process 를 클릭합니다.
  2. Choose Process 대화상자에서 디버거를 연결하려는 프로세스를 선택합니다.

    기본적으로, 디버거는 현재 프로젝트의 기기와 앱 프로세스를 표시할 뿐만 아니라 컴퓨터상의 연결된 모든 하드웨어 기기나 가상 기기를 표시합니다. 모든 기기상의 모든 프로세스를 표시하려면 Show all processes를 선택합니다. 예를 들어, 이 표시에는 앱에서 만든 모든 서비스와 시스템 프로세스가 포함됩니다.

    Debugger 메뉴에서 다른 버그 유형을 선택할 수 있습니다. 기본적으로, Android Studio는 프로젝트에 Java 또는 C/C++ 코드가 포함되었는지 여부에 따라 Auto 디버그 유형을 사용하여 최적의 디버거 옵션을 자동으로 선택합니다.

  3. OK를 클릭합니다.

    Debug 창이 나타납니다. 이 경우, 디버그 창 제목 오른쪽에 있는 두 개의 탭을 주목하세요. 하나는 네이티브 코드 디버깅용이고 다른 하나는 -java로 표시된 Java 코드 디버깅용입니다.

    별도의 디버깅 세션에는 다른 포트 번호와 별도의 탭이 있으며, 이 번호가 괄호로 탭에 표시됩니다.

  4. 디버깅 세션을 끝내려면 해당 세션의 탭을 클릭하고 Terminate 를 클릭합니다.

참고: Android Studio 디버거와 가비지 수집기는 느슨하게 통합됩니다. Android 가상 머신은 디버거 연결이 해제되기 전까지는 디버거가 인식하는 모든 객체가 가비지 수집되는 것을 막습니다. 이 결과, 디버거가 연결된 동안에 점차적으로 객체가 누적되게 됩니다. 예를 들어, 실행 중인 스레드를 디버거가 발견한 경우에는 해당 스레드가 종료된 후에도 연결된 Thread 객체는 가비지 수집되지 않습니다.

디버그 유형

기본적으로, Android Studio는 어떤 디버거를 사용할지 결정하기 위해 Auto 디버그 유형을 사용하므로, Java 및 C/C++ 코드 디버깅을 전환할 때 구성을 변경할 필요가 없습니다. 그러나, 특정 설정을 사용자 지정하거나(예: 기호 디렉토리 또는 LLDB 명령 추가) 다른 디버그 유형을 사용하기 위해 디버그 구성을 생성하거나 편집할 수 있습니다. 또한 실행 중인 Android 프로세스에 디버거를 연결할 때 Choose Process 대화상자의 Debugger 드롭다운 목록에서 디버그 유형을 선택할 수도 있습니다.

사용 가능한 디버그 유형은 다음과 같습니다.

Auto
디버깅 중인 코드에 가장 적합한 옵션을 Android Studio가 자동으로 선택하게 하려면 이 유형을 선택합니다. 예를 들어, C 또는 C++ 코드가 프로젝트에 있는 경우 Android Studio는 Hybrid 디버그 유형을 자동으로 사용합니다. 그렇지 않은 경우 Android Studio는 Java 디버그 유형을 사용합니다.
Java
Java로 작성된 코드만 디버그하려면 이 유형을 선택합니다. Java 디버거는 네이티브 코드에 설정된 모든 중단점이나 감시점을 무시합니다.
Native
LLDB만을 사용하여 코드를 디버그하려면 이 유형을 선택합니다. 이 디버그 유형을 사용할 경우에는 Java 디버거 세션 뷰를 사용할 수 없습니다. 기본적으로, LLDB는 네이티브 코드만 검사하며 Java 코드 내의 중단점을 무시합니다. Java 코드도 함께 디버그하려면, Auto 또는 Hybrid 디버그 유형으로 전환해야 합니다.
Hybrid
Java 코드 및 네이티브 코드 사이에 디버깅을 전환하려면 이 유형을 선택합니다. Android Studio는 Java 디버거와 LLDB를 둘다 앱 프로세스에 연결하므로(하나는 Java 디버거용, 다른 하나는 LLDB용), 앱을 다시 시작하거나 디버그 구성을 변경하지 않고도 Java 코드와 네이티브 코드 모두에서 중단점을 검사할 수 있습니다.

참고: Android Studio는 실험적인 Java 인식 C++ 디버거 기능을 제공합니다. 이 기능을 사용하면 단일 LLDB 프로세스를 사용하여 Java 및 C/C++ 중단점을 모두 디버그할 수 있습니다. 이 기능은 아직 개발 중이지만 Android Studio 2.2 이상에서 직접 사용해 볼 수 있습니다. 자세히 알아보려면 Android 도구 웹사이트를 방문하세요.

시스템 로그 사용

시스템 로그는 앱을 디버그하는 중에 시스템 메시지를 표시합니다. 이 메시지에는 기기에서 실행 중인 앱의 정보가 포함됩니다. 앱 디버깅을 위해 시스템 로그를 사용하려면, 앱의 개발 단계에서 코드에 로그 메시지를 쓰고 예외의 스택 추적을 출력해야 합니다.

코드에 로그 메시지 쓰기

코드에 로그 메시지를 쓰려면 Log 클래스를 사용합니다. 로그 메시지는 여러분이 앱과 상호작용할 때 시스템 디버그 출력을 수집하여 실행 흐름을 이해하도록 도와줍니다. 로그 메시지는 애플리케이션의 어떤 부분이 실패했는지를 알려줍니다. 로그에 대한 자세한 내용은 로그 읽기 및 쓰기를 참조하세요.

다음 예시는 액티비티가 시작될 때 이전 상태 정보의 사용 가능 여부를 결정하기 위해 로그 메시지를 추가하는 방법을 보여줍니다.

import android.util.Log;
...
public class MyActivity extends Activity {
    private static final String TAG = MyActivity.class.getSimpleName();
    ...
    @Override
    public void onCreate(Bundle savedInstanceState) {
        if (savedInstanceState != null) {
            Log.d(TAG, "onCreate() Restoring previous state");
            /* restore state */
        } else {
            Log.d(TAG, "onCreate() No saved state available");
            /* initialize app */
        }
    }
}

또한 개발 중에 코드에서 예외를 포착하고 스택 추적을 시스템 로그에 쓸 수 있습니다.

void someOtherMethod() {
    try {
        ...
    } catch (SomeException e) {
        Log.d(TAG, "someOtherMethod()", e);
    }
}

참고: 앱을 게시할 준비가 되면, 디버그 로그 메시지와 스택 추적 출력 호출을 코드에서 제거하세요. 그렇게 하려면 DEBUG 플래그를 설정하고 디버그 로그 메시지를 조건문 내에 넣습니다.

시스템 로그 보기

Android DDMS(Dalvik Debug Monitor Server)와 Android Monitor 창은 시스템과 특정 앱 프로세스로부터 로그를 표시합니다. Android DDMS 도구 창에서 시스템 로그를 보려면:

  1. 디버그 모드에서 앱 실행에 설명된 대로 앱을 시작합니다.
  2. Android Monitor 를 클릭합니다.
  3. Logcat 뷰에서 시스템 로그가 비어 있으면 Restart 를 클릭합니다.

그림 2. Android DDMS 도구 창의 시스템 로그.

Android DDMS 도구 창에서는 Android Studio의 일부 DDMS 기능에 액세스할 수 있습니다. DDMS에 대한 자세한 내용은 DDMS 사용을 참조하세요.

시스템 로그는 Android 서비스와 기타 Android 앱의 메시지를 표시합니다. 로그 메시지를 필터링하여 관심있는 메시지만을 보려면, Android DDMS 창에 있는 도구를 사용합니다.

중단점 사용

Android Studio는 다른 디버깅 동작을 트리거하는 여러 유형의 중단점을 지원합니다. 가장 일반적인 유형은 지정된 코드 줄에서 앱 실행을 일시 중지하는 줄 중단점입니다. 일시 중지된 상태에서 변수를 검사하고 식을 평가한 다음, 한 줄씩 실행을 계속하여 런타임 오류의 원인을 판별할 수 있습니다.

줄 중단점을 추가하려면 다음 단계를 진행하세요.

  1. 실행을 일시 중지하려는 코드 줄을 찾은 다음, 해당 코드 줄의 왼쪽 여백을 클릭하거나 줄 위에 캐럿을 배치하고 Control+F8을 누릅니다(Mac의 경우 Command+F8).
  2. 앱이 이미 실행 중인 경우에는 중단점 추가를 위해 앱을 업데이트할 필요가 없으며, Attach debugger to Android proccess 를 클릭하면 됩니다. 그렇지 않은 경우, Debug 를 클릭하여 디버깅을 시작합니다.

그림 3. 중단점을 설정하면 줄 옆에 빨간색 점이 나타납니다.

코드 실행이 중단점에 도달하면 Android Studio가 앱 실행을 일시 중지합니다. 그러면 Debugger 탭의 도구를 사용하여 앱의 상태를 확인할 수 있습니다.

프로젝트에 네이티브 코드가 사용되는 경우, 기본적으로 Auto 디버그 유형에서는 Java 디버거와 LLDB를 각각 별도의 두 프로세스로서 앱에 연결하므로, 앱을 다시 시작하거나 설정을 변경하지 않고도 Java 및 C/C++ 중단점 간에 검사를 전환할 수 있습니다.

참고: Android Studio가 C 또는 C++ 코드에서 중단점을 감지하도록 하려면 LLDB를 지원하는 디버그 유형을 사용해야 합니다(예: Auto, Native 또는 Hybrid). 디버그 구성을 편집하여 Android Studio가 사용하는 디버그 유형을 변경할 수 있습니다. 다른 디버그 유형에 대해 자세히 알아보려면, 다른 디버그 유형 사용에 대한 섹션을 참조하세요.

Android Studio가 앱을 대상 기기에 배포할 때, 각 디버거 프로세스에 대해 탭이나 디버그 세션 뷰가 있는 Debug 창이 열립니다(그림 4 참조).

그림 4. LLDB를 사용하여 네이티브 코드 디버깅.

  1. LLDB 디버거가 C/C++ 코드에서 중단점을 만나면 Android Studio가 <your-module> 탭으로 자동 전환됩니다. Frames, VariablesWatches 창도 함께 사용할 수 있으며 이 창들은 Java 코드를 디버깅할 때와 똑같은 방식으로 작동합니다. Threads 창을 LLDB 세션 뷰에서 사용할 수 없더라도, Frames 창의 드롭다운 목록을 사용하여 앱 프로세스에 액세스할 수 있습니다. 이들 창에 대한 자세한 내용은 디버그 창 프레임변수 검사 섹션을 참조하세요.

    참고: 네이티브 코드의 중단점을 검사하는 중에 Android 시스템에서는 앱의 Java 바이트코드를 실행하는 가상 머신을 중단합니다. 즉, 네이티브 코드의 중단점을 검사하는 동안에는 Java 디버거와 상호작용할 수 없거나 Java 디버거 세션에서 상태 정보를 검색할 수 없습니다.

  2. Java 디버거가 Java 코드에서 중단점을 만나면 Android Studio가 자동으로 <your-module>-java 탭으로 전환됩니다.
  3. LLDB로 디버깅하는 동안에는, LLDB 세션 뷰의 LLDB 터미널을 사용하여 명령줄 옵션을 LLDB로 전달할 수 있습니다.

    팁: 앱 디버깅을 시작할 때마다 LLDB가 특정 명령을 실행하도록 하려면, 디버거가 앱 프로세스에 연결되기 직전이나 연결된 직후에 해당 명령을 디버그 구성에 추가하면 됩니다.

C/C++ 코드 디버깅 중에는 또한 감시점이라는 특정한 유형의 중단점을 설정할 수 있습니다. 감시점은 앱이 메모리의 특정 블록과 상호작용할 때 이 앱 프로세스를 중단시킬 수 있습니다. 자세히 알아보려면, 감시점 추가 방법에 대한 섹션을 참조하세요.

중단점 보기 및 구성

모든 중단점을 보고 중단점 설정을 구성하려면, Debug 창 왼쪽의 View Breakpoints 를 클릭합니다. 그림 5와 같은 Breakpoints 창이 나타납니다.

그림 5. 현재의 모든 중단점을 나열하고 각각의 동작 설정을 포함하는 Breakpoints 창.

Breakpoints 창에서는 왼쪽의 목록에서 각 중단점을 활성화하거나 비활성화할 수 있습니다. 중단점이 비활성화되면 Android Studio는 중단점에 도달하더라도 앱을 일시 중지하지 않습니다. 설정을 구성할 중단점을 목록에서 선택합니다. 처음에 중단점을 비활성화하고 다른 중단점에 도달한 후에 시스템이 중단점을 활성화하도록 구성할 수 있습니다. 또한 중단점에 도달한 후 중단점의 비활성화 여부를 구성할 수도 있습니다. 예외에 대해 중단점을 설정하려면 중단점 목록에서 Exception Breakpoints를 선택합니다.

디버그 창 프레임

Debugger 창에 있는 Frames 창을 사용하면, 현재 중단점에 도달하도록 유발했던 스택 프레임을 검사할 수 있습니다. 이렇게 하면 스택 프레임을 탐색하고 검토할 수 있으며 또한 Android 앱의 스레드 목록을 검사할 수도 있습니다. 스레드를 선택하려면, 스레드 선택기 드롭다운을 사용하여 스택 프레임을 표시합니다. 프레임에 있는 요소를 클릭하면 해당 소스가 편집기에 열립니다. 또한 창 프레임 가이드에 설명된 것처럼, 스레드 표현을 사용자 지정하고 스택 프레임을 내보낼 수 있습니다.

변수 검사

Debugger 창에 있는 Variables 창을 사용하면, 중단점에서 시스템이 앱을 중지할 때 변수를 검사할 수 있으며 Frames 창에서 프레임을 선택할 수 있습니다. 또한 Variables 창을 사용하면 선택한 프레임 내에서 사용 가능한 정적 메서드 및/또는 변수를 사용하여 임시 식을 평가할 수 있습니다.

Watches 창도 유사한 기능을 제공하지만, 예외적으로 Watches 창에 추가된 식은 디버깅 세션 간에 유지됩니다. 자주 액세스하는 변수와 필드 또는 현재 디버깅 세션에 유용한 상태를 제공하는 변수와 필드의 경우 감시를 추가해야 합니다. VariablesWatches 창이 그림 5에 나타나 있습니다.

변수나 식을 Watches 목록에 추가하려면, 다음 단계를 따르세요.

  1. 디버깅을 시작합니다.
  2. Watches 창에서 Add 를 클릭합니다.
  3. 나타나는 텍스트 상자에 감시하려는 변수나 식의 이름을 입력하고 Enter를 누릅니다.

Watches 목록에서 항목을 제거하려면, 항목을 선택하고 Remove 를 클릭합니다.

해당 항목을 선택하고 Up 또는 Down 을 클릭하여 Watches 목록에서 요소의 순서를 재정렬할 수 있습니다.

그림 6. 디버거 창의 Variables 및 Watches 창.

감시점 추가

C/C++ 코드 디버깅 중에 감시점이라는 특정한 종류의 중단점을 설정할 수 있습니다. 감시점은 앱이 메모리의 특정 블록과 상호작용할 때 이 앱 프로세스를 중단시킬 수 있습니다. 예를 들어, 두 개의 포인터를 메모리 블록에 설정하고 여기에 감시점을 할당한 경우, 두 포인터 중 하나를 사용하여 메모리 블록에 액세스하면 이 감시점이 트리거됩니다.

Android Studio에서 런타임 중에 특정 변수를 선택하여 감시점을 만들 수 있지만, LLDB는 변수 자체가 아니라 시스템이 변수에 할당한 메모리 블록에만 감시점을 할당합니다. 이것은 변수를 Watches 창에 추가하는 것과는 다릅니다. 이 경우에는 변수 값을 관찰할 수 있지만 시스템이 메모리의 값을 읽거나 변경할 때는 앱 프로세스를 중단시킬 수 없습니다.

참고: 앱 프로세스가 함수를 종료하고 시스템이 메모리에서 로컬 변수 할당을 해제하는 경우, 이들 변수에 대해 생성했던 감시점을 다시 할당해야 합니다.

감시점을 설정하려면 다음 요구사항을 충족해야 합니다.

위의 요구사항을 충족한다면 다음과 같이 감시점을 추가할 수 있습니다.

  1. 중단점에서 앱이 중단된 동안, LLDB 세션 뷰의 Variables 창으로 이동합니다.
  2. 추적하려는 메모리 블록을 차지한 변수를 마우스 오른쪽 버튼으로 클릭하고 Add Watchpoint를 선택합니다. 감시점을 구성하는 대화상자가 나타납니다(그림 7 참조).

    그림 7. 메모리의 변수에 감시점 추가.

  3. 다음 옵션으로 감시점을 구성합니다.
    • Enabled: 당분간 감시점을 무시하라고 Android Studio에게 알리고 싶으면 이 옵션의 선택을 취소할 수 있습니다. Android Studio는 여전히 감시점을 저장하므로 나중에 디버그 세션에서 감시점에 액세스할 수 있습니다.
    • Suspend: 기본적으로, Android 시스템은 여러분이 감시점에 할당한 메모리 블록에 액세스할 때 앱 프로세스를 중단합니다. 이 동작을 원치 않으면 이 옵션의 선택을 취소할 수 있습니다. 그러면 시스템이 감시점과 상호작용할 때의 동작을 사용자 지정할 수 있는 다음과 같은 추가 옵션이 나타납니다: Log message to consoleRemove [the watchpoint] when hit.
    • Access Type: 시스템이 변수에 할당한 메모리 블록에 대해 앱이 Read 또는 Write를 시도할 때 앱이 감시점을 트리거할지 여부를 선택합니다. 읽기 또는 쓰기 시에 감시점을 트리거하려면 Any를 선택합니다.
  4. Done을 클릭합니다.

모든 감시점을 표시하고 감시점 설정을 구성하려면, Debug 창 왼쪽의 View Breakpoints 를 클릭합니다. 그림 8과 같은 Breakpoints 대화상자가 나타납니다.

그림 8. 현재 감시점을 나열하고 각각의 동작 설정을 포함하는 Breakpoints 대화상자.

감시점을 추가한 후 Debug 창 왼쪽에서 Resume Program 을 클릭하여 앱 프로세스를 재개합니다. 기본적으로, 감시점을 설정했던 메모리 블록에 앱이 액세스하려고 시도하면, Android 시스템이 앱 프로세스를 중단하며, 앱이 마지막으로 실행했던 코드 줄 옆에 감시점 아이콘()이 나타납니다(그림 9 참조).

그림 9. 감시점을 트리거하기 직전에 앱이 실행하는 코드 줄을 나타내는 Android Studio.

객체 할당 추적

Android Studio를 사용하면 Java 힙에 할당 중인 객체를 추적할 수 있으며 어떤 클래스와 스레드가 이들 객체를 할당 중인지 알 수 있습니다. 이렇게 하면 해당 기간 중에 할당된 객체의 목록을 볼 수 있습니다. 이 정보는 애플리케이션 성능에 영향을 미칠 수 있는 메모리 사용량을 평가하는 데 유용합니다.

  1. 디버그 모드에서 앱 실행에 설명된 대로 앱을 시작한 다음, View > Tool Windows > Android Monitor를 선택합니다(또는 창 모음에서 Android Monitor 클릭).
  2. Android Monitor 창에서 Monitors 탭을 클릭합니다.
  3. 창 상단의 드롭다운 목록에서 기기와 앱 프로세스를 선택합니다.
  4. Memory 패널에서 Start Allocation Tracking 을 클릭합니다.
  5. 기기에서 앱과 상호작용합니다.
  6. Stop Allocation Tracking을 위해 동일한 버튼을 다시 클릭합니다.

Android Monitor는 애플리케이션 Memory, CPU, GPUNetwork 사용량에 대한 정보를 표시합니다. Android Monitor 사용 방법에 대해서는 Android Monitor 기본 사항을 참조하세요. 또한 Android Monitor 기능에 대한 소개는 Android Monitor 개요를 참조하세요. 이러한 기능으로는 로깅 카탈로그(logcat), 성능 모니터, 데이터 분석 도구, 화면 및 동영상 캡처 도구가 있습니다.

그림 10. Android Studio에서의 객체 할당 추적.

리소스 값 표시 형식의 보기 및 변경

디버그 모드에서 리소스 값을 확인하고 다른 표시 형식을 선택할 수 있습니다. Variables 탭이 표시되고 프레임이 선택된 경우, 다음 절차를 수행하세요.

  1. Variables 목록에서, 리소스 줄의 아무 곳이나 마우스 오른쪽 버튼으로 클릭하여 드롭다운 목록을 표시합니다.
  2. 드롭다운 목록에서 View as를 선택하고 사용하려는 형식을 선택합니다.

    사용 가능한 형식은 선택한 리소스의 데이터 유형에 따라 다릅니다. 다음 옵션 중 하나 이상이 나타납니다.

    • Class: 클래스 정의를 표시합니다.
    • toString: 문자열 형식을 표시합니다.
    • Object: 객체(클래스의 인스턴스) 정의를 표시합니다.
    • Array: 배열 형식으로 표시합니다.
    • Timestamp: 날짜 및 시간을 다음과 같이 표시합니다: yyyy-mm-dd hh:mm:ss.
    • Auto: Android Studio가 데이터 유형에 따라 최적의 형식을 선택합니다.
    • Binary: 0과 1을 사용하여 바이너리 값을 표시합니다.
    • MeasureSpec: 상위 요소로부터 선택한 하위 요소로 전달되는 값입니다. MeasureSpec을 참조하세요.
    • Hex: 16진수 값으로 표시합니다.
    • Primitive: 원시 데이터 유형을 사용하여 숫자 값으로 표시합니다.
    • Integer: Integer 유형의 숫자 값을 표시합니다.

다음과 같이 사용자 지정 형식을 생성할 수 있습니다(데이터 유형 렌더러).

  1. 리소스 값을 마우스 오른쪽 버튼으로 클릭합니다.
  2. View as를 선택합니다.
  3. Create를 선택합니다. Java Data Type Renderers 대화상자가 표시됩니다.
  4. Java Data Type Renderers의 지시를 따릅니다.

앱 최적화를 위한 런타임 지표 분석

애플리케이션에서 런타임 오류가 발생하지 않는다고 해서 문제가 없는 것은 아닙니다. 다음과 같은 사항도 함께 고려해야 합니다.

Android Device Monitor는 DDMS(Dalvik Debug Monitor Server)를 비롯한 여러 가지 Android 애플리케이션 디버깅 및 분석 도구의 그래픽 사용자 인터페이스를 제공하는 독립형 도구입니다. Android Device Monitor를 사용하여 메모리 사용량을 분석하고, 메서드를 프로파일링하고, 네트워크 트래픽을 모니터링하고, 수신 통화와 메시지를 시뮬레이션할 수 있습니다.

Android Studio에서 Android Device Monitor를 열려면 툴바에서 Monitor 를 클릭합니다. Android Device Monitor가 새 창에서 열립니다.

Android Device Monitor 및 DDMS에 대한 자세한 내용은 Device MonitorDDMS 사용을 참조하세요.

스크린샷 및 동영상 캡처

Android Studio를 사용하면 앱이 실행되는 중에 기기 화면의 스크린샷이나 짧은 동영상을 캡처할 수 있습니다. 스크린샷과 동영상은 유용한 홍보 자료이며, 이 자료를 버그 보고서에 첨부하여 개발 팀에 보낼 수 있습니다.

앱의 스크린샷을 찍으려면:

  1. 디버그 모드에서 앱 실행에 설명된 대로 앱을 시작합니다.
  2. Android Monitor 를 클릭합니다.
  3. 왼쪽의 Screen Capture 를 클릭합니다.
  4. 선택 항목: 스크린샷 주변에 기기 프레임을 추가하려면 Frame screenshot을 클릭합니다.
  5. Save를 클릭합니다.

앱의 동영상 녹화를 수행하려면:

  1. 디버그 모드에서 앱 실행에 설명된 대로 앱을 시작합니다.
  2. Android Monitor 를 클릭합니다.
  3. 왼쪽의 Screen Record 를 클릭합니다.
  4. Start Recording을 클릭합니다.
  5. 앱과 상호작용합니다.
  6. Stop Recording을 클릭합니다.
  7. 녹화물의 파일 이름을 입력하고 OK를 클릭합니다.
This site uses cookies to store your preferences for site-specific language and display options.

Hooray!

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a one-minute survey?
Help us improve Android tools and documentation.